Structures alternatives

publicité
Licence 2ème année - NTE 3 – 2005-06
Bernard Maurin
[email protected]
NTE 3 – Algorithmique et programmation Visual Basic
TD 2 : structure alternative
Notions de référence de la séance 2
Structure alternative Si ; opérateurs de comparaison ; opérateurs logiques ; type booléen
I – L’instruction SI…. Fin Si simple
Dans un algorithme on est souvent amené à tester si une condition est vraie (par exemple la variable
X est-elle négative ?). On emploie pour cela l’instruction structurée alternative Si … Fin Si, de
syntaxe :
Si condition logique Alors
Instruction(s)
Fin Si
II – Opérateurs de comparaison utilisés dans les tests logiques :
Les opérateurs de comparaison sont :
¾ Plus petit que < ; Plus grand que > ; Egal =
¾ Plus petit que ou égal <= ; plus grand ou égal >=
¾ Différent de : <>
Exemple : algorithme à « dérouler manuellement »
Algorithme Test1
Var Message : chaîne ; X : réel
Début
1 - Message := "La valeur est correcte" ‘initialisation de Message
2 - Lire (X)
3 - Si X < 0 Alors
3-1 - Message := "La valeur est incorrecte"
Fin si
4 - Écrire (Message)
Fin
NB : Les instructions de même rang sont numérotées (de 1 à 4). Les instructions propres à
l’instruction structurée Si sont « indentées » dans le bloc Si (et numérotées 3-1, etc, s’il y en avaient
d’autres).
Dérouler manuellement l’algorithme dans le tableau suivant pour une valeur strictement négative
1 - Message
2 – Lire(X)
3 – Instruction Si
X<0
Message
(ex : X = -2), et pour une valeur positive ou nulle (ex : X = 0)
4 - Ecrire
III – L’instruction SI…. Fin Si complète
La structure générale d’une instruction Si …. Fin Si, permet, si on le souhaite, de préciser ce que
l’on fait quand la condition testée est fausse.
Si condition logique Alors
Instruction(s)
Sinon
Instruction(s)
Fin Si
Exemple : Si vous obtenez une note supérieure à 10 à votre examen, vous êtes reçu(e), sinon vous
êtes refusé(e).
Algorithme Examen1
Var Note : réel ; Message : Chaîne
Début
Lire (Note)
Si Note >= 10 Alors
Message := "Vous êtes reçu(e)"
Sinon
Message := "Vous êtes refusé(e)"
Fin Si
Écrire (Message)
Fin
IV - Conditions logiques imbriquées
Il est possible de tester une nouvelle condition, soit dans le bloc Alors, soit dans le bloc Sinon : « Si
imbriqués »
Exemple, si vous n’avez pas 10, vous avez le droit à un oral de rattrapage (à condition d’avoir au
moins 8).
Algorithme Examen2
Var Note : réel ; Message : Chaîne
Début
Lire (Note)
Si Note >= 10 Alors
Message := "Vous êtes reçu(e)"
Sinon
Si Note >= 8 Alors
Message := "Vous devez passer l’oral"
Fin Si
Fin Si
Écrire (Message)
Fin
Ceci étant, quand vous avez une note inférieure à 8, vous êtes refusé(e).
Exercice : Complétez l’algorithme Examen2, pour indiquer le cas où vous êtes refusé(e).
Exercice : Reprendre cet exercice en partant du test Si Note < 10 Alors (en traitant les cas, reçu(e),
oral, refusé(e))
Exercice : Reprendre l’exercice, mais en partant maintenant du test Si Note < 8 Alors.
Bernard Maurin
Algorithmique – séance 2
2/4
V - Opérateurs logiques : Et, Ou
Il est possible de relier deux conditions logiques par Et ou par Ou
Condition1 Et Condition2 est vrai si les 2 conditions sont vraies.
Condition1 Ou Condition2 est vrai si au moins l’une des 2 conditions est vraie
Exemple : Une note doit être comprise entre 0 et 20.
Il y a deux manières d’écrire le test : soit avec Et, soit avec Ou.
Algorithme TestNoteEt
Var Note : réel ; Message : Chaîne
Début
Lire (Note)
Si Note >= 0 Et Note <= 20 Alors
Message := "La note " ; Note ; " est correcte"
Sinon
Message := "La note " ; Note ; " est incorrecte"
Fin Si
Écrire (Message)
Fin
Algorithme TestNoteOut
Var Note : réel ; Message : Chaîne
Début
Lire (Note)
Si Note < 0 Ou Note > 20 Alors
Message := "La note " ; Note ; " est incorrecte"
Sinon
Message := "La note " ; Note ; " est correcte"
Fin Si
Écrire (Message)
Fin
VI – Négation logique : l’opérateur logique Non
Admettons que l’on veuille transposer « directement » en algorithmique, la condition suivante : « si
X n’est pas positif ou nul, la valeur de X est incorrecte »
La négation logique de condition, s’écrit NON(condition)
NON (condition) prend la valeur opposée de condition.
Si condition = Vrai, NON(condition) = FAUX
Si condition = FAUX, NON(condition) = VRAI
Dans notre exemple, il suffit de comprendre que si X >= 0 est faux (ex X = -1) ; NON (X >= 0) est
vrai, parce que la négation de X >= 0 est X < 0 (Si X n’est pas positif ou nul, c’est qu’il est négatif).
NON(X >= 0) = X < 0
Algorithme Test3
Var Message : chaîne ; X : réel
Début
1 - Message := "La valeur est correcte" ‘initialisation de Message
2 - Lire (X)
Bernard Maurin
Algorithmique – séance 2
3/4
3 - Si Non (X>=0) Alors
3-1 - Message := "La valeur est incorrecte"
Fin si
4 - Écrire (Message)
Fin
Exercices
Pour relancer la consommation des ménages et favoriser la croissance, le gouvernement déclare
accorder une réduction d’impôt de 10% aux ménages déclarant un revenu annuel supérieur ou égal
à 80 000 €.
Exercice : Écrire un algorithme utilisant un test Si Revenu >= 80 000 Alors, en éditant soit "Vous
avez droit à une réduction d’impôt", soit "Vous n’avez pas droit à une réduction d’impôt".
Exercice : Reprendre l’exercice précédent, mais à partir du test : Si Non(Revenu < 80 000) Alors
VII –Complément : le type booléen.
Dans l’instruction Si, condition est une expression logique, on dit aussi booléenne, qui est soit
vraie, soit fausse.
En plus des types de données déjà vus (entier, réel, chaîne), il existe un type booléen, qui ne peut
prendre que 2 valeurs, notées, VRAI et FAUX.
Ainsi, dans l’exemple ci-dessus, X < 0 est une expression booléenne, car elle ne peut prendre que
deux valeurs : Vrai ou Faux.
Il est tout à fait possible de définir une variable B de type booléen et de lui affecter la valeur X < 0,
comme dans l’exemple ci-dessous (même si on pense ici que cela alourdit peut-être inutilement
l’écriture).
Algorithme Test bool
Var Message : chaîne ; X : réel ; B : booléen
Début
1 - Message := "La valeur est correcte" ‘initialisation de Message
2 - Lire (X)
3 - B := X < 0
4 - Si B Alors
4-1 - Message := "La valeur est incorrecte"
Fin si
5 - Écrire (Message)
Fin
Bernard Maurin
Algorithmique – séance 2
4/4
Téléchargement