# TP Ada S1 - premier semestre

## ▸Sujets des séances de TP

#### ▸Configuration

À effectuer obligatoirement une fois en début d'année.

Nous allons configurer une fois pour toutes l'installation emacs/Ada de votre compte personnel. Pour cela, effectuer les opérations suivantes avant de commencer le premier TP (vous n'aurez pas à le refaire aux TPs suivants).

- Trouvez le dossier COMMETUD : il devrait y avoir un lien sur votre bureau.
- Allez dans Commetud, 1ere Année, Ada, puis Setup.
- Lancer le programme setup-exe en cliquant dessus.
- Répondez aux questions et attendez le message indiquant que l'installation s'est bien passée.En cas de doute, demandez à vos voisins ou à l'encadrant.

#### ▸Les sujets

#### Réponses

- Mission 1, partie 1 : mission0.adb
- Mission 1, partie 2 : mission1.adb
- Mission 2 :
  - mission2a.adb
  - mission2b.adb
  - mission2c.adb
- Mission 3 : mission3.adb
- Pas de corrigé pour la mission 4.

Vous avez cinq séances de TP pour effectuer les missions suivantes :

- ContexteContexte de l'ensemble des TPs.
- Mission 1 Premiers tests..
- Mission 2 Le vol de démonstration..
- Mission 3 Visite d'aéroports européens.
- Mission 4 Le voyage interactif.

#### ▸Acteurs utilisés

Acteurs utilisés au premier semestre :

- GAda.Text_IO

### ▸INSA-Air

- assert.ads
- avion_sol.ads — Contrôle de l'avion au sol
- carburant.ads
- cartographie.ads — Accès aux informations de la carte
- insa_air.ads — Contrôle de l'avion en vol
- pilote_automatique.ads — Commande le décollage ou l'atterrissage
- simulation.ads — Contrôle de l'avion au sol en mode SIMULATION
- tour.ads — Communication avec la tour de contrôle
- train.ads — Contrôle du train d'atterrissage

Tous les acteurs GAda (vous n'en avez pas besoin au premier semestre)

### ▸GAda

- dfloat.ads
- gada-advanced_graphics.ads
- gada-float_text_io.ads
- gada-graphics.ads
- gada-integer_text_io.ads
- gada-plus.ads
- gada-text_io.ads
- tortue.ads

#### ▸Problèmes techniques

#### Si emacs plante, voici la marche à suivre :

- Cacher la fenêtre emacs ayant planté (minimiser la fenêtre en cliquant sur le 'moins' en haut à droite).
- Rouvrir le fichier mission1.adb (par exemple)
- Lorsque vous tentez de modifier le fichier, emacs se plaint de ne pas pouvoir l'éditer, dans ce cas, appuyer sur la touche 's' (comme steal ou comme c'est moi le chef ).

#### Facultatif : si vous voulez aussi détruire la fenêtre emacs ayant planté

- Ouvrir un TERMINAL (à trouver dans le menu Système, ouvrir une console ou un terminal).
- Dans le terminal, écrire : `xkill` (puis entrée)
- Cliquer sur la fenêtre que vous voulez détruire (la fenêtre du emacs ayant planté).

## ▸Exercices complémentaires

Tous ces exercices sont faisables sur tech-io. Vous devriez être capables d'effectuer les exercices suivants seuls :

- Base : appel de procédure et de fonction
- Base : exercices divers

Cet ensemble d'exercices correspond exactement au niveau attendu à l'examen :

- Traduction d'algorigramme
- Passage d'arguments et type article
- Exercices sur une collection de données
- Recherche d'extremum sur un polynôme
- Exercice sur TOUT (Sujet posé en 2017)

## ▸Compétences et évaluation

### Compétences Algorithmiques du semestre 1

Le domaine UF Maths-Algo est évaluée par compétences. Les compétences d'algo sont classées dans trois macro-compétences, de difficulté croissante :

#### Bases de programmation

(le minimum vital à acquérir)

- Traduire une spécification de sous-programme (boîte) en une déclaration de procédure ou de fonction Ada.
- Distinguer les structures de contrôle `while`, `if`, et `for`.
- Dans une procédure ou fonction, savoir utiliser les arguments.
- Écrire une procédure de test qui invoque une fonction, affiche ses arguments et son résultat.
- 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).
- Les programmes sont cohérents et compilent sans erreur.
- Prévoir le résultat d'un programme (sémantique).
- Manipuler les types articles
- Essentiel : les algorithmes classiques (min, max, moyenne).

#### Algorithmique fine

(pour obtenir le niveau A+)

- Pour le niveau A+ : algorithmes classiques avec un traitement supplémentaire, par exemple filtrage.

Ces compétences seront évaluées partiellement lors du contrôle Moodle, puis plus complètement lors du contrôle de TP début novembre. 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, la distinction des blocs `IF`, `WHILE`, `FOR` est a priori plus importante que le respect des conventions de présentation. Un correcteur examinera votre contrôle pour estimer si chaque macro-compétence est acquise.

### Évaluations

- Un contrôle Moodle, début octobre. Durée 45 min.
- Évaluation principale : un contrôle de TP sur ordi, début novembre. Durée 1H30.

Pendant les évaluations, le seul document autorisé est l'aide-mémoire, possiblement annoté.

## ▸Bibliographie et conseils sur la méthode de travail

#### Biblio

- L'algorithmique (votre passeport informatique pour la programmation). Bruno Warin, Ellipses (ISBN 2729811400).
- Initiation à l'Informatique (Programmation, Algorithmique, Architectures). Henri-Pierre Charles, Eyrolles (ISBN 2212090498)
- Apprendre à programmer (Algorithmes et conception objet), Partie I. Christophe Dabancourt, Eyrolles (ISBN 9782212123500)

#### Conseils

- Garder un exemplaire propre de votre travail de TD (les TDs sont effectués en équipe de 4, vous devriez avoir quatre exemplaires présentables à l'issue des séances).
- Pendant les séances de TP, reportez à la fin de votre aide-mémoire les erreurs de compilation qui vous posent problème. Elles risquent de se reproduire à l'avenir, y compris en contrôle. Une page est déjà prévue pour cela.
- D'une manière générale (ceci est vrai pour toutes les matières), quand vous avez résolu un problème qui vous semble difficile, écrivez une synthèse de ce qu'il faut en retenir. Le simple fait de rédiger cette synthèse vous aidera à mieux appréhender le problème et à vous en rappeler.
- Entre deux séances de TP, relisez les algorithmes et programmes que vous avez effectué à la séance précédente, en comprenant bien chaque étape. Identifiez dans votre aide-mémoire ce que vous avez appris.
- Rappel : vous pouvez librement contacter vos enseignants de TD, TP ou de cours pour poser des questions.

## ▸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.