• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
307
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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 – 2010R. 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 TDBibliographie : 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 TDBibliographie : 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 TDBibliographie : 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 TDBibliographie : 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 TDBibliographie : 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 TDBibliographie : 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 TDBibliographie : 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 TDBibliographie : 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. IntroductionD´finition d’un algorithme eQu’est ce qu’un algorithme ?D´finition informelle eUn algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une e e evaleur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou unensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul e equi transforment l’entr´e en sortie. eUne autre d´finition eUn algorithme est un moyen pour un humain de pr´senter la r´solution par calcul e ed’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un e acalculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini e e ed’une suite d’op´rations permettant de r´soudre par calcul un probl`me. e e eEncore une autre d´finition, plus g´n´rale e e eUn algorithme est une suite d’instructions, qui une fois ex´cut´e correctement, e econduit ` un r´sultat donn´. a e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
  • 13. IntroductionD´finition d’un algorithme eQu’est ce qu’un algorithme ?D´finition informelle eUn algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une e e evaleur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou unensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul e equi transforment l’entr´e en sortie. eUne autre d´finition eUn algorithme est un moyen pour un humain de pr´senter la r´solution par calcul e ed’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un e acalculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini e e ed’une suite d’op´rations permettant de r´soudre par calcul un probl`me. e e eEncore une autre d´finition, plus g´n´rale e e eUn algorithme est une suite d’instructions, qui une fois ex´cut´e correctement, e econduit ` un r´sultat donn´. a e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
  • 14. IntroductionD´finition d’un algorithme eQu’est ce qu’un algorithme ?D´finition informelle eUn algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une e e evaleur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou unensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul e equi transforment l’entr´e en sortie. eUne autre d´finition eUn algorithme est un moyen pour un humain de pr´senter la r´solution par calcul e ed’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un e acalculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini e e ed’une suite d’op´rations permettant de r´soudre par calcul un probl`me. e e eEncore une autre d´finition, plus g´n´rale e e eUn algorithme est une suite d’instructions, qui une fois ex´cut´e correctement, e econduit ` un r´sultat donn´. a e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
  • 15. IntroductionD´finition d’un algorithme eQu’est ce qu’un algorithme ?D´finition informelle eUn algorithme est une proc´dure de calcul bien d´finie qui prend en entr´e une e e evaleur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou unensemble de valeurs. Un algorithme est donc une s´quence d’´tapes de calcul e equi transforment l’entr´e en sortie. eUne autre d´finition eUn algorithme est un moyen pour un humain de pr´senter la r´solution par calcul e ed’un probl`me ` une autre personne physique (un autre humain) ou virtuelle (un e acalculateur). En effet, un algorithme est un ´nonc´ dans un langage bien d´fini e e ed’une suite d’op´rations permettant de r´soudre par calcul un probl`me. e e eEncore une autre d´finition, plus g´n´rale e e eUn algorithme est une suite d’instructions, qui une fois ex´cut´e correctement, e econduit ` un r´sultat donn´. a e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 5 / 13
  • 16. IntroductionD´finition d’un algorithme eRemarqueOn d´signe par algorithmique ou algorithmie l’ensemble des activit´s logiques e equi rel`vent des algorithmes. eExemples 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.ImportantPour fonctionner, un algorithme doit contenir uniquement des instructionscompr´hensibles par celui qui devra l’ex´cuter. e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 6 / 13
  • 17. IntroductionD´finition d’un algorithme eRemarqueOn d´signe par algorithmique ou algorithmie l’ensemble des activit´s logiques e equi rel`vent des algorithmes. eExemples 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.ImportantPour fonctionner, un algorithme doit contenir uniquement des instructionscompr´hensibles par celui qui devra l’ex´cuter. e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 6 / 13
  • 18. IntroductionD´finition d’un algorithme eRemarqueOn d´signe par algorithmique ou algorithmie l’ensemble des activit´s logiques e equi rel`vent des algorithmes. eExemples 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.ImportantPour fonctionner, un algorithme doit contenir uniquement des instructionscompr´hensibles par celui qui devra l’ex´cuter. e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 6 / 13
  • 19. IntroductionLes 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. IntroductionLes 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. IntroductionLes 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. IntroductionLes 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. IntroductionLes 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. IntroductionPour ˆtre bon en algorithmique ... eFaut-il ˆtre matheux pour ˆtre bon en algorithmique ? e e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 11 / 13
  • 25. IntroductionPour ˆtre bon en algorithmique ... eFaut-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. IntroductionPour ˆtre bon en algorithmique ... eFaut-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. IntroductionPour ˆtre bon en algorithmique ... eFaut-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. IntroductionPour ˆtre bon en algorithmique ... eFaut-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. IntroductionPour ˆtre bon en algorithmique ... eFaut-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
  • 30. IntroductionLes instructions fondamentalesLes ordinateurs ne comprennent que quatre cat´gories d’instructions : e R. Ben Messaoud (FSEGN) Algorithmique I 2009 – 2010 12 / 13
  • 31. IntroductionLes instructions fondamentalesLes 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. IntroductionLes instructions fondamentalesLes 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). eImportantUn algorithme informatique se ram`ne toujours ` la combinaison de ces quatre e atypes d’instruction. Il peut y en avoir quelques unes, quelques dizaines, et jusqu’` aplusieurs 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