Cours 2

publicité
Algorithmes et
structures de données
Cours 2
Patrick Reuter
http://www.labri.fr/~preuter
Motivation
• Niklaus Wirth, ETH Zuerich, 1976
« Algorithms + Data Structures = Programs »
Algorithme
L'algorithmique :
– 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. ».
Algorithme
• Méthode de résolution de problème
• énoncée sous la forme d'une série
d'opérations à effectuer.
Algorithme
• Mise en œuvre de l'algorithme :
Implémentation (« codage »)
Ecrire les opérations dans un langage de
programmation
la brique de base d'un programme
informatique
Algorithme
• 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
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.
• http://www.labri.fr/~preuter/asd2007
Variables
• Permet de stocker des données au cours
d’un algorithme
 Structure de données la plus
élémenataire
• Caractérisé par leur nom et leur type
Variables
Caractérisé par leur nom et leur type
• Nom :
x
y
z
i
pointsJoueur1
pointsJoueur2
Variables
• Mais non pas :
3x
(doivent commencer par une lettre)
entrée
(pas de caractère spéciaux)
Variables
• Type :
– Nombre entier (p.ex. 5, integer)
– Nombre à virgule flottant (p.ex. 5.12, float)
– Caractère (p.ex. ‘c’, char)
– Chaîne de caractères (p.ex. "salut", string)
– Vrai/faux (p.ex. TRUE, boolean)
plus de détails plus tard ….
Ingrédients d’algorithmes
• Affectation
• Condition/Comparaison
• Structure de contrôle
– Branchements conditionnels (multiples)
– Boucles
• Bloc d’instruction
• Appel de fonction
Ingrédients d’algorithmes
• Affectation
x← 10;
y := 30;
z = x;
Faire tourner un algorithme
Affectation
x := 10;
y := 30;
z := x;
x := 20
Chaque variable une colonne
x
y
z
10
30
10
20
Opérateurs :
– Opérateurs numériques :
•
•
•
•
+, -, *, /
% : modulo (reste de la division)
Multiplication/division prioritaire
Parenthèses
– Opérateurs alphanumériques :
• concatenation +
– Opérateurs booléennes :
• ET, OU, NON, XOR logique
Ingrédients d’algorithmes
• Affectation
a := 7;
points := 0;
points := points + 100;
meilleurpoints := points;
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;
• Faire tourner l’algorithme
Faire tourner un algorithme
Affectation
a := 7;
points := 0;
points := points + 100;
meilleurpoints := points;
gameover := FAUX;
a
points
Chaque variable une colonne
meilleurpoints
gameover
7
0
100
100
FAUX
Téléchargement