120 likes | 288 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 ami : type article ! • « Listes » d’amis: tableau non contraint Inconvénients : - on doit connaître le nombre d’amis à l’avance - ajout/suppression d’amis impossible (sans déclarer un autre tableau)
TD2 DEBUT Qui êtes vous? On récupère le nombre d’amis • Programme principal : On déclarer le tableau tab On récupère les amis Afficher les choix possible Choix? 3 0 2 1 Afficher(tab) Trier_par_nom(tab) Trier_par_popularité(tab) FIN
TD2 • Programme principal :
TD2 • Spécification des sous-programmes : • …… recuperer_amis(…) • …… afficher_amis(…) • …… trier_par_popularite(…) • …… trier_par_nom(…)
TD2 1 2 3 4 1 2 3 4 I = 1 : • Sous-programme de tri par popularité : 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 popularité d’un tableau d’amis : • Pour chaque indice i1 du tableau (sauf pour l’indice de la dernière case) • On cherche l’indice i2 de l’ami qui a la plus forte popularité dans le reste du tableau à partir i1 • On échange les positions des amis contenus aux indices i1 et i2 • Fin de la boucle pour • Sous-sous-programme de recherche de l’indice de l’ami avec la plus forte popularité dans un tableau d’amis : • 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 popularité de l’ami à la position i est plus forte que la popularité de l’ami à 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 popularité :
TD2 • Sous-programme de tri par nom :