Partie 1 : la fonctionDelta_Cap
Nous travaillons sur le cap de l'avion, qui est un angle entre 0 et 360°. Attention, l'orientation du cap n'est pas celle utilisé habituellement en maths (voir le premier schéma).
Le rôle de la fonction Delta_Cap est de calculer la différence entre deux angles (ce qui servira plus tard à savoir de quel côté faire tourner l'avion). Voir le second schéma.


- Commencez par écrire sur papier l'algorithme de la fonction Delta_Cap (vous pouvez vous mettre en binôme pour écrire l'algorithme). Voici la spécification complète de la fonction Delta_Cap :
- Delta_Cap (Cap_Actuel, Cap_Voulu) renvoie la différence entre les deux caps Cap_Actuel et Cap_Voulu, donnés en degrés.
- La valeur renvoyée par Delta_Cap est un angle qui doit être compris dans l'intervalle [-180 ; +180].
- Quelques exemples :
- Delta_Cap (Cap_Actuel => 0.0, Cap_Voulu => 45.0) = 45.0
- Delta_Cap (Cap_Actuel => 45.0, Cap_Voulu => 0.0) = -45.0
- Delta_Cap (Cap_Actuel => 350.0, Cap_Voulu => 10.0) = 20.0
- Delta_Cap (Cap_Actuel => 10.0, Cap_Voulu => 350.0) = -20.0
- Delta_Cap (Cap_Actuel => 30.0, Cap_Voulu => 285.0) = -105.0
- On peut supposer que Cap_Actuel et Cap_Voulu sont dans [0 ; 360[

- Vérifiez sur le papier que votre algorithme donne bien le bon résultat.
- À l'aide du poly, traduisez votre algorithme en une fonction Ada (cf page des fonctions)

Test de la fonctionDelta_Cap
Pour vérifier que la fonction est correcte
Écrivez un sous programme : une procédure de test de votre fonction Delta_Cap, que vous nommez Tester_Delta_Cap. Respectez les consignes suivantes :

- Cette procédure reçoit deux arguments, CapA et CapV, affiche leur valeur à l'écran et affiche le résultat de la fonction Delta_Cap pour ces arguments (pour vous permettre de vérifier que les résultats sont corrects). Voici un exemple d'affichage produit par Tester_Delta_Cap (CapA => 350.0, CapV => 10.0) ;Aidez vous de l'exemple du poly sur les fonctions (p. 21 ?) pour écrire Tester_Delta_Cap
- CapA = 3.5E+02 CapV = 1.0E+01 DeltaCap = 2.0E+01
- Examinez votre programme et trouver à quel(s) endroit(s) est invoquée la procédure Tester_Delta_Cap.
- Compilez et exécutez votre programme.
- En se servant du polycopié page 30, démontrer que l'appel à Put_Line dans Tester_Delta_Cap est bien typé.
- Modifier le programme pour afficher la valeur de CapA et celle de CapV.
- Enfin, afficher le résultat renvoyé par la fonction Delta_Cap. Vous pouvez lire cet exemple pour comprendre comment invoquer une fonction.
- Exécutez le programme final et vérifiez que la valeur renvoyée pour chaque test est correcte.
Questions de compréhension
- De quel type est Delta_Cap (Cap_Actuel => 30.0, Cap_Voulu => 285.0) ?
- De quel type est Tester_Delta_Cap (CapA => 30.0, CapV => 285.0) ?
- Delta_Cap est une fonction et Tester_Delta_Cap est une procédure.
Peut-on s'y prendre différemment, par exemple que Delta_Cap soit une procédure et Tester_Delta_Cap une fonction ? - Regardez votre polycopié page 32. Avez-vous déjà complété cette page avec vos propres messages d'erreur ?
Prenez l'habitude d'y inscrire les messages que vous rencontrez fréquemment, cela vous fera gagner du temps à l'avenir (notamment en contrôle).






