TD2 2 IMACS Romaric GUILLERM Algo-Prog en Ada
BILAN du TD1 Une démarche : 1. Structures de données 2. Prog. principal + spéc. des sous-prog. 3. Sous-programmes Tableau contraint : définition déclaration attributs
BILAN du TD1 Différents sous-programmes : Procédure Fonction Quelques algorithmes simples avec lutilisation de boucles pour parcourir un tableau procédure inout in out
TD2 Suivi de la même démarche que dans le TD1 : 1. Structures de données définir les constantes, types et sous-types. 2. Programme principal, avec spécification des sous-programmes 3. Sous-programmes
TD2 Structure de données : Un ami : type article ! « Listes » damis : tableau non contraint Inconvénients :- on doit connaître le nombre damis à lavance - ajout/suppression damis impossible (sans déclarer un autre tableau)
Programme principal : DEBUT Qui êtes vous? On récupère le nombre damis On récupère les amis Afficher les choix possible FIN Trier_par_popularité( tab ) Trier_par_nom( tab ) Afficher( tab ) TD2 Choix? On déclarer le tableau tab
Programme principal : TD2
Spécification des sous-programmes : …… recuperer_amis(…) …… afficher_amis(…) …… trier_par_popularite(…) …… trier_par_nom(…) TD2
Sous-programme de tri par popularité : TD I = 1 : I = 2 : I = 3 :
Sous-programme de tri par popularité dun tableau damis : Pour chaque indice i1 du tableau (sauf pour lindice de la dernière case) On cherche lindice i2 de lami 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 lindice de lami avec la plus forte popularité dans un tableau damis : On initialise i_max à lindice de la première case Pour chaque indice i du tableau (sauf pour lindice de la première case) Si la popularité de lami à la position i est plus forte que la popularité de lami à la position i_max alors : On actualise i_max avec 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 : TD2