ALGO ch3 Structures Controle
ALGO ch3 Structures Controle
ALGO ch3 Structures Controle
Ch 3 – Les structures de
ALGO
contrôle
I. INTRODUCTION ...................................................................................................................................................... 1
A. DEROULEMENT LINEAIRE D’UN ALGORITHME : UNE SEQUENCE D’ACTIONS .................................................................. 1
B. RUPTURE DE L’EXECUTION LINEAIRE : CHOIX ET REPETITIONS ................................................................................... 2
II. CHOISIR : STRUCTURES DE CONTROLE CONDITIONNELLES ........................................................................ 2
A. STRUCTURE CONDITIONNELLE SIMPLE ..................................................................................................................... 2
B. STRUCTURE CONDITIONNELLE ALTERNATIVE ............................................................................................................ 3
C. STRUCTURE CONDITIONNELLE A CHOIX MULTIPLES ................................................................................................... 4
III. REPETER : STRUCTURES DE CONTROLES REPETITIVES, OU BOUCLES .................................................... 5
A. GENERALITES......................................................................................................................................................... 5
B. BOUCLE TANT QUE - FAIRE ................................................................................................................................ 6
C. BOUCLE FAIRE - TANT QUE ................................................................................................................................. 6
D. BOUCLE POUR - FAIRE ........................................................................................................................................ 7
E. COMPARAISON DES BOUCLES .................................................................................................................................. 7
F. BOUCLE FAIRE … JUSQU’A ................................................................................................................................. 9
G. EQUIVALENCES DES STRUCTURES REPETITIVES (ITERATIVES) ................................................................................. 10
I. STRUCTURES IMBRIQUEES ............................................................................................................................... 11
A. STRUCTURE CONDITIONNELLES IMBRIQUEES .......................................................................................................... 11
I. Introduction
A. Déroulement linéaire d’un algorithme : une séquence d’actions
Nous avons étudié jusqu’à présent des algorithmes constitués par une succession non
interrompue d’actions :
• Affectations, calculs
• Lectures et écritures d’informations.
Ces actions forment un bloc dont le déroulement est linéaire, ininterrompu.
début
action1
action2
action3
...
actionN
fin
Combien
début début de
Laquelle ?
action1 action1 répétitions
?
action2
action2
action2 action3 ...
action2
... action3
actionN ...
actionN
fin fin
Représentation graphique :
Si la condition est VRAIE (=l’évaluation de
‘Expr.Log.’ est égal à VRAI), alors le bloc
d’actions Bloc_V est exécuté, puis on
poursuit l’exécution après la fin de la
SI structure de contrôle (marquée par finSI).
finSI
Représentation graphique :
Si la condition est VRAIE, ALORS le bloc
Bloc_V est exécuté
SINON (la condition N’EST PAS VRAIE), le
SI bloc d’instructions Bloc_F est exécuté
Vrai Faux
Condition.
ALORS SINON
Bloc_V Bloc_F
finSI
Exemple :
SI (age >= AGE_MAJORITE)
ALORS
AFFICHER("vous etes majeur !")
SINON
AFFICHER("vous etes mineur !")
finSI
CAS 12 : F
CAS Vrai
AFFICHER("Décembre") var = V2 actV2
SINON
AFFICHER("le numéro F de
CAS var = VN Vrai actVN
mois est errone")
finSELON F
SINON
actDef
finSELON
ATTENTION :
LA CONDITION D’ARRET (ou de poursuite) D’UNE BOUCLE DOIT ETRE PARFAITEMENT
IDENTIFIEE.
La boucle TANT QUE permet d’exécuter un bloc d’instructions SI une expression logique
est VRAIE et TANT QU’elle est vraie. Le bloc d’actions s’exécutera 0 à N fois.
Syntaxe :
TANT QUE (expression_logique) FAIRE
. . . Bloc d’instructions à répéter
finTANTQUE
• Expression_logique (=test, condition)
o l’expression à évaluer : si VRAI, exécution du bloc d’instructions, et répétition de
l’exécution TANT QUE cette expression logique a pour valeur VRAI
• bloc d’instructions:
o bloc d’instructions à exécuter
ATTENTION :
Les données permettant d’évaluer l’expression logique doivent avoir été initialisés
auparavant ET devront être à nouveau initialisés dans le bloc d’instructions (sinon on
obtient une boucle infinie !)
Syntaxe :
FAIRE
… Bloc d’action(s) à répéter
TANT QUE (expression_logique)
• Expression_logique
o l’expression à évaluer : exécution du bloc d’instructions 1 fois, et répétition
éventuelle TANT QUE cette expression logique a pour valeur VRAI
• bloc d’instructions:
o bloc d’instructions à exécuter
FAIRE
AFFICHER("Entrez un nombre supérieur à 10 :")
ALGO_ch3_structures_controle.doc 01/09/2013 Page 6 / 11
Introduction à l’algorithmique
SAISIR(Vnombre)
TANT QUE (Vnombre <= 10)
C’est ici la variable (Vnombre<=10) qui va servir à déterminer la condition de poursuite de la
boucle plus d’une fois.
ATTENTION :
Les données permettant d’évaluer l’expression logique doivent être initialisés dans le bloc
d’instructions (sinon on obtient une boucle infinie !)
Syntaxe :
POUR var_boucle DE val_deb A val_fin PAS DE val_pas FAIRE
. . . Bloc d’instructions à répéter
finPOUR
• var_boucle
o Représente le nom de la variable numérique (ENTIER) qui va servir de compteur de
boucle (variable de contrôle de boucle) (anglais loop counter)
• val_deb : valeur initiale de ‘var_boucle’ (anglais initial value)
• val_fin : valeur finale de ‘var_boucle’ : la boucle va s’arrêter quand ‘var_boucle > val_fin’ ou
va continuer tant que ‘var_boucle <= val_fin’ (anglais loop-continuation condition) ; cette
valeur détermine si oui ou non une boucle doit continuer ou s’arrêter
• val_pas : c’est le pas d’incrémentation (ou de décrémentation s’il est négatif)de
‘var_boucle’ à chaque itération (anglais increment / decrement) ; cette valeur modifie la
variable de contrôle de boucle à chaque passage = à chaque itération de la boucle (
anglais in each iteration of the loop)
POUR
init
DE init
TANTQUE Bloc Instr.
A
Maj cond. Condition
Condition Vrai Faux
Vrai Faux
Bloc Instr.
Bloc Instr. Vrai Faux
Condition
incrémenter.
Maj cond.
PAS DE 1
finTANTQUE finPOUR
Dans les 2 formes de boucles précédentes (TANT QUE - FAIRE, FAIRE - TANT QUE), LA
REPETITION EST POURSUIVIE SI UNE EXPRESSION LOGIQUE EST VRAIE, ET TANT
QU’ELLE EST VRAIE.
Syntaxe :
REPETER
. . . Bloc d’action(s) à répéter
JUSQU'A (expression_logique)
• Expression_logique
o représente l’expression à évaluer : si cette expression a pour valeur VRAI,
ARRET DE l’exécution du bloc d’instructions
• bloc d’instructions:
o bloc d’instructions à exécuter
FAIRE
AFFICHER("Entrez un nombre supérieur à 10 :")
SAISIR(Vnombre)
JUSQU'A (Vnombre > 10)
C’est ici la variable Vnombre (Vnombre > 10) qui va servir à déterminer l’arrêt de la répétition.
ATTENTION :
Maj cond.
F Vrai
Condition
Problème :
On souhaite construire un algorithme qui affiche les nombres de 1 à Vnombre, Vnombre étant
saisi par l’utilisateur.
SAISIR(Vnombre)
Pour passer d’une boucle TANT QUE à une boucle JUSQU'A, il faut
inverser le test.
Exemple syntaxe 2 :
SI (expression_logique 1)
ALORS
... bloc d’instructions 1
SINON SI (expression_logique 2)
ALORS
... bloc d’instructions 2
SINON SI (expression_logique 3)
ALORS
... bloc d’instructions 3
SINON
... bloc d’instructions N
finSI