Algorithmes et structures de donnes avances Cours 12






























- Slides: 30
Algorithmes et structures de données (avancées) Cours 1+2 Patrick Reuter http: //www. labri. fr/~preuter
Déroulement • CM mardi de 8 h à 9 h • TD - Groupe 1 : mardi, 13 h 30 – 15 h 00 - Groupe 2 : mardi, 15 h 15 – 16 h 45 (rendre la feuille à la prochaine séance)
Motivation • Niklaus Wirth, ETH Zuerich, 1976 « Algorithms + Data Structures = Programs »
Motivation 8. 168. 684. 336 pages Comment ça marche ?
Motivation Structure de donnée: p. ex. fantôme - couleur - position - direction - aggressif ou pas ? Algorithmes: p. ex. mettre a jour le meilleur score
Motivation Structure de donnée: - tableau a 2 dimension Algorithmes: - surtout I. A.
Motivation Structure de donnée : File FIFO (First In First Out) Aussi: File à priorité
Motivation Structure de donnée : Pile LIFO (Last In First Out)
Motivation Structure de donnée : Arbre (pour l’élimination des parties cachées)
Motivation Structure de donnée : Graphe (pour plannifier des trajets)
Algorithme http: //www. labri. fr/~preuter/asda 2007 L'algorithmique est la science des algorithmes, visant à étudier les opérations nécessaires à la réalisation d'un calcul. René Descartes dans le Discours de la Méthode : • « diviser chacune des difficultés que j'examinerois, en autant de parcelles qu'il se pourroit, et qu'il seroit requis pour les mieux résoudre. » .
Algorithme • Un algorithme est une méthode de résolution de problème énoncée sous la forme d'une série d'opérations à effectuer.
Algorithme • La mise en œuvre de l'algorithme consiste en l'écriture de ces opérations dans un langage de programmation et constitue alors la brique de base d'un programme informatique (implémentation, « codage » )
Algorithme • L'algorithme devra être plus ou moins détaillé selon le niveau d'abstraction du langage utilisé ; autrement dit, une recette de cuisine doit être plus ou moins détaillée en fonction de l'expérience du cuisinier.
Exemple • Trouver un numéro dans un annuaire par nom donnée
Exemple • Trouver un nom dans un annuaire par numéro donnée
Structure de données Définition Wikipedia (12/9/2005) • une structure logique destinée à contenir des données afin de leur donner une organisation permettant de simplifier leur traitement. • Exemple : On peut présenter des numéros de téléphone * - par département, - par nom - par profession (pages jaunes), - par numéro téléphonique (annuaires destinés au télémarketing), - par rue et/ou - une combinaison quelconque de ces classements. À chaque usage correspondra une structure d'annuaire appropriée.
Ingrédients d’algorithmes • Variables : nombre y i patrick x 1 • Mais non pas : 3 x entrée
Ingrédients d’algorithmes • • Affectation Condition/Comparaison Appel de fonction Structure de contrôle – Branchements conditionnels (multiples) – Boucles • Bloc d’instruction
Ingrédients d’algorithmes • Affectation a : = 7; score : = 0; score : = score + 100; gameover : = FAUX; - Note: - Affectation d’une seule variable avec un valeur. - La variable à affecter figure à gauche, la valeur à droite Faux: a+b : = 6; 7 : = c;
Ingrédients d’algorithmes • Condition/Comparaison a=7 absent = FAUX malade = VRAI OU vacances = VRAI score > highscore; … - Note: - Le résultat d’une condition/comparaison peut être uniquement soit VRAI, soit FAUX
Ingrédients d’algorithmes • Appel de fonction, p. ex. afficher( « Bonjour tout le monde » ); resultat : = racine_carre(16);
Ingrédients d’algorithmes • Structure de contrôle – Branchements conditionnels SI <condition> ALORS <bloc d’instructions> SINON <bloc d’instructions>
Ingrédients d’algorithmes • Structure de contrôle – Branchements conditionnels SI <condition> ALORS <bloc d’instructions> SINON <bloc d’instructions> Exemple: SI (score>meilleur_score) ALORS meilleur_score : = score;
Ingrédients d’algorithmes • Structure de contrôle – Branchements conditionnels SI <condition> ALORS <bloc d’instructions> SINON <bloc d’instructions> En PASCAL : IF (score>meilleur_score) THEN meilleur_score : = score; Exemple: SI (score>meilleur_score) ALORS meilleur_score : = score;
Ingrédients d’algorithmes • Structure de contrôle – Branchements conditionnels multiples – CAS mois DE ‘ 1': nom : = « Janvier » ; ‘ 2': nom : = « Février » ; ‘ 3': nom : = « Mars » ; ‘ 4': nom : = « Avril » ; ‘ 5': nom : = « Mai » ; …. ‘ 12': nom : = « Décembre » ; AUTREMENT afficher('Erreur dans le mois') ; FIN CAS;
Ingrédients d’algorithmes • Structure de contrôle – Boucle Définition : Suite d’instructions qui peut être exécuté plusieurs fois (itération)
Ingrédients d’algorithmes • Structure de contrôle – Boucle TANT QUE <condition> FAIRE <bloc d’instructions> FIN TANT QUE ou FAIRE <bloc d’instructions> TANT QUE <condition>