1. Algorithmique et structures de donn´es I
e
Riadh Ben Messaoud
Universit´ 7 novembre ` Carthage
e a
´
Facult´ des Sciences Economiques et de Gestion de Nabeul
e
1`re ann´e Licence Fondamentale IAG
e
e
1`re ann´e Licence Appliqu´e IAG
e
e e
Ann´e universitaire
e
2009 – 2010
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 1 / 13
2. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
3. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
4. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
5. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
6. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
7. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
8. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
9. Syllabus du cours ...
Syllabus : http://eric.univ-lyon2.fr/~rbenmessaoud/
Objectif :
se familiariser avec les m´thodes de r´solution de probl`mes avec l’outil informatique ;
e e e
apprendre les principes de l’algorithmique ;
acqu´rir un d´but de maˆ
e e ıtrise des techniques et langages de programmation.
Pr´-requis :
e Connaissances g´n´rales en informatique utiles,
e e
mais pas indispensables.
Organisation : 21 h de cours + 21 h de TD
Bibliographie :
Introduction ` l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
a
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel L´ry, Pearson Education, 2005.
e
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
D´buter en programmation, Greg Perry, CampusPress, 2003.
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 2 / 13
10. Plan du cours
1 Introduction
2 Environnement algorithmique
3 Variables
4 Structures conditionnelles
5 Structures it´ratives
e
6 Tableaux
7 Sous-programmes
8 Mode de passage de param`tres
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 3 / 13
11. Plan du cours
1 Introduction
2 Environnement algorithmique
3 Variables
4 Structures conditionnelles
5 Structures it´ratives
e
6 Tableaux
7 Sous-programmes
8 Mode de passage de param`tres
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 4 / 13
12. Introduction
D´finition d’un algorithme
e
Qu’est ce qu’un algorithme ?
D´finition informelle
e
Un algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une
e e e
valeur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un
ensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul
e e
qui transforment l’entr´e en sortie.
e
Une autre d´finition
e
Un algorithme est un moyen pour un humain de pr´senter la r´solution par calcul
e e
d’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un
e a
calculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini
e e e
d’une suite d’op´rations permettant de r´soudre par calcul un probl`me.
e e e
Encore une autre d´finition, plus g´n´rale
e e e
Un algorithme est une suite d’instructions, qui une fois ex´cut´e correctement,
e e
conduit ` un r´sultat donn´.
a e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
13. Introduction
D´finition d’un algorithme
e
Qu’est ce qu’un algorithme ?
D´finition informelle
e
Un algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une
e e e
valeur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un
ensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul
e e
qui transforment l’entr´e en sortie.
e
Une autre d´finition
e
Un algorithme est un moyen pour un humain de pr´senter la r´solution par calcul
e e
d’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un
e a
calculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini
e e e
d’une suite d’op´rations permettant de r´soudre par calcul un probl`me.
e e e
Encore une autre d´finition, plus g´n´rale
e e e
Un algorithme est une suite d’instructions, qui une fois ex´cut´e correctement,
e e
conduit ` un r´sultat donn´.
a e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
14. Introduction
D´finition d’un algorithme
e
Qu’est ce qu’un algorithme ?
D´finition informelle
e
Un algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une
e e e
valeur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un
ensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul
e e
qui transforment l’entr´e en sortie.
e
Une autre d´finition
e
Un algorithme est un moyen pour un humain de pr´senter la r´solution par calcul
e e
d’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un
e a
calculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini
e e e
d’une suite d’op´rations permettant de r´soudre par calcul un probl`me.
e e e
Encore une autre d´finition, plus g´n´rale
e e e
Un algorithme est une suite d’instructions, qui une fois ex´cut´e correctement,
e e
conduit ` un r´sultat donn´.
a e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
15. Introduction
D´finition d’un algorithme
e
Qu’est ce qu’un algorithme ?
D´finition informelle
e
Un algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une
e e e
valeur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un
ensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul
e e
qui transforment l’entr´e en sortie.
e
Une autre d´finition
e
Un algorithme est un moyen pour un humain de pr´senter la r´solution par calcul
e e
d’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un
e a
calculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini
e e e
d’une suite d’op´rations permettant de r´soudre par calcul un probl`me.
e e e
Encore une autre d´finition, plus g´n´rale
e e e
Un algorithme est une suite d’instructions, qui une fois ex´cut´e correctement,
e e
conduit ` un r´sultat donn´.
a e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
16. Introduction
D´finition d’un algorithme
e
Remarque
On d´signe par algorithmique ou algorithmie l’ensemble des activit´s logiques
e e
qui rel`vent des algorithmes.
e
Exemples d’algorithmes :
indiquer un chemin ` un touriste ´gar´ ;
a e e
r´diger une recette de cuisine ;
e
´laborer un mode d’emploi pour faire fonctionner un magn´toscope ;
e e
etc.
Important
Pour fonctionner, un algorithme doit contenir uniquement des instructions
compr´hensibles par celui qui devra l’ex´cuter.
e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 6 / 13
17. Introduction
D´finition d’un algorithme
e
Remarque
On d´signe par algorithmique ou algorithmie l’ensemble des activit´s logiques
e e
qui rel`vent des algorithmes.
e
Exemples d’algorithmes :
indiquer un chemin ` un touriste ´gar´ ;
a e e
r´diger une recette de cuisine ;
e
´laborer un mode d’emploi pour faire fonctionner un magn´toscope ;
e e
etc.
Important
Pour fonctionner, un algorithme doit contenir uniquement des instructions
compr´hensibles par celui qui devra l’ex´cuter.
e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 6 / 13
18. Introduction
D´finition d’un algorithme
e
Remarque
On d´signe par algorithmique ou algorithmie l’ensemble des activit´s logiques
e e
qui rel`vent des algorithmes.
e
Exemples d’algorithmes :
indiquer un chemin ` un touriste ´gar´ ;
a e e
r´diger une recette de cuisine ;
e
´laborer un mode d’emploi pour faire fonctionner un magn´toscope ;
e e
etc.
Important
Pour fonctionner, un algorithme doit contenir uniquement des instructions
compr´hensibles par celui qui devra l’ex´cuter.
e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 6 / 13
19. Introduction
Les origines historiques de l’algorithmique
XVIII`me si`cle av. J.-C. : les
e
e
Babyloniens ont d´fini des descriptions
e
exhaustives d’algorithmes pour des calculs
concernant le commerce et les impˆts ;
o
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 7 / 13
20. Introduction
Les origines historiques de l’algorithmique
XVIII`me si`cle av. J.-C. : les
e
e
Babyloniens ont d´fini des descriptions
e
exhaustives d’algorithmes pour des calculs
concernant le commerce et les impˆts ;
o
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 7 / 13
21. Introduction
Les origines historiques de l’algorithmique
III`me si`cle av. J.-C. : Euclide a introduit
e
e
´e
(dans son ouvrage les El´ments) le c´l`bre
ee
algorithme qui permet de trouver le plus
grand diviseur commun (PGCD) de deux
nombres ;
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 8 / 13
22. Introduction
Les origines historiques de l’algorithmique
IX`me si`cle : Al Khuwarizmi ´t´ le
e
e ee
premier qui a formalis´ la notion
e
d’algorithme dans son ouvrage L’alg`bre et
e
le balancement ;
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 9 / 13
23. Introduction
Les origines historiques de l’algorithmique
XII`me si`cle : Adelard de Bath a
e
e
introduit le terme latin de algorismus (par
r´f´rence au nom de Al Khuwarizmi). Ce
ee
mot donne algorithme en fran¸ais en 1554.
c
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 10 / 13
24. Introduction
Pour ˆtre bon en algorithmique ...
e
Faut-il ˆtre matheux pour ˆtre bon en algorithmique ?
e e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 11 / 13
25. Introduction
Pour ˆtre bon en algorithmique ...
e
Faut-il ˆtre matheux pour ˆtre bon en algorithmique ?
e e
Non, pas du tout !
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 11 / 13
26. Introduction
Pour ˆtre bon en algorithmique ...
e
Faut-il ˆtre matheux pour ˆtre bon en algorithmique ?
e e
Non, pas du tout !
La maˆ
ıtrise de l’algorithmique requiert trois qualit´s :
e
1 Il faut ˆtre m´thodique. Avant d’´crire les instructions d’un algorithme, il
e e e
faut analyser le probl`me ` r´soudre. Il faut ensuite d´finir les entr´es et
e a e e e
les sorties de l’algorithme.
2 Il faut avoir de l’intuition. Aucune recette ne permet de savoir a priori
quelles instructions permettront d’obtenir le r´sultat voulu. Les r´flexes du
e e
raisonnement algorithmique deviennent spontan´s avec l’exp´rience.
e e
3 Il faut ˆtre rigoureux. Chaque fois qu’on ´crit une s´rie d’instructions, il faut
e e e
syst´matiquement se mettre mentalement ` la place de la machine qui va
e a
les ex´cuter. Si n´cessaire, il faut avoir recours ` une simulation sur papier.
e e a
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 11 / 13
27. Introduction
Pour ˆtre bon en algorithmique ...
e
Faut-il ˆtre matheux pour ˆtre bon en algorithmique ?
e e
Non, pas du tout !
La maˆ
ıtrise de l’algorithmique requiert trois qualit´s :
e
1 Il faut ˆtre m´thodique. Avant d’´crire les instructions d’un algorithme, il
e e e
faut analyser le probl`me ` r´soudre. Il faut ensuite d´finir les entr´es et
e a e e e
les sorties de l’algorithme.
2 Il faut avoir de l’intuition. Aucune recette ne permet de savoir a priori
quelles instructions permettront d’obtenir le r´sultat voulu. Les r´flexes du
e e
raisonnement algorithmique deviennent spontan´s avec l’exp´rience.
e e
3 Il faut ˆtre rigoureux. Chaque fois qu’on ´crit une s´rie d’instructions, il faut
e e e
syst´matiquement se mettre mentalement ` la place de la machine qui va
e a
les ex´cuter. Si n´cessaire, il faut avoir recours ` une simulation sur papier.
e e a
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 11 / 13
28. Introduction
Pour ˆtre bon en algorithmique ...
e
Faut-il ˆtre matheux pour ˆtre bon en algorithmique ?
e e
Non, pas du tout !
La maˆ
ıtrise de l’algorithmique requiert trois qualit´s :
e
1 Il faut ˆtre m´thodique. Avant d’´crire les instructions d’un algorithme, il
e e e
faut analyser le probl`me ` r´soudre. Il faut ensuite d´finir les entr´es et
e a e e e
les sorties de l’algorithme.
2 Il faut avoir de l’intuition. Aucune recette ne permet de savoir a priori
quelles instructions permettront d’obtenir le r´sultat voulu. Les r´flexes du
e e
raisonnement algorithmique deviennent spontan´s avec l’exp´rience.
e e
3 Il faut ˆtre rigoureux. Chaque fois qu’on ´crit une s´rie d’instructions, il faut
e e e
syst´matiquement se mettre mentalement ` la place de la machine qui va
e a
les ex´cuter. Si n´cessaire, il faut avoir recours ` une simulation sur papier.
e e a
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 11 / 13
29. Introduction
Pour ˆtre bon en algorithmique ...
e
Faut-il ˆtre matheux pour ˆtre bon en algorithmique ?
e e
Non, pas du tout !
La maˆ
ıtrise de l’algorithmique requiert trois qualit´s :
e
1 Il faut ˆtre m´thodique. Avant d’´crire les instructions d’un algorithme, il
e e e
faut analyser le probl`me ` r´soudre. Il faut ensuite d´finir les entr´es et
e a e e e
les sorties de l’algorithme.
2 Il faut avoir de l’intuition. Aucune recette ne permet de savoir a priori
quelles instructions permettront d’obtenir le r´sultat voulu. Les r´flexes du
e e
raisonnement algorithmique deviennent spontan´s avec l’exp´rience.
e e
3 Il faut ˆtre rigoureux. Chaque fois qu’on ´crit une s´rie d’instructions, il faut
e e e
syst´matiquement se mettre mentalement ` la place de la machine qui va
e a
les ex´cuter. Si n´cessaire, il faut avoir recours ` une simulation sur papier.
e e a
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 11 / 13
31. Introduction
Les instructions fondamentales
Les ordinateurs ne comprennent que quatre cat´gories d’instructions :
e
1 l’affectation de variables ;
2 la lecture/´criture ;
e
3 les tests (les structures conditionnelles) ;
4 les boucles (les structures it´ratives).
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 12 / 13
32. Introduction
Les instructions fondamentales
Les ordinateurs ne comprennent que quatre cat´gories d’instructions :
e
1 l’affectation de variables ;
2 la lecture/´criture ;
e
3 les tests (les structures conditionnelles) ;
4 les boucles (les structures it´ratives).
e
Important
Un algorithme informatique se ram`ne toujours ` la combinaison de ces quatre
e a
types d’instruction. Il peut y en avoir quelques unes, quelques dizaines, et jusqu’`
a
plusieurs centaines de milliers.
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 12 / 13
33. Plan du cours
1 Introduction
2 Environnement algorithmique
3 Variables
4 Structures conditionnelles
5 Structures it´ratives
e
6 Tableaux
7 Sous-programmes
8 Mode de passage de param`tres
e
R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 13 / 13