E N D
1. Algorithmes et structures de données (avancées)Cours 1+2
Patrick Reuter
http://www.labri.fr/~preuter
3. Motivation
Niklaus Wirth, ETH Zuerich, 1976
« Algorithms + Data Structures = Programs »
4. Motivation
5. Motivation p. ex. / ex:p. ex. / ex:
6. Motivation a / àa / à
7. Motivation
8. Motivation
9. Motivation
10. Motivation plannifier / planifierplannifier / planifier
11. Algorithmehttp://www.labri.fr/~preuter/asda2007 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. ».
examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmesexaminerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes
12. 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. examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmesexaminerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes
13. 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 ») examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmesexaminerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes
14. 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. examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmesexaminerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes
17. Exemple Trouver un numéro dans un annuaire par nom donnée
18. Exemple Trouver un nom dans un annuaire par numéro donnée
19. 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.
20. Ingrédients d’algorithmes Variables :
nombre
y
i
patrick
x1
Mais non pas :
3x
entrée
21. Ingrédients d’algorithmes Affectation
Condition/Comparaison
Appel de fonction
Structure de contrôle
Branchements conditionnels (multiples)
Boucles
Bloc d’instruction
22. 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; un valeur / une valeurun valeur / une valeur
23. 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
24. Ingrédients d’algorithmes Appel de fonction, p.ex.
afficher(« Bonjour tout le monde »);
resultat := racine_carre(16);
25. Ingrédients d’algorithmes Structure de contrôle
Branchements conditionnels
SI <condition> ALORS
<bloc d’instructions>
SINON
<bloc d’instructions>
26. 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;
27. 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;
28. 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;
29. Ingrédients d’algorithmes Structure de contrôle
Boucle
Définition :
Suite d’instructions qui peut être exécuté plusieurs fois (itération)
exécuté / exécutée exécuté / exécutée
30. 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>