Exercice sur les types articles, types énumérés et tableaux

- Créez un dossier pour effectuer les exercices complémentaires. Copiez-y l'acteur mouv.ads et le programme mission1.adb (l'acteur n'a pas de fichier .adb car il ne contient que des définitions de types)
- Examinez les types définis dans l'acteur Mouv
- Définissez une procédure Affiche_Pos qui reçoit en argument une position (de type T_Pos) et qui l'affiche de la manière suivante :X = 8, Y = 12Avant le begin du programme principal, définissez une variable Pos_Depart de type T_Pos dans laquelle X = 4 et Y = 2.
Dans le corps du programme principal, afficher la valeur de Pos_Depart (en utilisant Affiche_Pos évidemment) et vérifiez l'affichage. - Définissez une procédure Affiche_Sequence qui reçoit en argument une séquence de type T_Sequence et qui l'affiche de la manière suivante : Gauche Gauche Haut Bas Haut Droite Rien Rien Droite HautNotez que les messages sont affichés en français (on ne peut donc pas utiliser T_Direction'Image).
- Pour tester : avant le begin du programme principal, définissez une séquence Up, Up, Right, None et affichez-la.
- Écrivez une fonction Calcule_Position respectant le prototype suivant : On imagine un point situé initialement sur la position Origine. Le point se déplace selon les directions contenues dans la séquence Seq et la fonction renvoie la position du point à la fin de la séquence.

Ainsi la séquence Up Up Right appliquée au point (4,2) doit retourner (5, 4) soit deux fois vers le haut et une fois à droite. - Pour tester, afficher la position finale avec la séquence que vous avez déjà définie ci-dessus et l'origine située en Pos_Depart. Effectuez plusieurs tests différents.
- Écrivez maintenant une fonction Transforme qui reçoit en argument une chaîne de caractères (String) et qui renvoie une séquence de type T_Sequence. La séquence renvoyée a la même taille que la chaîne de caractères. Les caractères U, D, L, R deviennent les directions Up, Down, Left, Right (respectivement). Les autres caractères deviennent None. Par exemple, si la fonction reçoit en argument la chaîne UDUDLZZUR, elle renvoie : Up Down Up Down Left None None Up RightSi vous utilisez un bloc case, le dernier cas de la liste devra être others => B où B est un bloc.
- Testez dans le corps du programme en demandant à l'utilisateur de taper une chaîne, en affichant la séquence correspondante, puis en affichant les coordonnées du point final. Voici un exemple d'exécution complète du programme :
Origine : X = 4, Y = 2 Haut Haut Droite X = 5, Y = 4 Entrez maintenant votre propre séquence : UDzzzLLLULUDLzR Haut Bas Rien Rien Rien Gauche Gauche Gauche Haut Gauche Haut Bas Gauche Rien Droite X = 0, Y = 3
- Si vous avez bien travaillé, et que vous n'avez pas cédé à la tentation de regarder la solution tout de suite, vous pouvez examiner cette solution : mission1.adb




