# TP Ada - Mission 2

## Préparation

- Terminer entièrement la mission 1 (partie 1 et partie 2) (tout le monde ne l'a pas terminée pendant la 1ère séance, c'est normal).
- Faites une copie de votre programme mission1.adb que vous nommez mission2a.adb (faites la copie avec un clic-droit sur le fichier).
- Copiez dans votre dossier le fichier upload-exe que vous trouvez dans `commetud / 1ere Annee / ADA / Acteurs / INSA-Air /`.
- Vous passez maintenant au pilotage réel de l'avion au sol : modifiez mission2a.adb pour utiliser les acteurs `Avion_Sol` et `Tour` (communications avec la tour de contrôle) au lieu de `Simulation`. Désormais, il ne faut plus utiliser l'acteur Simulation.
- Vérifiez que mission2a compile bien sans erreur.
- Testez maintenant votre nouveau programme en cliquant cette fois sur `upload-exe` (au lieu de mission2a-exe).

## Mission

### Objectifs pédagogiques du TP

- Savoir définir une procédure, une fonction
- Utiliser les blocs `while` et blocs `if`.

### Cahier des charges

Lorsque nous effectuerons le premier vol de démonstration, nous aurons besoin de manoeuvrer précisément l'avion pour suivre le plan de vol.

Vous devez préparer la procédure d'ajustement de cap qui sera nécessaire pour les manoeuvres.

Pour ne pas risquer de perdre l'appareil, nous testerons d'abord cette fonction par des essais au sol.

#### Démarche

Nous aurons besoin d'une fonction qui calcule l'angle dont il faut faire pivoter l'avion pour l'amener au cap souhaité et d'une seconde fonction qui vérifie si l'avion est dans la bonne direction.
Enfin, une procédure sera chargée de faire tourner l'avion pour l'amener dans la bonne direction.

Voici l'ensemble des procédures et fonctions à réaliser pour cette mission :

## Consignes détaillées

- Commencez un nouveau programme : dans votre dossier AlgoUV1, enregistrez (clic-droit + enregistrer la cible du lien sous) mission2b.adb.
  (Le contenu du fichier est visible ici.)
- Partie 1 : la fonction `Delta_Cap` (calcule l'angle de rotation).
- Partie 2 : la fonction `Caps_Egaux` (vérifie si deux angles sont égaux).
- Partie 3 : tests au sol.
- Partie 4 : vol de démonstration.

## Bilan

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

- Définir une fonction avec argument.
- Invoquer une fonction et récupérer son résultat.
- Écrire une procédure de test et afficher la valeur d'arguments, de variables, ou de fonctions.
- Concevoir puis traduire en Ada des algorithmes simples, par exemple : calcul du delta-cap, orientation de l'avion, etc.