1 / 26

Algorithmique et structure de données

Algorithmique et structure de données. Syllabus du cours. Objectif : se familiariser avec les méthodes de résolution de problèmes avec l'outil informatique ; apprendre les principes de l'algorithmique ; acquérir un début de maîtrise des techniques et langages de programmation.

adrina
Télécharger la présentation

Algorithmique et structure de données

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithmique et structure de données

  2. Syllabus du cours ... Objectif : • se familiariser avec les méthodes de résolution de problèmes avec l'outil informatique ; • apprendre les principes de l'algorithmique ; • acquérir un début de maîtrise des techniques et langages de programmation. Bibliographie : • Introduction a l'algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Cliord Stein, Dunod, Paris, 2004. • Algorithmique Application en C, Jean-Michel Lery, Pearson Education, 2005. • Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000. • Débuter en programmation, Greg Perry, CampusPress, 2003.

  3. Plan du cours • Introduction à l'algorithmique • Environnement algorithmique • Structure de données • Structures de contrôle • Structures itératives • Sous-programmes • Mode de passage de paramètres • Tableaux

  4. Introduction à l'algorithmiqueDéfinition d'un algorithme Qu'est ce qu'un algorithme ? Définition informelle • Un algorithme est une procédure de calcul bien définie qui prend en entrée une 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 qui transforment l'entrée en sortie.

  5. Introduction à l'algorithmiqueDéfinition d'un algorithme Une autre définition • Un algorithme est un moyen pour un humain de présenter la résolution par calcul d'un problème à une autre personne physique (un autre humain) ou virtuelle (un calculateur). • En effet, un algorithme est un énoncé dans un langage bien défini d'une suite d'opérations permettant de résoudre par calcul un problème. Encore une autre définition, plus générale • Un algorithme est une suite d'instructions, qui une fois exécutée correctement, conduit à un résultat donné.

  6. Introduction à l'algorithmiqueDéfinition d'un algorithme Remarque • On désigne par algorithmique ou algorithmie l'ensemble des activités logiques qui relèvent des algorithmes. Exemples d'algorithmes : • indiquer un chemin à un touriste égaré ; • rédiger une recette de cuisine ; • élaborer un mode d'emploi pour faire fonctionner un magnétoscope ; • etc. Important • Pour fonctionner, un algorithme doit contenir uniquement des instructions compréhensibles par celui qui devra l'exécuter.

  7. Introduction a l'algorithmiqueLes origines historiques de l'algorithmique • XVIIIème siècle av. J.-C. : les Babyloniens ont défini des descriptions exhaustives d'algorithmes pour des calculs concernant le commerce et les impôts ; • IIIème siècle av. J.-C. : Euclide a introduit (dans son ouvrage les Éléments) le célèbre algorithme qui permet de trouver le plus grand diviseur commun (PGCD) de deux nombres ; • IXème siècle : Al Khuwarizmi été le premier qui a formalisé la notion d'algorithme dans son ouvrage L'algèbre et le balancement; • XIIème siècle : Adelard de Bath a introduit le terme latin de algorismus (par référence au nom de Al Khuwarizmi). Ce mot donne algorithme en français en 1554.

  8. Introduction a l'algorithmiquePour être bon en algorithmique ... Faut-il être matheux pour être bon en algorithmique? Non, pas du tout ! La maîtrise de l'algorithmique requiert trois qualités : • Il faut être méthodique. Avant d‘écrire les instructions d'un algorithme, il faut analyser le problème à résoudre. Il faut ensuite définir les entrées et les sorties de l'algorithme. • Il faut avoir de l'intuition. Aucune recette ne permet de savoir à priori quelles instructions permettront d'obtenir le résultat voulu. Les réflexes du raisonnement algorithmique deviennent spontanés avec l'expérience. • Il faut être rigoureux. Chaque fois qu'on écrit une série d'instructions, il faut systématiquement se mettre mentalement à la place de la machine qui va les exécuter. Si nécessaire, il faut avoir recours à une simulation sur papier.

  9. Introduction a l'algorithmiqueLes instructions fondamentales Les ordinateurs ne comprennent que quatre catégories d'instructions : • l'affectation de variables ; • la lecture/écriture ; • les tests (les structures conditionnelles) ; • les boucles (les structures itératives). Important • Un algorithme informatique se ramène toujours à la combinaison de ces quatre types d'instruction. Il peut y en avoir quelques unes, quelques dizaines, et jusqu‘à plusieurs centaines de milliers.

  10. Environnement algorithmiqueL'algorithmique et la programmation ... Quelle est la différence entre l'algorithmique et la programmation ? Réponse • L’écriture d'un programme dans un langage de programmation n'est que l‘étape finale d'un développement qui se déroule en trois phases : l'analyse, l'algorithmique et la programmation. En d'autre terme : • Un algorithme est un maillon de la chaîne de développement d'un programme. Il est le lien indispensable entre l'analyse et la programmation. En utilisant des images : • Si un programme était une construction, l'algorithme serait le plan • Si un programme était une toile de peinture, l'algorithme serait l'esquisse

  11. Environnement algorithmiqueL'algorithmique et la programmation ... • Algorithme :

  12. Environnement algorithmiqueL'algorithmique et la programmation ... • Programme :

  13. Environnement algorithmiqueNiveau logique du développement • Apprendre l'algorithmique, c'est apprendre à manier la structure logique d'un programme informatique. • L'algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. • Lorsqu'on programme dans un langage (en C, en Visual Basic, etc.) on doit, en plus de la structure logique, prendre en considération les problèmes de syntaxe et les types d'instructions propres a ce langage. Niveaux de développement : • Analyse : niveau conceptuel ; • Algorithmique : niveau logique ; • Programmation : niveau physique.

  14. Environnement algorithmiqueReprésentation d'un algorithme Historiquement, plusieurs types de notations ont été utilises pour représenter des algorithmes : • Descriptions littéraires • Organigrammes • Pseudo-codes Définition informelle • Un pseudo-code est une série de conventions qui ressemble à un langage de programmation authentique dont on aurait évacue la plupart des problèmes de syntaxe. Important • Un pseudo-code est susceptible de varier d'une référence à une autre. En effet, un pseudo-code est purement conventionnel. Aucune machine n'est censée le reconnaître.

  15. Environnement algorithmiqueReprésentation d'un algorithme Exemple de conventions : • exprimer les actions avec des verbes a l'infinitif ; Se lever Marcher vers la porte Ouvrir la porte Marcher vers la chaise S'asseoir

  16. Environnement algorithmiqueReprésentation d'un algorithme Exemple de conventions : • exprimer les actions avec des verbes à l'infinitif ; • numéroter les instruction dans l'ordre séquentiel en commençant par 1 ; 1 Se lever 2 Marcher vers la porte 3 Ouvrir la porte 4 Marcher vers la chaise 5 S'asseoir

  17. Environnement algorithmiqueReprésentation d'un algorithme Exemple de conventions : • exprimer les actions avec des verbes à l'infinitif ; • numéroter les instruction dans l'ordre séquentiel en commençant par 1 ; • exprimer le nom de l'acteur dans les instructions ; 1 M. Foulen Se lever 2 M. Foulen Marcher vers la porte 3 M. Foulen Ouvrir la porte 4 M. Foulen Marcher vers la chaise 5 M. Foulen S'asseoir

  18. Environnement algorithmiqueReprésentation d'un algorithme Exemple de conventions : • exprimer les actions avec des verbes à l'infinitif ; • numéroter les instruction dans l'ordre séquentiel en commençant par 1 ; • exprimer le nom de l'acteur dans les instructions ; • exprimer le lien entre l'acteur et l'action par le symbole " " ; 1 M. Foulen Se lever 2 M. Foulen Marcher vers la porte 3 M. Foulen Ouvrir la porte 4 M. Foulen Marcher vers la chaise 5 M. Foulen S'asseoir

  19. Environnement algorithmiqueReprésentation d'un algorithme Exemple de conventions : • exprimer les actions avec des verbes à l'infinitif ; • numéroter les instruction dans l'ordre séquentiel en commençant par 1 ; • exprimer le nom de l'acteur dans les instructions ; • exprimer le lien entre l'acteur et l'action par le symbole " " ; • encadrer les instructions de l'algorithme ; 1 M. Foulen Se lever 2 M. Foulen Marcher vers la porte 3 M. Foulen Ouvrir la porte 4 M. Foulen Marcher vers la chaise 5 M. Foulen S'asseoir

  20. Environnement algorithmiqueReprésentation d'un algorithme Exemple de conventions : • exprimer les actions avec des verbes à l'infinitif ; • numéroter les instruction dans l'ordre séquentiel en commençant par 1 ; • exprimer le nom de l'acteur dans les instructions ; • exprimer le lien entre l'acteur et l'action par le symbole " " ; • encadrer les instructions de l'algorithme ; • exprimer, en en-tête, le nom de l'algorithme. Ouvrir la porte 1 M. Foulen Se lever 2 M. Foulen Marcher vers la porte 3 M. Foulen Ouvrir la porte 4 M. Foulen Marcher vers la chaise 5 M. Foulen S'asseoir

  21. Environnement algorithmiqueReprésentation d'un algorithme Convention à adopter : squelette d'un algorithme Algorithme Nom_algorithme Const : Var : Début Fin

  22. Environnement algorithmiqueReprésentation d'un algorithme Convention à adopter : squelette d'un algorithme Algorithme Nom_algorithme Const : [Constantes] Var : [Variables] Début [Instructions] Fin

  23. Environnement algorithmiqueReprésentation d'un algorithme Convention à adopter : squelette d'un algorithme

  24. Environnement algorithmiqueReprésentation d'un algorithme Convention à adopter : squelette d'un algorithme En-tête Déclaration des constantes et des variables Traitements

  25. Environnement algorithmiqueReprésentation d'un algorithme Exemple : calcul de la surface d'un rectangle Algorithme CalculSurface_1 Const : Longueur = 4,32 ; Largeur = 3,77 Var : Surface : reel Début Surface := Longueur * Largeur Écrire ("La surface du rectangle est :" ; Surface) Fin

  26. Environnement algorithmiqueReprésentation d'un algorithme Exemple : calcul de la surface d'un rectangle Algorithme CalculSurface_2 Var : Surface : réel ; Longueur : réel ; Largeur : réel ; Début Lire (" Donnez la longueur en m" ; Longueur) Lire (" Donnez la largeur en m" ; Largeur) Surface := Longueur * Largeur Ecrire (" La surface du rectangle est :" ; Surface) Fin

More Related