120 likes | 295 Views
Algo-Prog e n Ada. TD2. 2 IMACS. Romaric GUILLERM. guillerm@laas.fr. BILAN du TD1. Une démarche : Structures de données Prog . principal + spéc . des sous- prog . Sous-programmes Tableau contraint :. définition. déclaration. attributs. BILAN du TD1. in. out. procédure. in out.
E N D
Algo-Prog en Ada TD2 2 IMACS Romaric GUILLERM guillerm@laas.fr
BILAN du TD1 • Une démarche : • Structures de données • Prog. principal + spéc. des sous-prog. • Sous-programmes • Tableau contraint : définition déclaration attributs
BILAN du TD1 in out procédure in out • Différents sous-programmes : • Procédure • Fonction • Quelques algorithmes simples avec l’utilisation de boucles pour parcourir un tableau
TD2 • Suivi de la même démarche que dans le TD1 : • Structures de données définir les constantes, types et sous-types. • Programme principal, avec spécification des sous-programmes • Sous-programmes
TD2 • Structure de données : • Un élève : type article ! • Une classe : tableau non contraint Inconvénients : - on doit connaître le nombre d’élèves à l’avance - ajout/suppression d’élèves impossible (sans déclarer un autre tableau)
TD2 DEBUT nb_eleve? • Programme principal : Déclarer le tableau Saisie_des_élèves(tab) Afficher les choix possible Choix? 3 0 2 1 Trier_par_note(tab) Afficher(tab) Trier_par_nom(tab) FIN
TD2 • Programme principal :
TD2 • Spécification des sous-programmes : • …… saisir_classe(…) • …… afficher_classe(…) • …… trier_par_note(…) • …… trier_par_nom(…)
TD2 1 2 3 4 1 2 3 4 I = 1 : • Sous-programme de tri par note : 1 2 3 4 1 2 3 4 I = 2 : 1 2 3 4 1 2 3 4 I = 3 :
TD2 • Sous-programme de tri par note d’un tableau d’élèves : • Pour chaque indice i1 du tableau (sauf pour l’indice de la dernière case) • On cherche l’indice i2 de l’élève qui a la plus forte note dans le reste du tableau à partir i1 • On échange les positions des élèvescontenus aux indices i1 et i2 • Fin de la boucle pour • Sous-sous-programme de recherche de l’indice de l’élève avec la plus forte note dans un tableau d’élèves : • On initialise i_maxà l’indice de la première case • Pour chaque indice i du tableau (sauf pour l’indice de la première case) • Si la note de l’élève à la position i est plus forte que la note de l’élève à la position i_max alors : • On actualisei_maxavec la valeur de i • Fin du si • Fin de la boucle pour • On retourne i_max comme résultat
TD2 • Sous-programme de tri par note :
TD2 • Sous-programme de tri par nom :