Objectifs pédagogiques

  • Utilisation des variables.
  • Utilisation des types article.
  • Conception d'algorithmes classiques (min, max, moyenne).

Prérequis

Mission

Préparation

  • Terminer entièrement la mission 2 (même si cela vous prend toute la séance).
  • Faites une copie de votre programme mission2c.adb que vous nommez mission3.adb

Cahier des charges

L'avion rend visite à divers aéroports européens et repère en permanence l'aéroport le plus proche.

Démarche

  • Nous allons écrire une procédure qui permet de naviguer vers un aéroport choisi.
    Pour cela, nous avons besoin d'une fonction qui calcule le cap à suivre et d'une fonction qui calcule la distance à parcourir.
  • Ensuite, nous sécuriserons le trajet en repérant en permanence l'aéroport de secours le plus proche.
Voici l'ensemble des procédures et fonctions à réaliser pour cette mission :Feuille de route

Partie 1 : navigation vers les aéroports.

  • Regardez l'acteur Cartographie.
  • Écrivez une procédure Info_Aeroport qui reçoit en argument le code d'un aéroport (String) et qui affiche son nom complet.Procedure Info_Aeroport
  • Complétez Info_Aeroport pour que la procédure affiche aussi les coordonnées de l'aéroport. (Vous faites connaissance avec les types article.)Carte et compas
  • Écrivez ensuite une procédure sans argument Tester_Carto qui affiche les coordonnées et le nom des aéroports suivants : LFBO, EGLL, LFPG. Vous devez obtenir des noms connus et des coordonnées raisonnables pour l'Europe (longitude entre -5° et 5°, latitude entre 40° et 60°).
    Pour information, voici la liste des aéroports connus).
    • Pour les fonctions et procédures suivantes, commencez par écrire l'algorithme sur papier.
    • Écrivez une procédure de test à chaque fois.
  • Écrire une fonction Distance qui prend deux arguments de type T_Coords et qui renvoie un réel représentant la distance en km entre les deux points. Pythagore est votre ami. Function Distance
    Pour le calcul de distance, nous supposerons (un peu abusivement) que 1 degré de longitude ou de latitude représente 111km600.
    • La fonction racine carrée est dans l'acteur Cartographie.
    • Pour tester votre fonction, affichez la distance entre Blagnac (LFBO) et Heathrow (EGLL). Le résultat doit être proche de 900km.
  • Écrire une fonction Cap_Cible qui prend en argument le code d'un aéroport et qui calcule, pour l'avion, le cap vers cet aéroport. Function Cap_Cible
    • Par chance, la partie difficile du calcul est faite par la fonction Cap_Vecteur de l'acteur Cartographie.
    • Testez en affichant le cap vers Heathrow (depuis le point de départ, Toulouse). Vous devez trouver environ 347°.
  • Écrire une procédure Naviguer_Vers qui prend en argument le code d'un aéroport, et fait voler l'avion en sa direction. Procedure Naviguer_Vers
    • L'avion est supposé déjà en vol.
    • N'oubliez pas d'ajuster le cap fréquemment pendant le trajet.
    • Votre procédure doit se terminer lorsque l'avion est à proximité de l'aéroport (moins de 100km).
  • En vous inspirant du vol de démo, écrivez maintenant votre parcours complet en visitant quelques aéroports de votre choix, mais sans atterrir (revoici la liste).
Feuille de route

Partie 2 : repérer l'aéroport le plus proche.

Écran de bord
  • Complétez la procédure Naviguer_Vers afin de repérer à tout moment l'aéroport le plus proche de l'avion, en plaçant un marqueur dessus (voir dans l'acteur Cartographie).
    • N'hésitez pas à créer une nouvelle procédure ou fonction si besoin.
    • En binôme, concevez l'algorithme sur papier puis expliquez-le à votre encadrant.
  • Modifiez votre programme pour que le marqueur soit sur l'aéroport hors de France le plus proche (le code du pays est sur deux lettres, voir l'acteur Cartographie et la liste des aéroports).
  • Enfin, faites que la procédure Naviguer_Vers affiche avant de se terminer quelle a été la moyenne de la distance à l'aéroport le plus proche (hors de France) (bien sûr, l'aéroport le plus proche hors de France n'est pas toujours le même pendant le trajet).
    Vous devriez trouver des valeurs entre 250km et 370km pour un voyage ne s'aventurant pas trop à l'est.
    Ici encore, en binôme, écrivez l'algorithme sur papier puis expliquez-le à votre encadrant.
Feuille de route

Acteurs utilisés

Bilan

À l'issue de cette mission, vous devez être capables de :
  • Utiliser correctement un type article, en particulier dans une fonction.
  • Écrire l'algorithme de calcul du min, max, ou de la moyenne d'un ensemble de valeurs, et le traduire en Ada.