Vous êtes sur la page 1sur 4

3- LES STRUCTURES CONDITIONNELLES

On a vu, jusqu'ici, qu'on peut souvent rencontrer des situations qui ne peuvent pas être
traitées par les seules séquences utilisant les instructions de base. En effet, on a besoin parfois
de choisir entre deux ou plusieurs traitements selon la réalisation ou non d'une certaine
condition, d'où la notion de traitement conditionnel. On peut distinguer trois structures de
traitement conditionnel :
1. 1. Une structure conditionnelle simple : dans laquelle on a à choisir entre deux
traitements au plus. On distingue deux structures conditionnelles simple :
 Une structure conditionnelle à un seul choix
 Une structure conditionnelle à deux choix.
2. 2. Une structure conditionnelle à plusieurs choix : dans laquelle on a la possibilité de
choisir un traitement parmi plusieurs.

3-1- STRUCTURE CONDITIONNELLE SIMPLE


La forme générale de cette structure conditionnelle simple est donnée sous les deux
représentations algorithmiques suivantes :

Structure conditionnelle Structure conditionnelle


à un seul choix à deux choix

SI (Condition) ALORS SI (Condition) ALORS


Instruction 1 Instruction 1
Instruction 2 Instruction 2
... ...
Instruction n Instruction n
FIN SI SINON
Instruction 1
Instruction 2
...
Instruction n
FIN SI

1
Remarque : si la condition mentionnée après le mot Si est vraie, on exécute ce qui figure
après le mot Alors ; si la condition est fausse, on exécute ce qui figure après le mot Sinon.

 Exemple 1 : Cet algorithme permet de lire un nombre entier puis vérifier s'il est pair ou
impair.

Analyse :
 déclarer deux variables de type entier : une pour recevoir un nombre à partir du
clavier, l'autre pour recevoir le reste de la division entière par 2.
 Calculer, à l'aide de la fonction Mod, le reste de la division entière du nombre par 2.
 Tester pour voir si le reste est égal à 0, dans ce cas le nombre est pair ; dans le cas
contraire le nombre est impair.

Algorithme Pair_Impair
DefVar
nombre, reste (Entier)
Début
Ecrire ("Donnez un nombre entier")
Lire (nombre)
reste ← nombre Mod 2
Si reste = 0
Alors
Ecrire ("Le nombre ", nombre, " est pair")
Sinon
Ecrire ("Le nombre ", nombre, " est impair")
Fin Si
Fin

 Exemple 2 (Les choix imbriqués) : Calcul de remise. A partir d'un montant lu en


données. On détermine un montant net par application d'une remise de :
 5% si le montant est compris entre 2000 D (inclus) et 5000 D (inclus).
 10% si le montant est supérieur ou égal à 5000 D.

Analyse :
 Déclarer trois variables (Montant, Taux et Remise) de type numérique.
 Lire le montant à partir du clavier.
 Tester pour voir si le montant frappé par l'utilisateur est inférieur ou égal à
2000 D, dans ce cas affecter à Taux la valeur 0 ; dans le cas contraire tester pour voir si
le montant est inférieur à 5000 D. Si cette dernière condition est vérifiée, affecter à Taux
la valeur 5 sinon 10.
 Calculer le montant de remise.
 Affecter à Montant le montant net.

Algorithme Calcul_remise
DefVar
Montant, Remise (Réel)
Taux (Entier)
Début
Ecrire ("Montant ? (en Dinars) :")
Lire (Montant)
Si Montant < 2000
Alors
Taux ← 0
Sinon

27
Si Montant <= 5000
Alors
Taux ← 5
Sinon
Taux ← 10
Fin Si
Fin Si
Remise ← Montant * Taux / 100
Montant ← Montant - Remise
Fin

Remarque : Notez que beaucoup d'autres formulations sont possibles. Ainsi, par exemple,
on peut éviter l'emploi de choix imbriqués en utilisant trois structures d'exécution
conditionnelle :
 Si Montant < 2000 Alors Taux ← 0 Fin Si
 Si (Montant >= 2000) Et (Montant < = 5000) Alors Taux ← 5 Fin Si
 Si Montant > 5000 Alors Taux ← 10 Fin Si

