# TP Ada S2

## ▸Message (du 18/1)

### Rattrapage Algo

L'examen de rattrapage Algo du semestre 1 est prévu le JEUDI 11 mars de 14H à 16H.

- Il se déroulera dans les mêmes conditions qu'au premier semestre - au sous-sol du STPI.
- Pour se préparer, reprendre les exercices complémentaires du premier semestre.
  En particulier, l'exercice sur tout.

## ▸Exercices préparatoires

#### Réponses

- Tracés : mission1.adb
- Intervalles : mission2.adb
- Pour les très curieux, voici la réponse au deuxième sujet en langage OCaml (étudié en 4ème année IR) : mission2.ml

##### Exercices pour le premier TP (semaine du 25 janvier)

Faites le maximum de ces deux exercices avant la première séance de TP. Vous les terminerez avec l'aide des encadrants pendant le TP (d'une durée courte : 1H15).

- Exercice de tracés avec des caractères
- Exercice avec des types article

## ▸Sujets du projet de TP

#### ▸Objectifs

                                `````,''',,,,,,'``
                     ``,,,-.^~^^^''`````  ```'-^~~\xxx:!'..``
              '~!/\//~~^^^''``````````               `'^^~+=*??x:+',
             `xx^,''````````````````                           ``\?/`
             `x/''````````````'```                ``             'x\`
             ,/~```````````'x/~+r'`           `_;+\/\,           'x\,
             '!-````````1~!~,!j;,,~~~!!!!!!!~~!;xeMgx//~V         ~~^
            `~~`'r+!!~+![ xyADN@B$gaucx;;xcs2A99556%%%5_]'=~~~~+' '^^`
            '~'v\'0XXC''^~aDBMMRRWMMMW@@NDDMHH55555%%X%k_!,cscx,^L ''^
           ,~-`4 3%%%%s!sdB@F^'~~~~_'uNDDQ8E(~(((LL/$kk0}r)ssswx`] `,,,
          `^^``] ]%9998DB@W?'x!```~r`?DW855%i~r```~L^Vsssssswss\ ]  `^^'
         `^^```^t^{5MDBD#C^ +r~~~~+'`?8555%%i,+~~~~+*;!Ywwwssk*'x'   ''~`
        ,x!`````'\\:/!~^`,-^^~~~~///;?56%%%X(~~/xxxx`4*+:/!~~\=+'     \x~`
       `(s'```     ;f~,-~~~~~//xx//++?%%%%Xs}xx?Ysss\'t``j7!~'~!x`     *s!
       xs^``    `:r_'/~~~~~//~^;!!r!`?96g%ss(^\Yss?x\'`/*`_'_^~~`J,    `ss'
      .s/`     !*_/ssssss??~!+'   -r`u@@@@@$i~tr~^+xsssx'xssssssx'l     ^sx'
      (s`     )~.sssssssss'x~     -r`u@@@@@$i~r '~+r!~+Ysssssss?-j-      ?s~
     _sx      4 ?sssssssss\^L`    -r`u@@@@@$i~r     '~++;~~+=+~;*`       ~sx`
     ~s'      't_\sssssssssx^!!!!!!^'uBNBNN6i'!~~~~~~!!^`^~~~~~`         -s(,
     |s^        /v~~?ssssssssssss?xx///~~~~^^^^^^^^'''`,~\+.             `ss^
     |s,      `xr~'` `'+*sssss??xx///~~~~^^^^^^^,,,,,^~~~~,_/x,          `ss^
     !s.      ]`,~~/\,`Ys|:/~~~~~~~~~~~~~^^^^^,,,,,^~~~///xx\.~v_      ``'sY^
     's!      s ~/xx?Y?'~*'`'~~~~~+'`x%%%%5%i';!_'^~~///xxxx??x,/c`  ````^s(^
     `s?      ,*''xYssssx._\r`    -r`x%g599Ei~r ,/v`\xxxxx???Yss-~7``````xsr`
      ~s!       ,\;'ssxx/~~,`~+/, -r`?9598MEi~r  `] /xx???Ysss/_v~``````_s?^
       ?s.        ]`\x/~~~^^^,'`^!+!`?988QD6i~L!+~_/x???Yss?~~v\```````'(s~`
       `?s,        /i_-^^^^^,,.~~/!!~?WQDDB6(,.'/xx????sx~~i/^````````'cs\'
        `*7.         ^~~!!+~'-^\xx??x?DDBN@$kxxxx??x/~~;rr^``````````_js\'
          ~?\`             `~~~!!;/'^nN@@@@$Y~~~\:;!+!'`````````````/s?~`
           '\x.                   \r`u@@@@@$i-[''`   `````````````!?s\-
             '^~,               `v~`\#@@@@@B%\~v'  ````````````_/??\^
                `''``           -L`v@@@@@@@@@$i~r```````````_!xs*~'
                   `'^^,`       'l`~~^^~~~~+*7|\~```````_!xs?x~'`
                      ``^~~,,`  `s!!~~~'''~!!+!u^```_!xs?x~'`
                          `'^~~.,`        ``````.!xs?x~'`
                              `'~\/',`  ````.!x?x/~'`
                                  `-~xx+^!x?x/^'`
                                      `^~~^``

- L'objectif des prochains TPs est d'écrire un programme qui transforme une image en ascii-art (comme le logo ci-contre).

#### Pré-requis

- Les compétences du premier semestre : boucles, type article.

#### ▸Les sujets

- Partie 1(2H environ) : Manipulation de caractères.
- Partie 2(3H environ) : Manipulation d'image.
- Partie 3(6H environ) : Conception de l'algorithme.

#### ▸Acteurs utilisés

- GAda.Text_IO
- GAda.Graphics
- GAda.Plus
- JPG
- Caracteres

#### ▸TP du semestre 1

- Sujet des TP Ada du premier semestre

## ▸Exercices complémentaires

- Exercices de base sur les tableaux
- Exercice sur les types articles, types énumérés et tableaux
- Exercice sur les matrices et structures imbriquées
- Exercices sur les structures imbriquées
- Exercice sur TOUT - semestre 2

## ▸Compétences

### Compétences Algorithmiques du semestre 2

Comme au premier semestre, les compétences d'algo sont classées dans trois macro-compétences, de difficulté croissante :

#### Bases de programmation

(le minimum vital à acquérir)

- Les programmes sont cohérents et compilent sans erreur.
- Invoquer une procédure ou fonction recevant une structure de données en argument, afficher une structure de données.
- Manipuler les types énumérés
- Respecter les conventions de présentation (indentation, espacements, commentaires, nommage des variables).

#### Éléments d'algorithmique

(l'objet principal du cours)

- Appliquer toutes les règles de construction d'un programme (typage, 1er et 2ème semestre).
- Prévoir le résultat d'un programme (sémantique, 1er et 2ème semestre).
- Exploiter les informations contenues dans une structure de données complexe.
- Essentiel : les algorithmes classiques (min, max, moyenne, algorithme de recherche) appliqués à une structure complexe.

#### Algorithmique fine

(pour obtenir le niveau maîtrisé)

- Pour le niveau maîtrisé : conception d'algorithme évolué nécessitant une décomposition en sous-problèmes.

Ces compétences seront évaluées partiellement lors du contrôle Moodle, puis plus complètement lors du contrôle de TP en avril. Un échec au contrôle Moodle peut être rattrapé par une bonne prestation lors du contrôle de TP.

Toutes les compétences n'ont pas le même poids. Par exemple, afficher une structure de données est a priori plus important que le respect des conventions de présentation. Un correcteur examinera votre contrôle pour estimer si chaque macro-compétence est acquise.

## ▸Ada en dehors des heures de TP

### Pour travailler Ada à l'INSA

Des salles informatiques sont en accès libre : la salle du CSN (au centre informatique), et les salles du sous-sol si vous parvenez à y accéder.

### Pour travailler Ada depuis chez soi, en se connectant sur un serveur de l'INSA (avec connexion VPN)

1. Avoir une connexion VPN qui fonctionne : le client VPN de l'INSA
   ou le VPN expliqué par WikEtud.
2. Puis visiter : //montp.insa-toulouse.fr et choisir une session linux.
3. En cas de problème technique, envoyez un email à infrastructure-csn à insa-toulouse.fr.

### Pour travailler Ada directement sur son propre ordi, chez soi (sans connexion internet)

Grâce aux efforts du club info, il est possible d'installer sur son ordinateur personnel un environnement semblable à l'environnement des TP Ada à l'INSA.

Aucune connaissance technique n'est nécessaire. Il suffit de suivre les consignes indiquées pour installer une machine virtuelle.

### Tech.io (connexion internet, pas de VPN)

Alternative : vous pouvez travailler directement sur tech.io :

- Exercices complémentaires du semestre 1 (by le Club Info)
- Exercices complémentaires du semestre 2 (by Le Botlan)
- Espace sur tech-io pour écrire tous les programmes (hors TP)

Enfin, notez que le club INFO vous aide à installer l'environnement - contactez-les.

#### Appel à CSS

Si vous êtes amateur de feuilles de styles et souhaitez changer le style des pages de TP, proposez votre propre fichier css (et les images nécessaires) à M. Le Botlan (qui s'en servira si le style convient).
Le style proposé doit rester compatible avec la structure HTML actuelle.