Algorithmique et structures de données I

publicité
Algorithmique et structures de données I
Riadh Ben Messaoud
Université 7 novembre à Carthage
Faculté des Sciences Économiques et de Gestion de Nabeul
1ère année Licence Fondamentale IAG
1ère année Licence Appliquée IAG
Année universitaire
2009 – 2010
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
1 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
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 ;
apprendre les principes de l’algorithmique ;
acquérir un début de maı̂trise des techniques et langages de programmation.
Pré-requis :
Connaissances générales en informatique utiles,
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
et Clifford Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Léry, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
2 / 11
Plan du cours
1
Introduction
2
Environnement algorithmique
3
Variables
4
Structures conditionnelles
5
Structures itératives
6
Tableaux
7
Sous-programmes
8
Mode de passage de paramètres
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
3 / 11
Environnement algorithmique
L’algorithmique et la programmation ...
Quelle est la différence entre l’algorithmique et la programmation ?
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
4 / 11
Environnement algorithmique
L’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.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
4 / 11
Environnement algorithmique
L’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.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
4 / 11
Environnement algorithmique
L’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
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
4 / 11
Environnement algorithmique
L’algorithmique et la programmation ...
Algorithme :
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
5 / 11
Environnement algorithmique
L’algorithmique et la programmation ...
Programme :
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
5 / 11
Environnement algorithmique
Niveau logique du développement
I Apprendre l’algorithmique, c’est apprendre à manier la structure logique
d’un programme informatique.
I L’algorithmique exprime les instructions résolvant un problème donné
indépendamment des particularités de tel ou tel langage.
I 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 à ce langage.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
6 / 11
Environnement algorithmique
Niveau logique du développement
I Apprendre l’algorithmique, c’est apprendre à manier la structure logique
d’un programme informatique.
I L’algorithmique exprime les instructions résolvant un problème donné
indépendamment des particularités de tel ou tel langage.
I 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 à ce langage.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
6 / 11
Environnement algorithmique
Niveau logique du développement
I Apprendre l’algorithmique, c’est apprendre à manier la structure logique
d’un programme informatique.
I L’algorithmique exprime les instructions résolvant un problème donné
indépendamment des particularités de tel ou tel langage.
I 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 à ce langage.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
6 / 11
Environnement algorithmique
Niveau logique du développement
I Apprendre l’algorithmique, c’est apprendre à manier la structure logique
d’un programme informatique.
I L’algorithmique exprime les instructions résolvant un problème donné
indépendamment des particularités de tel ou tel langage.
I 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 à ce langage.
Niveaux de développement :
1
Analyse : niveau conceptuel ;
2
Algorithmique : niveau logique ;
3
Programmation : niveau physique.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
6 / 11
Environnement algorithmique
Représentation d’un algorithme
Historiquement, plusieurs types de notations ont été utilisés pour représenter des
algorithmes :
Descriptions littéraires
Organigrammes
Pseudo-codes
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
7 / 11
Environnement algorithmique
Représentation d’un algorithme
Historiquement, plusieurs types de notations ont été utilisés pour représenter des
algorithmes :
Descriptions littéraires
Organigrammes
Pseudo-codes
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
7 / 11
Environnement algorithmique
Représentation d’un algorithme
Historiquement, plusieurs types de notations ont été utilisés pour représenter des
algorithmes :
Descriptions littéraires
Organigrammes
Pseudo-codes
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
7 / 11
Environnement algorithmique
Représentation d’un algorithme
Historiquement, plusieurs types de notations ont été utilisés pour représenter des
algorithmes :
Descriptions littéraires
Organigrammes
Pseudo-codes
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
7 / 11
Environnement algorithmique
Représentation d’un algorithme
Historiquement, plusieurs types de notations ont été utilisés 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 évacué la plupart des problèmes de
syntaxe.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
7 / 11
Environnement algorithmique
Représentation d’un algorithme
Historiquement, plusieurs types de notations ont été utilisés 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 évacué 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.
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
7 / 11
Environnement algorithmique
Repré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.
Se lever
Marcher vers la porte
Ouvrir la porte
Marcher vers la cha^
ıse
S’asseoir
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
8 / 11
Environnement algorithmique
Repré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.
1
2
3
4
5
R. Ben Messaoud (FSEGN)
Se lever
Marcher vers la porte
Ouvrir la porte
Marcher vers la cha^
ıse
S’asseoir
Algorithmique I
2009 – 2010
8 / 11
Environnement algorithmique
Repré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.
1
2
3
4
5
R. Ben Messaoud (FSEGN)
M.
M.
M.
M.
M.
Foulen
Foulen
Foulen
Foulen
Foulen
Se lever
Marcher vers la porte
Ouvrir la porte
Marcher vers la cha^
ıse
S’asseoir
Algorithmique I
2009 – 2010
8 / 11
Environnement algorithmique
Repré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.
1
2
3
4
5
M.
M.
M.
M.
M.
R. Ben Messaoud (FSEGN)
Foulen
Foulen
Foulen
Foulen
Foulen
→
→
→
→
→
Se lever
Marcher vers la porte
Ouvrir la porte
Marcher vers la cha^
ıse
S’asseoir
Algorithmique I
2009 – 2010
8 / 11
Environnement algorithmique
Repré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.
1
2
3
4
5
M.
M.
M.
M.
M.
R. Ben Messaoud (FSEGN)
Foulen
Foulen
Foulen
Foulen
Foulen
→
→
→
→
→
Se lever
Marcher vers la porte
Ouvrir la porte
Marcher vers la cha^
ıse
S’asseoir
Algorithmique I
2009 – 2010
8 / 11
Environnement algorithmique
Repré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
1
M.
2
M.
3
M.
4
M.
5
M.
R. Ben Messaoud (FSEGN)
la porte
Foulen →
Foulen →
Foulen →
Foulen →
Foulen →
Se lever
Marcher vers la porte
Ouvrir la porte
Marcher vers la cha^
ıse
S’asseoir
Algorithmique I
2009 – 2010
8 / 11
Environnement algorithmique
Représentation d’un algorithme
Convention à adopter : squelette d’un algorithme
Algorithme Nom algorithme
Const :
Var :
Début
Fin
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
9 / 11
Environnement algorithmique
Représentation d’un algorithme
Convention à adopter : squelette d’un algorithme
Algorithme Nom algorithme
Const : [Constantes]
Var : [Variables]
Début
[Instructions]
Fin
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
9 / 11
Environnement algorithmique
Représentation d’un algorithme
Convention à adopter : squelette d’un algorithme
Algorithme Nom algorithme
Const : [Constantes]
Var : [Variables]
Début
[Instructions]
Fin
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
9 / 11
Environnement algorithmique
Représentation d’un algorithme
Convention à adopter : squelette d’un algorithme
←− En-tête
Algorithme Nom algorithme
Const : [Constantes]
←− Déclaration des
Var : [Variables]
constantes et
des variables
Début
←− Traitements
[Instructions]
Fin
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
9 / 11
Environnement algorithmique
Représentation d’un algorithme
Exemple : calcul de la surface d’un rectangle
Algorithme CalculSurface 1
Const : Longueur = 4,32 ; Largeur = 3,77
Var : Surface : réel
Début
Surface ← Longueur * Largeur
Ecrire (“La surface du rectangle est :” ; Surface)
Fin
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
10 / 11
Environnement algorithmique
Repré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
Ecrire (“Donnez la longueur en m”)
Lire (Longueur)
Ecrire (“Donnez la largeur en m”)
Lire (Largeur)
Surface ← Longueur * Largeur
Ecrire (“La surface du rectangle est :” ; Surface)
Fin
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
10 / 11
Plan du cours
1
Introduction
2
Environnement algorithmique
3
Variables
4
Structures conditionnelles
5
Structures itératives
6
Tableaux
7
Sous-programmes
8
Mode de passage de paramètres
R. Ben Messaoud (FSEGN)
Algorithmique I
2009 – 2010
11 / 11
Téléchargement