7
28/09/2009 1 Algorithmes et structures de données Cours 3 Cours 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 nombre y i patrick Mais non pas : patrick x1 3x entrée while 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)

Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

Embed Size (px)

Citation preview

Page 1: Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

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)

Page 2: Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

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

Page 3: Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

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 :

Page 4: Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

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

Page 5: Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

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

Page 6: Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

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

Page 7: Algorithmes et structures de données Les Algorithmes … · 28/09/2009 1 Algorithmes et structures de données Cours 3Cours 3 Patrick Reuter preuter/asd2009 Les Algorithmes Ingrédients

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