Vous êtes sur la page 1sur 34

Les Tests ou

structures
alternatives
La structure alternative
◼ Il est souvent nécessaire lorsque l'on écrit un
programme de distinguer plusieurs cas
conditionnant l'exécution de certaines
instructions

◼ Utilisation d’une structure alternative : si on est


dans tel cas, alors on fait cela sinon on fait ceci.
2
La structure alternative

3
La structure alternative
Si (Condition) Alors
Instructions 1
Sinon
Instructions 2
Finsi

◼ si la condition est vraie, se sont les instructions1 qui seront


exécutées

◼ si la condition est fausse, se sont les instructions2 qui seront


exécutées

◼ la condition peut être une condition simple ou une condition


composée de plusieurs conditions
4
Qu’est ce qu’une condition ?
◼ Une condition est une comparaison
 Une expression définie à partir d’un opérateur
de comparaison
◼ égal à =
◼ différent de <>

◼ strictement plus petit que <

◼ strictement plus grand que >

◼ plus petit ou égal à <=

◼ plus grand ou égal à >=

◼ L’évaluation d’une condition est un booléen


5
La structure alternative

◼ Exemple:
 10<20 VRAI

 ‘a’>’b’ FAUX

6
Bloc d’instructions 1 Ecrire(‘’Bonjour’’)
Ecrire(‘’Donner le jour de la semaine’’)
Si (Condition) Alors Lire(j)
Instructions 2 Si(j = ‘’Dimanche’’) alors
Finsi ecrire(‘’bon weekend’’)
FinSi
Bloc d’instructions 3 Ecrire(‘’Merci et au revoir’’)

Cas 1 :
Bonjour
Cas 1 : condition vraie Donner le jour de la semaine
Bloc d’instructions 1 Dimanche
Instructions 2 Bon weekend
Bloc d’instructions 3 Merci et au revoir

Cas 2 : condition fausse Cas 2 :


Bloc d’instructions 1 Bonjour
Bloc d’instructions 3 Donner le jour de la semaine
Lundi
Merci et au revoir

7
Bloc d’instructions 1 Ecrire(‘’Bonjour’’)
Ecrire(‘’Donner le jour de la semaine’’)
Si (Condition) Alors Lire(j)
Instructions 2 Si(j = ‘’Dimanche’’) alors
Sinon ecrire(‘’bon weekend’’)
Sinon
Instructions 3 ecrire(‘’Au travail’’)
Finsi FinSi
Ecrire(‘’Merci et au revoir’’)
Bloc d’instructions 4
Cas 1 :
Bonjour
Cas 1 : condition vraie Donner le jour de la semaine
Bloc d’instructions 1 Dimanche
Instructions 2 Bon weekend
Bloc d’instructions 4 Merci et au revoir
Cas 2 : condition fausse
Bloc d’instructions 1 Cas 2 :
Instructions 3 Bonjour
Bloc d’instructions 4 Donner le jour de la semaine
Lundi
Au travail 8
Merci et au revoir
Exercice : (Si…Alors)
◼ Ecrire un algorithme qui affiche la valeur
absolue d’un nombre donné par
l’utilisateur.

