# TP Ada S1 - TPs du premier semestre

Avez-vous mis cette page en signet pour éviter de la rechercher aux TPs suivants ?

## Pendant les TP

## Configuration—à effectuer obligatoirement

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.

## Sujets des TPs

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

# Corrigés disponibles

- Mission 1, partie 2 : mission1.adb
- Mission 2 :
  - mission2a.adb
  - mission2b0.adb (corrigé des parties 1 et 2)

- Contexte 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.

## Les Acteurs

## Acteurs GAda

- 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

## Acteurs 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

## 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é).

## En autonomie

## 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), ainsi que de nombreuses salles au 1er étage du GEI : GEI-102, 103, 105, 107, 109, 111. Vous y êtes les bienvenus pour travailler ; vérifiez juste que la salle n'est pas occupée par un cours.

#### Pour travailler Ada directement chez soi

Grâce aux efforts de vos anciens (Jérôme Sivadier, Joao Conceicao Nunes),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 sur le wiki.

Enfin, notez que le club INFO vous aide à installer l'environnement - rendez-leur visite le jeudi à 15H au GEI (1er étage).

## Exercices complémentaires

Vous devriez être capables d'effectuer les exercices suivants seuls.

- Base : appel de procédure et de fonction
- Base : exercices divers
- Traduction d'algorigramme
- Passage d'arguments et type article
- Exercices sur une collection de données
- Recherche d'extremum sur un polynôme

## Annales

Il est recommandé de travailler les exercices complémentaires, plus proches des compétences attendues maintenant, plutôt que les annales.

- Sujet du contrôle de TP 2008
- Sujet du contrôle de TP 2009
- La meilleure préparation consiste à effectuer les exercices complémentaires ci-dessus, et à reprendre les TDs et TPs. Voyez aussi les bilans de chaque mission, listant les compétences attendues.

## Bibliographie

- 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)
- Ce tutoriel très complet en ligne (en anglais).

## Conseils sur la méthode de travail

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

## Compléments

## Jeux

- Pour démarrer, vous pouvez vous exercer avec les tutoriels débutants de code.org.
- Apprenez à programmer avec Code Combat.
- Voici un autre jeu flash permettant de se frotter à une certaine forme de programmation (par récursion et par composition de fonctions). Ce jeu, quoique formateur, ne correspond pas précisément aux concepts utilisés en première année.

## Compétences Algo

Le domaine UF Maths-Algo est évaluée par compétences.

### Partie Algorithmique du 1er 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).
  - 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 maîtrisé).
  - 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.