# TP Ada - Mission 1

## Mission

### Objectifs pédagogiques du TP

- Être capable d'écrire un programme simple (séquence d'actions)
- Savoir lire un fichier de spécifications .ads

### Cahier des charges

Votre première mission consiste à programmer le roulage de l'avion au sol.

Plus précisément, votre avion est stationné à l'aérogare INSA-Air de l'aéroport Toulouse-Blagnac (LFBO), repéré par la lettre 'K' sur le schéma ci-dessous.
Il doit rejoindre le début de la piste de décollage (Piste 14R), repère A, puis parcourir la piste (sans décoller), jusqu'au repère D, et enfin revenir à l'aérogare INSA-Air.

Pour cette première mission, afin d'éviter de détériorer l'avion, vous devrez tester votre programme avec l'acteur `Simulation`. Si tout se passe bien, et si vous terminez correctement cette mission, nous pourrons embarquer votre programme à bord de l'avion.

L'avion se déplace d'un point à un autre en ligne droite. Pour aller de K à M, il faut impérativement passer par L.
Schéma de l'aéroport Toulouse-Blagnac.
Les deux pistes sont en rouge, le taxiway est en bleu.

## Partie 1 : roulage complet

La procédure `Rouler_Vers` requiert un argument de type Character.

- Pour passer un argument à une procédure, on utilise des parenthèses :
  `Rouler_Vers(Dest => *ici* ) ;`
- L'argument correspond au repère vers lequel l'avion doit se déplacer.
  À l'aide du poly (chapitre Les types de base), trouver parmi les propositions suivantes comment écrire une valeur de type Character (ici le caractère L) :
  - `L`
  - `Character(L)`
  - `L : Character`
  - `'L'`
  - `"L"`
  - `Character_L`

- Avez-vous bien exécuté l'étape de configuration ? (voir sur la page principale des TPs)
- Lisez les instructions pour démarrer le TP puis pensez à revenir sur cette page.
- Lisez bien la spécification de l'acteur `Simulation` (que vous trouvez sur commetud). Pour ce premier TP, vous ne devez pas utiliser d'autre acteur que Simulation.
- Travaillez par PPP (Petits Pas Prudents) :
  - Le programme que vous devez écrire est similaire à celui de la page 5 de votre livret.
  - Écrivez seulement la demande d'autorisation de roulage (appel de procédure sans argument) et testez immédiatement votre programme (pour cela, revoyez la page des instructions).
  - Codez ensuite le roulage uniquement du point K au point L (voir Mr Patate à droite), et testez de nouveau le programme.
  - Lorsque l'étape précédente fonctionne, effectuez le trajet complet (voir le descriptif de la mission en haut de la page).
  Prenez l'habitude de décomposer un problème complexe en tâches simples.
- Testez votre programme : l'avion doit effectuer l'ensemble du trajet prévu avec succès.

## Partie 2 : découpage en sous-programmes

Dans la partie 1, vous avez invoqué des actions existantes de l'acteur Simulation. Dans la partie 2, vous allez maintenant définir vos propres actions, à l'intérieur de votre programme Mission1.

- Écrivez un sous-programme : une procédure `Rouler_KA` qui fait rouler l'avion de K vers A. Consultez votre poly pour trouver comment définir une procédure sans argument.
- De même, écrivez la procédure `Rouler_DK` qui fait rouler l'avion de D vers K.
- Écrivez une procédure `Tester_Roulage` qui effectue le parcours complet en utilisant vos nouvelles procédures.
- Invoquez `Tester_Roulage` dans le corps du programme principal.

## Bilan

À l'issue de cette mission, vous devez être capables de :

- Lire et comprendre un fichier de spécification d'acteur (.ads)
- Compiler un programme, lire un message d'erreur et localiser l'endroit où l'erreur est signalée.
- Exécuter un programme que vous avez compilé.
- Invoquer une procédure avec ou sans argument.
- Définir une procédure sans argument.