3-2- STRUCTURE CONDITIONNELLE A PLUSIEURS CHOIX


Cette structure conditionnelle est utilisée pour sélectionner une séquence possible
d'instructions parmi plusieurs. Elle ressemble à la structure Si...Alors...Sinon, mais elle est
plus efficace lorsqu'il s'agit de tester la même variable plusieurs fois. Sa forme générale se
présente de deux façons différentes (Version 1 et 2) :

Structure conditionnelle aux choix multiples (Version 1)

CAS Sélecteur DE
Liste_valeurs1 : instructions exécutées si Sélecteur est inclus dans Liste_valeurs1
Liste_valeurs2 : instructions exécutées si Sélecteur est inclus dans Liste_valeurs2
...
Liste_valeursN : instructions exécutées si Sélecteur est inclus dans Liste_valeursN
[AUTRE instructions à exécuter si rien ne correspond]
FIN CAS

 Sélecteur : est un identificateur de variable ou une expression de type scalaire


 Liste_valeurs1..Liste_valeursN : ce sont des valeurs servant aux tests. Elles peuvent
être données sous forme de constantes et/ou d'intervalles constantes de type compatible
avec le sélecteur.
 [...] : bloc facultatif

Remarque : Si le contenu du sélecteur mentionné après le mot Cas correspond à une


valeur (parmi les listes de valeurs mentionnées après le mot De), on exécute toutes les
instructions qui suivent cette valeur jusqu'à la liste de valeurs suivante. Si rien ne
correspond, on exécute les instructions qui figurent après le mot Autre. Puis l'algorithme sort
de la structure et continue l'exécution après le mot Fin Cas.

Structure conditionnelle aux choix multiples (Version 2)

CAS
Condition_1 : instructions exécutées si Condition_1 est vérifiée
Condition_2 : instructions exécutées si Condition_2 est vérifiée
...
Condition_N : instructions exécutées si Condition_N est vérifiée
[AUTRE instructions à exécuter si aucune condition n'est vérifiée
FIN CAS

28
Remarque : Si l'une des conditions est vérifiée, l'algorithme exécute toutes les
instructions qui suivent cette condition jusqu'à la condition suivante puis il sort et continue
l'exécution après le mot Fin Cas.

 Exemple : Cet algorithme permet de saisir une date sous la forme JJ MM AA et d'afficher
le nombre de jours du mois MM et le nombre de jours qui restent pour la fin de ce mois.

Analyse :
 déclarer 5 variables de type entier :
 3 variables (jj, mm et aa) pour recevoir la date.
 1 variable (jtot) pour recevoir le nombre total de jours du mois mm.
 1 variable (jreste) pour calculer le nombre de jours restant pour la fin du mois
mm.
 lire la date sous la forme demandée.
 sélectionner le bon mois.
 déterminer les valeurs des variables jtot et jreste en tenant compte des années
bissextiles.

Algorithme Jours
DefVar
jj, mm, aa, jtot, jreste (Entier)
Début
Ecrire ("Donnez la date sous la forme JJ MM AA :")
Lire (jj, mm, aa)
-- On suppose que la date frappée par l'utilisateur est valide
Cas mm De
1, 3, 5, 7, 8, 10, 12 : jtot ← 31 -- Janvier, Mars, Mai, Juillet, Août, Oct., Déc.
4, 6, 9, 11 : jtot ← 30 -- Avril, Juin, Sép. et Nov.
Autre -- Février
Si (aa Mod 4 = 0) -- Année bissextile (Février a 29 jours)
Alors
jtot ← 29
Sinon
jtot ← 28
Fin si
Fin Cas
jreste ← jtot - jj
Ecrire ("Le mois ", mm, " a ", jtot, " jours et il reste encore ",
jreste, " jours pour sa fin").
Fin

29

Vous aimerez peut-être aussi