9
Solution 1
Algorithme AffichageValeurAbsolue
Variable x,y : réel
Début
Ecrire (“Entrez un réel : ")
Lire (x)
Si (x >= 0) alors
y←x
Sinon
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin 10
Solution 2
Algorithme AffichageValeurAbsolue
Variable x,y : réel
Début
Ecrire (“Entrez un réel : ")
Lire (x)
y← x
Si (x < 0) alors
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est :", y)
Fin
11
Exercice : (Si…Alors…Sinon)
◼ Ecrire un algorithme qui demande un
nombre à l’utilisateur, et l’informe ensuite
si ce nombre est positif ou négatif
◼ Refaire l’exercice en laissant de côté le
cas où le nombre vaut zéro.

12
Exercice : (Si…Alors…Sinon)
◼ Ecrire un algorithme qui demande l’heure
à l’utilisateur et affiche « bonjour » (8h et
18h), « bonsoir » (19h à 21h) ou « bonne
nuit » (au delà de 22h)

13
Conditions composées
◼ Une condition composée est une condition formée de plusieurs
conditions simples reliées par des opérateurs logiques:
ET, OU, OU exclusif (XOR) et NON

◼ Exemples :
 x compris entre 2 et 6 : (x > 2) ET (x < 6)

 n divisible par 3 ou par 2 : (n Mod 3=0) OU (n Mod 2=0)

◼ Dans une condition composée employant à la fois des opérateurs


ET et des opérateurs OU, la présence de parenthèses possède une
influence sur le résultat, tout comme dans le cas d’une expression
numérique (exemple multiplications et des additions)

◼ L'évaluation d'une condition composée se fait selon des règles


présentées généralement dans ce qu'on appelle tables de vérité
14
Tables de vérité
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI VRAI VRAI
VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX

C1 C2 C1 XOR C2 C1 NON C1
VRAI VRAI FAUX VRAI FAUX
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX

15
Exercice
◼ Ecrire un algorithme qui demande trois
lettres à l’utilisateur et l’informe ensuite
s’ils sont rangés ou non dans l’ordre
alphabétique.

16
Exercice
◼ Ecrire un algorithme qui demande deux
nombres à l’utilisateur et l’informe ensuite
si leur produit est négatif ou positif (on
laisse de côté le cas où le produit est nul).
Attention toutefois : on ne doit pas calculer
le produit des deux nombres.

17
Exercice
◼ Ecrire
un algorithme qui permet de
résoudre l’équation du premier degré
ax+b=0

18
Tests imbriqués
◼ Il peut arriver que l'une des parties d'une structure alternative
contienne à son tour une structure alternative. Dans ce cas, on
dit qu'on a des structures alternatives imbriquées les unes dans
les autres.
◼ Les tests peuvent avoir un degré quelconque d'imbrications

Si condition1 alors
instructions1
Sinon
Si condition2 alors
instructions2
Sinon
instructions3
Finsi
Finsi 19
Tests imbriqués
◼ Exemple (version 1):

Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si (n < 0) alors Ecrire ("Ce nombre est négatif")
Finsi
Si (n = 0) alors Ecrire ("Ce nombre est nul")
Finsi
Si (n > 0) alors Ecrire ("Ce nombre est positif")
Finsi
Fin

20
Tests imbriqués
◼ Exemple (version 2):

Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si (n < 0) alors
Ecrire ("Ce nombre est négatif")
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin
21
Tests imbriqués
◼ Remarque : dans la version 1 on fait trois tests
systématiquement alors que dans la version 2, si le
nombre est négatif on ne fait qu'un seul test

◼ Conseil : utiliser les tests imbriqués pour limiter le


nombre de tests et placer d'abord les conditions les plus
probables (minimiser la complexité)

22
Les structures alternatives imbriquées
Exemple2 : Ecrire un programme qui donne l’état de l’eau selon sa
température.
Variable Temp : Entier
Début
Ecrire “Entrez la température de l’eau :”
Lire Temp
Si Temp =< 0 Alors
Ecrire “C’est de la glace“
Sinon
Si Temp < 100 Alors
Ecrire “C’est du liquide”
Sinon
Ecrire “C’est de la vapeur”
Finsi
FinSi
Fin
23
◼ On peut aussi écrire :
Variable Temp : Entier
Début
Ecrire “Entrez la température de l’eau :”
Lire Temp
Si Temp =< 0 Alors
Ecrire “C’est de la glace“
Finsi
Si Temp > 0 Et Temp < 100 Alors
Ecrire “C’est du liquide”
Finsi
Si Temp > 100 Alors
Ecrire “C’est de la vapeur”
Finsi
Fin
◼ La première version est plus simple à écrire et plus lisible. Elle est également plus performante à
l’exécution. En effet, les conditions se ressemblent plus ou moins, et surtout on oblige la machine à
examiner trois tests successifs alors que tous portent sur la même chose, la valeur de la variable Temp.
Mais aussi, et surtout, nous avons fait des économies sur le temps d’exécution de l’ordinateur. Si la
température est inférieure à zéro, celui-ci écrit « C’est de la glace » et passe directement à la fin, sans
être ralenti par l’examen des autres possibilités

24
Exercice
◼ Ecrire un algorithme qui demande deux
nombres à l’utilisateur et l’informe ensuite
si le produit est négatif ou positif (on inclut
cette fois le traitement du cas où le produit
peut être nul). Attention toutefois, on ne
doit pas calculer le produit !

25
◼ Variables m, n en Entier
Début
Ecrire ("Entrez deux nombres : ")
Lire (m, n)
Si ((m = 0) OU (n = 0)) Alors
Ecrire ("Le produit est nul")
Sinon // m<>0 et n<>0
Si ((m < 0 ET n < 0) OU (m > 0 ET n > 0)) Alors
Ecrire ("Le produit est positif")
Sinon
Ecrire ("Le produit est négatif")
Finsi
Finsi
Fin

26
Exercice
◼ Ecrire un algorithme qui permet de lire le
salaire d’un employé, et d’augmenter sa
valeur selon les cas suivants :
 <4000 : 30%
 Entre 4000 et 6000 : 25%
 >6000 : 20%

27
Exercice
◼ Ecrireun algorithme qui demande l’âge
d’un enfant à l’utilisateur. Ensuite, il
l’informe de sa catégorie :
- « Poussin » de 6 à 7 ans
- « Pupille » de 8 à 9 ans
- « Minime » de 10 à 11 ans
- « Cadet » après 12 ans

28
Autre forme : Selon … cas
◼ Dans des langages de programmation, la structure alternative peut
prendre une autre forme qui permet d’imbriquée plusieurs.
◼ Sa syntaxe est :
ou
Selon < nom de variable > ◼ Selon expression
valeur1 : action1
Cas <Condition>: < instruction ou bloc >
valeur2 : action2
Cas<Condition>: < instruction ou bloc > …
… valeurN : actionN
[Sinon < instruction ou bloc >] Sinon : action
Fin Selon Fin selon
◼ Si expression est égale à valeuri, on exécute actioni et on passe à la suite
de l’algorithme. Sinon on
exécute action et on passe à la suite de l’algorithme

29
Selon … cas
◼ Afficher le jour correspondant au rang du
jour dans la semaine qui est compris entre
1 et 7.

30
Algorithme jour de la semaine
Variable n:entier
début
Lire (n)
Si n = 1 Alors écrire ( ‘lundi’ )
Sinon Si n = 2 Alors écrire ( ‘mardi’ )
Sinon Si n = 3 Alors écrire ( ‘mercredi’ )
Sinon Si n = 4 Alors écrire ( ‘jeudi’ )
Sinon Si n = 5 Alors écrire ( ‘vendredi’ )
Sinon Si n = 6 Alors écrire ( ‘samedi’ )
Sinon Si n = 7 Alors écrire ( ‘dimanche’ )
Sinon écrire ( ‘le numéro doit être compris entre 1 et 7’ )
FinSi FinSi FinSi FinSi FinSi FinSi FinSi

Fin

31
Selon … cas
‘Selon le cas’ permet de simplifier la syntaxe :
Selon (a)
Cas a = 0 : …
Cas a = 1 : …
Cas a = 2 : …
Sinon …
FinSelon

32
Exemple :
Algorithme jour de la semaine
Variable n:entier
début
Lire (n)
Selon (n) :
Cas (n = 1) : écrire ( ‘lundi’ )
Cas (n = 2) : écrire ( ‘mardi’ )
Cas (n = 3) : écrire ( ‘mercredi’ )
Cas (n = 4) : écrire ( ‘jeudi’ )
Cas (n = 5) : écrire ( ‘vendredi’ )
Cas (n = 6) : écrire ( ‘samedi’ )
Cas (n = 7) : écrire ( ‘dimanche’ )
sinon écrire ( ‘le numéro doit être compris entre 1 et 7’ )
Fin Selon
Fin
33
Exercice
◼ Un organisme de location de voiture propose deux formules de location :
1. Location au kilomètre :
• pour les 100 premiers kilomètres : tarif t1 au km,
• pour les kilomètres de 101 à 1000 : tarif t2 au km,
• au delà de 1000 kilomètres : tarif t3 au km.

◼ 2. Forfait journalier : kilométrage illimité au prix t4 par jour.

◼ Dans les deux cas, il convient d’ajouter une assurance comptabilisée par jour et
dont le montant est donné.

◼ Ecrire un algorithme qui lit le nombre total de kilomètres et le nombre de jours de


location ainsi que les tarifs t1, t2, t3 et t4 calcule les coûts totaux des deux
tarifications, affiche les 2 coûts et indique au client la solution la plus avantageuse

34

Vous aimerez peut-être aussi