CHAPITRE 2 : LES STRUCTURES DE CONTROLE
I) Introduction
Les structures de contrôle permettent de mener les traitements conditionnels, itératifs
(Boucles) et séquentiels.
II) Les structures de contrôle conditionnel
Ces structures sont utilisées pour décider de l'exécution d'un bloc d'instruction : est-ce-
que ce bloc est exécuté ou non. Ou bien pour choisir entre l'exécution de deux blocs
différents.
II.1) Expression logique
Une expression logique est une énoncée ou proposition qui peut être vraie ou fausse
selon ce qu’on est en train de parler. En mathématiques, c’est une expression contenant
une ou plusieurs variables et qui est susceptible de devenir une proposition vraie ou
fausse selon les valeurs attribuées à ces variables.
Exemple :
(10 < 15) est une expression logique vrai
(10 < 3) est un prédicat faux
II.2) Evaluation d'une expression logique
Une condition est une expression de type logique. Ils lui correspondent deux valeurs
possibles VRAIE et FAUSSE qu'on note par V ou F. Considérons deux variables
logiques A et B. Voyons quels sont les opérateurs logiques et leurs ordres de priorités.
Notons que :
(A = faux) non
A (A = vrai) A
Les opérateurs logiques sont :
La négation : "non"
L'intersection : "et" L'union : "ou"
Operateurs logiques
Opérateurs Opérations
NOT négations logique
AND conjonction logique
OR disjonction inclusive
EQV équivalence logique
NEQV non-équivalence logique
II.3) Test alternatif simple
Un test simple contient un seul bloc d'instructions. Selon une condition (expression
logique), on décide est-ce-que le bloc d'instructions est exécuté ou non. Si la condition
Est vraie, on exécute le bloc, sinon on ne l’exécute pas.
La syntaxe d'un test alternatif simple est comme suit :
Cas 1 :
IF (expression logique) then
Instruction ! Exécutée si la condition est vraie
END IF
Exemple : Écrire un algorithme qui demande un entier (A) à l’utilisateur, teste si ce
nombre est positif (A≥ 0) et affiche “positif”.
Solution :
Algorithme :
Algorithme positif
Début
Variables A: entier
Écrire ("entrer la valeur de A ")
Lire (A)
Si (A ≥ 0) alors
Écrire (" positif ")
FinSi
Fin
Cas 2 :
IF (expression logique) Instruction ! Exécutée si la condition est vraie
II.4) Test alternatif double
Un test double contient deux blocs d'instructions : on est amené à décider entre le
premier bloc ou le second. Cette décision est réalisée selon une condition (expression
logique ou booléenne) qui peut être vraie ou fausse. Si la condition est vraie on exécute
le premier bloc, sinon on exécute le second. La syntaxe d'un test alternatif double est
comme suit :
Cas 1 :
IF (expression logique) then
Instructions 1
ELSE
Instructions 2
END IF
Exemple :
Écrire un algorithme qui demande un entier (A) à l’utilisateur, teste si ce nombre est
positif (A ≥ 0) ou non, et affiche “positif” ou “négatif”.
Solution :
Algorithme : Algorithme positif
Début
Variables A: entier
Écrire ("entrer la valeur de A ")
Lire (A)
Si (A ≥ 0) alors
Écrire (" positif ")
Sinon
Écrire (" négatif ")
FinSi
Fin
Cas 2:
IF (expression logique) then
Instructions 1
ELSEIF
Instructions 2
….
ELSEIF
Instructions n-1
ELSE
Instructions n
END IF
Example:
Écrire un algorithme qui demande un entier à l’utilisateur, teste si ce nombre est
strictement positif, nul ou strictement négatif, et affiche ce résultat.
Solution :
Algorithme : Algorithme positif
Début
Variables A: entier ORGANIGRAME
Écrire ("entrer la valeur de A ")
Lire (A)
Si (A ≥ 0) alors
Écrire (" positif ")
Sinon
Si (A = 0)
Ecrire (" nul ")
Sinon
Écrire (" négatif ")
FinSi
Fin
III) Les structures itératives
Une boucle permet de parcourir une partie d'un programme un certain nombre de fois.
Une itération est la répétition d'un même traitement plusieurs fois. Un indice de boucle
varie alors de la valeur minimum (initiale) jusqu'à la valeur maximum (finale).
III.1) La boucle « Pour »
Cette structure est une BOUCLE ITERATIVE ; elle consiste à répéter un certain
traitement un nombre de fois fixé à l’avance.
Cette structure utilise une variable (indice) de contrôle d’itérations caractérisée par :
- sa valeur initiale,
- sa valeur finale,
- son pas de variation.
La syntaxe de la boucle pour est la suite :
Pour I de 1 jusqu’à N pas 1
Instructions
Fin Pour
I : variable
1 : valeur initiale
N : valeur finale
Le pas de variation égale à 1.
Exemple :
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix
nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme
affichera les nombres de 18 à 27.
Solution : Organigramme :
Algorithme :
Algorithme nombres
Début
Variables I, N : entier
Écrire ("entrer la valeur de I ")
Lire (I)
N=I+10
Pour I de 17 jusqu’à N pas 1
Ecrire (I)
Fin Pour
Fin.
III.2) La boucle TANT QUE
Une action ou un groupe d’actions est exécuté répétitivement
tout le temps où une condition est vraie.
Syntaxe
Tant Que (Condition) Faire
Instructions
Fin Tant que
NB : la vérification de la condition s’effectue avant les actions. Celles-ci peuvent donc ne
jamais être exécutées.
Exemple :
On veut écrire un algorithme qui calcul la somme des entiers positifs inférieurs ou égaux
à N.
Solution : Organigramme :
Algorithme : Algorithme somme
Début
Variables I, N, S : entier
Écrire ("entrer la valeur de N ")
Lire (N)
I=0
S=0
Tant Que (I ≤ N) alors
S=S+I
I=I+1
Fin Tant Que
Ecrire (‘la Somme est’, S)
Fin
III.3) La boucle REPETER ... JUSQUA ...
Une action ou un groupe d’actions est exécuté répétitivement jusqu'à ce qu’une
condition soit vérifiée.
Syntaxe :
Répéter
Instructions
Jusqu'à (Condition)
NB : la vérification de la condition s’effectue après les actions. Celles-ci sont donc
exécutées au moins une fois.
Exemple :
Ecrire un algorithme qui demande successivement 10 nombres à l’utilisateur, et qui lui
dise ensuite quel était le plus grand parmi ces 10 nombres :
Entrez le nombre numéro 1 : 7
Entrez le nombre numéro 2 : 24
…….etc.
Entrez le nombre numéro 10 : 13
Le plus grand de ces nombres est : 24 Organigramme :
Solution :
Algorithme : Algorithme plus_grand
Début
Variables I, N, PG : entier
I=1
Écrire ("entrer la valeur de N ")
Lire (N)
PG = N
Répéter
Lire (N)
Si (PG ≤ N) alors
PG = N
Fin Si
I=I+1
Jusqu'à (I = 10)
Ecrire (‘La valeur la plus grand est’, PG)
Fin