Developpez.com - Pascal
X

Choisissez d'abord la catégorieensuite la rubrique :

 

CHAPITRE XV : Booléens et tables de vérité

Par Hugo ETIEVANT

Les booléens ont été inventés par Monsieur Boole dans le but de créer des fonctions de base qui, associées les unes aux autres, pourraient donner d'autres fonctions beaucoup plus complexes.

Les booléens (boolean en anglais et en Pascal) ne peuvent prendre que deux valeurs possibles : vrai (true) ou faux (false) et sont codés en 0 ou 1. Ces valeurs sont analogues aux états possibles d'un interrupteur : ouvert ou fermé, d'une lampe : allumée ou éteinte, d'un composant électronique du type transistor : conducteur ou isolant.

En bref, les booléens ne sont utiles que pour connaître un état : vrai ou faux et en général pour caractériser si une condition est vraie ou fausse. Vous les utilisez déjà sans toujours le savoir dans les blocs IF : si telle condition est vraie, alors...

Boole inventa une algèbre qui porte son nom : l'algèbre de Boole. C'est cette dernière qui nous permet de faire des opérations sur les booléens grâce à des opérateurs (voir chapitre 2 sur les opérateurs) : NOT (non), OR (ou), AND (et), XOR (ou exclusif), NAND (inverse de et), NOR (inverse de ou). En Turbo Pascal 7.0 n'existent que les opérateurs NOT, OR, AND et XOR. Qui suffisent (en les combinant) à retrouver les autres. Ainsi, NAND=NOT(AND) et NOR=NOT(OR). Les tables de vérité de opérateurs logiques disponibles sur Turbo Pascal 7.0 sont en bas de page.

Comme toute variable, il faut déclarer une variable booléenne dans la partie déclarative en en-tête du programme.
Syntaxe :

Var nomdevariable : boolean ;

Pour donner une valeur à une variable booléenne, on procède comme pour tout autre type de variable, à l'aide du commutateur := .
Syntaxes :

nomdevariable := true ;
nomdevariable := false ;

Note : par défaut, une variable booléenne est FALSE (tout comme une variable INTEGER est égale à zéro lors du lancement du programme).

On peut bien évidemment utiliser une structure IF.
Syntaxe :

If condition then nomdevariablebooléenne := true ;

Il existe une autre façon de donner la valeur true (ou false) à une telle variable, bien plus simple qu'une structure IF.
Syntaxe :

nomdevariable := condition ;

Exemple :

test := (x>100) and (u='coucou') ;

Dans une structure conditionnelle (If, Until, While), on peut avantageusement utiliser des booléens sans spécifier sa valeur qui sera alors prise par défaut égale à true. C'est-à-dire que si on ne précise pas la valeur d'une variable booléenne dans une structure IF, par exemple, le compilateur Turbo Pascal se dira systématiquement : si variable est true, alors faire… Il devient donc inutile de spécifier la valeur de la variable dans ce cas là.
Syntaxes :

If nomdevariablebooléenne then instruction ;

Repeat
instructions Until nomdevariable ;

While nomdevariable do instruction end ;

Nous avons vu plus haut que les opérateurs spécifiques aux booléens (NOT, OR, AND, XOR) pouvaient se composer pour donner des expressions plus complexes. Il est bien entendu possible d'introduire dans ces expressions le opérateurs relationnels (=, <, >, <=, >=, <>) et plus généralement tous les autres opérateurs disponibles en Turbo Pascal. Pour pouvez même utiliser directement des expressions qu'elles soient mathématiques ou non.
Exemples :

test := (lenght(u)<= 20) or ((sin(a)*pi) < x) ;

Ici, la variable booléenne test devient vraie si la longueur de la chaîne u n'excède pas 20 caractères ou si le sinus de l'angle a multiplié par la valeur de pi est strictement inférieur à la valeur de x.

If (a=0) or ((b=0) and (c=0)) then writeln('La lampe est allumée') ;

Ici, écriture à l'écran d'un message si a est nul ou si b et c sont simultanément nuls.

Note : si vous faites afficher à l'écran la valeur d'une variable booléenne, il s'affichera FALSE ou TRUE (selon sa valeur effective) en caractères majuscules.

 

Tables de vérité des opérateurs logiques :

NOT
XNOT X
falsetrue
truefalse

AND
XYX AND Y
falsefalsefalse
falsetruefalse
truefalsefalse
truetruetrue

OR
XYX OR Y
falsefalsefalse
falsetruetrue
truefalsetrue
truetruetrue

XOR
XYX XOR Y
falsefalsefalse
falsetruetrue
truefalsetrue
truetruefalse
Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -