Cette quatrième leçon de programmation va vous permettre
de découvrir le type de variable booléen et les tests avec
l'instruction if qui permettent de de faire des choix.
I ) Les variables booléennes
Les variables booléennes sont du type Boolean (booléen)
sont des variables un peu spéciales car elles ne peuvent prendre
que deux valeurs : True ou False (vrai ou faux). True
et False sont deux contantes prédéfinies que l'on
pourra utiliser dans les scripts pour initialiser les variables booléennes
grâce à l'opérateur d'affectation :
ImagePrise := False;
Comme toutes les variables, celles ci doivent être déclarée
en tête du script juste après le mot clef var. Par
exemple :
Program Lecon3; var ImagePrise : Boolean; begin ImagePrise := False; end.
Ce script s'exécute parfaitement mais ne fait rien. En elles
même ces variables semblent bien inutiles. La suite de cette leçon
porte sur leur fonction.
II ) Les tests
Comme les boucles que l'on a vu dans la leçon précédente,
le test est une opération très utile et fréquemment
utilisée dans les script. En effet le test permet de faire un choix
entre diverses possibilités en fonction de l'état de nos
variables.
La structure de l'opération de test est la suivante :
ifVariableBooleenethenInstruction;
Si la variable VariableBooleene à la valeur True,
alors l'instruction Instruction sera exécutée. Par
contre, si elle à la valeur False, l'instruction sera ignorée.
Par exemple, le script suivant :
program Test1; var Trouve : Boolean; begin Trouve := True; if Trouve then writeln('J''ai trouvé !'); end.
A pour résultat :
La chaîne de caractères J'ai trouvé ! est
bien affichée car Trouve est vrai.
Par contre, le script :
program Test2; var Trouve : Boolean; begin Trouve := False; if Trouve then writeln('J'ai trouvé !'); end.
N'affiche rien :
Il est possible de traiter les deux possibilités avec un seul
if
grâce au mot clef else qui permet de traiter directement lesdeux
possibilités :
program Test3; var Trouve : Boolean; begin Trouve := True; if Trouve then writeln('J''ai trouvé !') else writeln('Je
n'ai pas trouvé !') end.
Attention, le triplet if then else forme une seule instruction,
c'est pour cela qu'il ne faut pas mettre de point virgule derrière
l'instruction placée avant le else.
Pour exécuter plusieurs instructions, il faut les placer entre
un begin et un end :
program Test4; var Trouve : Boolean; begin Trouve := True; if Trouve then begin writeln('La variable trouve est vraie') writeln('J''ai trouvé !') end else begin writeln('La variable trouve est fausse') writeln('Je n'ai pas trouvé !') end; end.
III ) Les opérateurs de comparaison
Pour faire un choix en fonction de la valeur d'une variable, il faut utiliser les opérateurs
de comparaison :
Opérateur
Opération
=
Egalité
<>
Différence
<
Inférieur
>
Supérieur
<=
Inférieur ou égal
>=
Supérieur ou égal
Lorsque l'on utilise ces opérateurs, on obtient en retour un
booléen qui indique si la relation est vérifiée ou
non. Par exemple pour savoir si deux variables sont égales :
Egalite := Compteur = 10;
Si la variable compteur contient la valeur 10, alors Egalité
prendra la valeur True sinon, elle prendra la valeur False.
En combinant cela avec l'instruction if then, il est facile d'exécuter
des intructions seulement si une variable prends une valeur prédefinie
:
if NombreDeNains=7 then writeln('Ils sont tous la !');
Les différents opérateurs de comparaison couvrent tous les besoins.
Les opérateurs de comparaison peuvent aussi être utilisés sur des
constantes ou des variables de type chaîne de caractéres comme dans
l'exemple suivant :
if Reponse='Oui' then Writeln('Vous etes d''accord !')
IV ) Les opérateurs logiques
Pour pouvoir faire des choix en fonction des valeurs de plusieurs variables, il faut
utiliser les operateurs logiques :
Opérateur logique
Opération
And
Et logique
Or
Ou logique
Not
Non logique
Le And logique permet d'exécuter des instructions si 2 conditions ou plus sont
satisfaites en même temps. Par exemple le programme :
if (i=5) And (j=2) then Writeln('Gagné !');
n'affichera Gagné ! que si i contient la valeur 5 et j contient la
valeur 2. Attention aux parenthèses entourant les conditions. Elles sont obligatoires
si on utilise plus d'une condition apré le if.
Le Or logique permet d'exécuter des instructions si une condition sur plusieurs est
satisfaite. Par exemple le programme :
if (i=5) Or (j=2) then Writeln('Gagné !');
affichera Gagné ! si i contient la valeur 5 quelle que soit la valeur de j.
Inversement,il affichera Gagné ! si j contient la valeur 2 quelle que soit la
valeur de i.
Le Not logique permet d'exécuter des instructions si une condition n'est pas
satisfaite. Par exemple le programme :
if Not i=5 then Writeln('Gagné !');
affichera Gagné ! si i contient toute valeur différente de 5
Il est possible de combiner un très grand nombre de conditions en
utilisant des parenthéses qui permettent de montrer quelles sont les conditions
à tester en premier :
if Not(((i=6) Or (b<123)) And (w>=12)) then Writen('Gagné !');
Dans cet exemple, les conditions seront traitées dans l'ordre Or, And puis Not.