Upload
truongtruc
View
213
Download
0
Embed Size (px)
Citation preview
28/09/2009
1
Algorithmes et structures de données
Cours 3Cours 3
Patrick Reuter
http://www.labri.fr/~preuter/asd2009
Les Algorithmes
Ingrédients d’algorithmes
• Variables• Affectation• Condition/Comparaison• Appel de fonction• Structure de contrôle
– Bloc d'instruction– Branchements conditionnels– Branchements conditionnels (multiples)– Boucles
Ingrédients d’algorithmes
• Variables– se caractérisent par leur nom et leur type
Ingrédients d’algorithmes• Variables : nom des variables
nombreyi patrick
• Mais non pas :
patrickx1
3xentréewhile
Ingrédients d’algorithmes• Variables : type des variabes
– Nombre entier (p.ex. 5)– Nombre à virgule flottant (p.ex. 5.12)– Caractère (p.ex. ‘c’)– Chaîne de caractères (p.ex. "salut")– Vrai/faux (p.ex. TRUE, FALSE)
28/09/2009
2
Ingrédients d’algorithmes
• Variables• Affectation• Condition/Comparaison• Appel de fonction• Structure de contrôle
– Bloc d'instruction– Branchements conditionnels– Branchements conditionnels (multiples)– Boucles
Ingrédients d’algorithmes• Affectation
a = 7points= 0points= points+ 100points= points+ 100
- Note:- Affectation d’une seule variable avec une valeur.- La variable à affecter figure à gauche, la valeur à droite
Faux:a+b = 67 = c
points points 100fini = FAUX
Ingrédients d’algorithmes• Opérateurs
– Opérateurs numériques :• +, -, *, /• % : modulo (reste de la division)• Multiplication/division prioritaire• Parenthèses
– Opérateurs alphanumériques :• concatenation +ex. prenom = "William"nomdefamille = "Simonet"nomcompose = prenom+" "+nomdefamille
– Opérateurs booléennes :• ET, OU, NON, XOR logique
Ingrédients d’algorithmes• Affectation
a = 10%3
nom = prenom + nomp
x = a AND b
Ingrédients d’algorithmes
• Variables• Affectation• Condition/Comparaison• Appel de fonction• Structure de contrôle
– Bloc d'instruction– Branchements conditionnels– Branchements conditionnels (multiples)– Boucles
Ingrédients d’algorithmes• Condition/Comparaison
a == 7absent == FAUXmalade == VRAI OUvacances == VRAI
- Notez:- Le ‘==‘ !!
- Le résultat d’une condition/comparaison peut être uniquement soit VRAI, soit FAUX
vacances == VRAIscore > highscore
…
28/09/2009
3
• age_etudiant_1 = dateaujourdhui –datenaissanceetudiant1
• age_etudiant_2 = dateaujourdhui –datenaissanceetudiant2datenaissanceetudiant2
age_etudiant_1 > age_etudiant_2
a = 7
x = (a==7)
Ingrédients d’algorithmes• Condition/Comparaison
a == 7absent == FAUXmalade == VRAI OUvacances == VRAI
- Notez:- Le ‘==‘ !!
- Le résultat d’une condition/comparaison peut être uniquement soit VRAI, soit FAUX
vacances == VRAIscore > highscore…
Ingrédients d’algorithmes
• Variables• Affectation• Condition/Comparaison• Appel de fonction• Structure de contrôle
– Bloc d'instruction– Branchements conditionnels– Boucles
Ingrédients d’algorithmes
• Appel de fonctions, p.ex.
afficher("Bonjour tout le monde")
Exécution d'un algorithme
• Avec uniquement des affectations et appel de fonctions, un algorithme s'exécute d'une manière linéaire
• Pour être explicite nous allons faire• Pour être explicite, nous allons faire tourner nos algorithmes :
28/09/2009
4
Faire tourner un algorithmeAffectation
x = 10y = 30z = xx = 20
1030
Chaque variable une colonne
1020
x y z
Ingrédients d’algorithmes
• Variables• Affectation• Condition/Comparaison• Appel de fonction• Structure de contrôle
– Bloc d'instruction– Branchements conditionnels– Boucles
Ingrédients d’algorithmes
• Structure de contrôle– Branchements conditionnels
Ingrédients d’algorithmes
• Structure de contrôle– Branchements conditionnels
SI <condition> ALORSSI condition ALORS<bloc d’instructions>
[SINON<bloc d’instructions>]
FIN SI
Ingrédients d’algorithmes• Structure de contrôle
– Branchements conditionnels
SI <condition> ALORS
Exemple:
SI condition ALORS<bloc d’instructions>
[SINON<bloc d’instructions>]
FIN SI
SI (points>meilleur_points) ALORSmeilleur_points = points
FIN SI
Ingrédients d’algorithmes• Structure de contrôle
– Branchements conditionnels
SI <condition> ALORSSI condition ALORS<bloc d’instructions>
[SINON<bloc d’instructions>]
FIN SI
28/09/2009
5
Ingrédients d’algorithmes• Bloc d'instruction
Ingrédients d’algorithmes• Bloc d'instruction
– permet de regrouper plusieus instructions dans le même contexte de l'algorithme
Ingrédients d’algorithmes• Bloc d'instruction
SI (score>meilleur_points) ALORSmeilleur score = pointsmeilleur_score = pointsafficher ("vous avez battu le score!")
FIN SI
Ingrédients d’algorithmes• Bloc d'instruction
SI <condition> ALORS<bloc d’instructions>
[SINON<bloc d’instructions>]
FIN SI
SI ( ill i t ) ALORSSI (score>meilleur_points) ALORSmeilleur_points = pointsafficher ("vous avez battu le score!")
FIN SI
Ingrédients d’algorithmes• Structure de contrôle
– Branchements conditionnels• SINON SI
SI mois==1 ALORSnom = "Janvier"
SINON SI mois == 2 ALORSSINON SI mois == 2 ALORSnom = "Février"
SINON SI mois == 3 ALORSnom = "Mars"
…SINON
nom = "invalide«FIN SI
Ingrédients d’algorithmes
• Variables• Affectation• Condition/Comparaison• Appel de fonction• Structure de contrôle
– Bloc d'instruction– Branchements conditionnels– Boucles
28/09/2009
6
Ingrédients d’algorithmes
• Structure de contrôle– Boucle
Définition :
Suite d’instructions qui peut être exécuté plusieurs fois (itération)
Ingrédients d’algorithmes
• Structure de contrôle– Boucle
TANT QUE <condition> FAIRETANT QUE <condition> FAIRE<bloc d’instructions>
FIN TANT QUE
Automatisation• Exemple :
– Une punition genre …
afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");afficher("J'aime les lundi matins");
Automatisation• Exemple :
– Une punition genre …
i=1;TANT QUE i <= 10 FAIRE
afficher("J'aime les lundi matins");i=i+1;
FIN TANT QUE
Automatisation
i=1;TANT QUE i <= 26 FAIRE
afficher("Je ple rniche to t le temps")afficher("Je pleurniche tout le temps");i=i+1;
FIN TANT QUE
1ère exemple: nombre d'itérations connu
• Calculer
5
Σ ii=1
28/09/2009
7
Calculer : somme = 1 + 2 + 3 + 4 + 5
somme i
somme =0i=1
somme = somme + ii=i+1
somme = somme + ii=i+1i=i+1
somme = somme + ii=i+1
somme = somme + ii=i+1
somme = somme + ii=i+1
somme
0
i
somme =0i=1
somme = somme + ii=i+1
somme = somme + ii=i+1 0
1
3
6
10
15
1
2
3
4
5
6
i=i+1
somme = somme + ii=i+1
somme = somme + ii=i+1
somme = somme + ii=i+1
somme =0i=1
TANT QUE i <= 5 FAIREsomme = somme + ii=i+1
FIN TANT QUE
somme =0i=1
somme = somme + ii=i+1
somme = somme + ii=i+1 FIN TANT QUEi=i+1
somme = somme + ii=i+1
somme = somme + ii=i+1
somme = somme + ii=i+1
somme
0
i somme =0i=1
0
1
3
6
10
15
1
2
3
4
5
6
TANT QUE i <= 5 FAIREsomme = somme + ii=i+1
FIN TANT QUE
etudiant = premieretudiantnombre=0TANT QUE
d d t VRAI FAIREpasencoredemandeatous==VRAI FAIRESI datenaissance=="mai" ALORS
nombre=nombre+1FIN SIpasser au prochain étudiant
FIN TANT QUE