Algorithmique et
Structure de données
Partie III
Structures de contrôle
43
Objectifs
Objectif du chapitre
• Savoir utiliser les opérateurs conditionnels
• Savoir utiliser les structures conditionnelles
• Savoir utiliser les structures répétitives
Cours - Algorithmique 44
III - Structures de contrôle
➔ Les structures de contrôle permettent de contrôler le
déroulement du programme en fonction des résultats d'un
test de condition
➔ Agir sur l’ordre ou la fréquence d’exécution des
instructions
Deux grands types de structures de contrôle:
• Structures conditionnelles ou alternatives
• Structures répétitives, encore appelées boucles
Cours - Algorithmique 45
III - Structures de contrôle
Structures conditionnelles
Cours - Algorithmique
46
III - Structures de contrôle
•Instructions conditionnelles
- L'alternative
utilisée pour l’exécution d’un ensemble d'instructions en
fonction de la valeur d’une condition (expression
booléenne)
Représentation algorithmique
Si <Condition> Alors
<TraitVrai>
[ Sinon
<TraitFaux>]
Finsi
L'expression conditionnelle est évaluée : elle est vraie ou fausse
Cours - Algorithmique 47
III - Structures de contrôle
•Instructions conditionnelles
- L'alternative - Exemple
Variable
n : ENTIER
Debut
Ecrire("entrez un nombre")
Lire(n)
Si (n > 0) Alors // cas où la condition n>0 est vraie
Ecrire("valeur positive")
Sinon //cas où la condition n>0 est fausse
Ecrire ("valeur négative ou nulle")
FinSi
FIN
Cours - Algorithmique 48
III - Structures de contrôle
- L'alternative
Les traitements après les mots Alors et Sinon
peuvent être simple ou un ensemble d'instructions
(bloc d'instructions)
Ø La condition est d'abord évaluée.
Ø Si vraie, TraitVrai exécuté puis FinSi
Ø Si fausse, TraitFaux exécuté puis FinSi
Cours - Algorithmique 49
III - Structures de contrôle
● Instructions conditionnelles
- L'alternative
➔ Plusieurs alternatives peuvent se succéder
Exemples :
Si <Condition1> Alors
< Trait1>
Sinon Si <Condition2> Alors
< Trait2 >
Sinon Si <Condition3> Alors
< Trait3 >
Sinon
< TraitFaux >
Finsi
Cours - Algorithmique 50
III - Structures de contrôle
•Instructions conditionnelles
- L'alternative - Exemple
Variable
n : ENTIER
Debut
Ecrire("entrez un nombre")
Lire(n)
Si (n > 0) Alors // cas où la condition n>0 est vraie
Ecrire("valeur positive")
Sinon Si (n<0) Alors //cas où la condition n<0 est vrai
Ecrire ("valeur négative")
Sinon //cas où les deux premières conditions sont fausses
Ecrire ( "Valeur nulle")
FinSi
FIN Cours - Algorithmique 51
III - Structures de contrôle
Programme Operation
Variable
nb1,nb2, res: entier
op : caractère
Début
Ecrire("Entrez deux nombres")
Lire(nb1, nb2)
Ecrire("entrez la première lettre de l'opération : somme ou produit")
Lire(op)
Si (op = = 's') Alors
res ß nb1 + nb2
Sinon si (op = = ‘p') Alors
res ß nb1 * nb2
Sinon
Ecrire( "Opération impossible ")
FinSi
Ecrire( "Le resultat est ", res)
Fin
Cours - Algorithmique 52
III - Structures de contrôle
● Instructions conditionnelles
- L'alternative
➔ Plusieurs tests peuvent être imbriqués
Exemples :
Si <Condition1> Alors
< Trait1>
Sinon
Si <Condition2> Alors
< Trait2 >
Sinon
< TraitFaux >
Finsi
Finsi
Cours - Algorithmique 53
III - Structures de contrôle
● Instructions conditionnelles
- L'alternative Selon
• Selon choisit le traitement en fonction de la valeur d'une variable ou d'une
expression.
• Remplace avantageusement une structure Si.
Syntaxe
Selon (expression) Faire
valeur1 : traitement1
valeur2 : traitement2
…
valeurN : traitementN
Sinon traitement
FinSelon
Cours - Algorithmique 54
III - Structures de contrôle
● Instructions conditionnelles
- L'alternative Selon
• expression est un type scalaire : entier, caractère, booléen ou énuméré
• expression est évaluée, puis sa valeur est successivement comparée à
chacune des valeurs:
• Si correspondance, arrêt comparaisons et traitement associé exécuté.
• Si aucune correspondance le traitement associé au Sinon, s’il existe,
est exécuté
Selon (expression) Faire
valeur1 : traitement1
valeur2 : traitement2
…
valeurN : traitementN
Sinon traitement
FinSelon
Cours - Algorithmique 55
III - Structures de contrôle
● Instructions conditionnelles
- L'alternative Selon
Exemple Programme Mois_Annee
Variable mois : chaine de caracteres
Debut
Ecrire("Donner le numéro du mois")
Lire(mois)
Selon (mois) Faire
1 : Ecrire("Janvier")
2 : Ecrire("Février")
3 : Ecrire("Mars")
4 : Ecrire("Avril")
…
11: Ecrire("Novembre")
12: Ecrire("Décembre")
Sinon Ecrire("Un numéro de mois doit être compris entre 1 et 12")
FinSelon
FIN
Cours - Algorithmique 56
III - Structures de contrôle
● L'alternative
Condition simple: <expression1> <opérateur> <expression2>
Condition composée: non <cond simple>
<cond simple> <opérateur logique> <cond simple>
Opérateurs : ==,≠, <, >, ≤ , ≥ Opérateurs logiques : non, et, ou
Exemples : Condition composée :
Condition simple : Si lettre == 'a' ou lettre == 'e' ou lettre == 'i' ou
Si type = 1 Alors lettre = 'o' ou lettre = ‘u’ ou lettre = ‘y’ Alors
TVA ß 5,5 Ecrire "voyelle"
Sinon Sinon
TVA ß 19,6 Ecrire "consonne"
Finsi Finsi
Cours - Algorithmique 57
III - Structures de contrôle
Structures répétitives
Cours - Algorithmique
58
III - Structures de contrôle
•Instructions répétitives
- Appelées boucles permettent de répéter un traitement ( c'est à dire
une instruction simple ou composée) autant de fois qu'il est
nécessaire
• soit un nombre déterminé de fois
• soit tant qu'une condition est vraie
Cours - Algorithmique 59
III - Structures de contrôle
•Instructions répétitives
- L'itérative Tant que…. Faire. / Faire …. Tantque
➔utilisée pour réaliser des boucles c'est à dire réaliser un même traitement
plusieurs fois sans le réécrire
Représentation algorithmique
Tant que <Cond> Faire Faire
<Traitement> <Traitement>
Fin TQ Tant que <Cond> Fin TQ
➔L'expression conditionnelle va être ➔ Dans le cas du Faire ….TantQue le
évaluée et tant qu'elle prend la traitement est exécuté avant
valeur vrai, le traitement est l'évaluation de la condition, il sera
effectué, lorsqu'elle devient fausse la toujours exécuté au moins une fois.
boucle est terminée.
Cours - Algorithmique 60
III - Structures de contrôle
•L'itérative
Exemple :
Programme Moyenne
Var
note, total, moyenne : REEL
nbnotes : ENTIER
Début
total ß 0
nbnotes ß 0
Lire (note)
TantQue note ≠ -1 Faire
total ß total + note
nbnotes ß nbnotes+1
Lire (note)
FinTQ
moyenne ß total/nbnotes
Ecrire("La moyenne vaut", moyenne)
Fin Cours - Algorithmique 61
III - Structures de contrôle
•La boucle Pour
La boucle Pour permet de répéter une instruction un nombre connu de fois. Elle a le
formalisme suivant:
Pour <initialisation><condition><incrémentation> Faire
<instructions>
FinPour
Cours - Algorithmique 62
III - Structures de contrôle
•L'itérative
Représentation algorithmique
Pour <initialisation><condition><incrémentation>Faire
<instructions>
FinPour
Pour <initialisation> <condition> <décrémentation> Faire
<instructions>
FinPour
➔Initialiser une variable c'est lui affecter une valeur pour la première fois.
➔Incrémenter (décrémenter) une variable c'est modifier sa valeur par ajout (par
retrait).
➔Remarque: attention à la condition et à l'incrémentation (décrémentation), la condition
doit passer à faux à un moment ou un autre sinon on aura une boucle infinie.
Cours - Algorithmique 63
III - Structures de contrôle
•L'itérative Pour
Exemple
Pour x ß 0 à 20 par pas de 2 Faire
Ecrire(x)
FinPour
Pour x ß 20 à 0 par pas de -2 Faire
Ecrire(x)
FinPour
Cours - Algorithmique 64
III - Structures de contrôle
•L'itérative Pour comparaise avec Tant que
Exemple
Pour x ß 0 à 20 par pas de 2 Faire
Ecrire(x)
FinPour
xß1
Tant que (x <= 20) Faire
Ecrire(x)
x ß x+1 // incrémentation explicite
FinTQ
Cours - Algorithmique 65