Cours de Turbo Pascal 7


précédentsommairesuivant

Chapitre 15 - Booléens et tables de vérité

Les booléens ont été inventés par Monsieur Boole dans le but de créer des fonctions de base, manipulant des valeurs logiques, 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 : faux (false) ou vrai (true), et sont souvent codées en 0 ou 1. Ces valeurs sont analogues aux états possibles d'un interrupteur : ouvert ou fermé, d'une lampe : allumée ou éteinte.

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, until et while : si telle condition est vraie, alors..., ...jusqu'à ce que la condition soit vraie, tant que la condition est vraie...

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é des opérateurs logiques disponibles sur Turbo Pascal 7.0 se trouvent en fin de chapitre.

Syntaxe :

 
Sélectionnez

Var nom_de_variable : Boolean;

Pour donner une valeur à une variable booléenne, on procède comme pour tout autre type de variable, à l'aide de l'opérateur d'assignation := .

Syntaxes :

 
Sélectionnez

nom_de_variable := true;
nom_de_variable := false;

Pour assigner à une variable le résultat d'une condition, on peut remplacer la syntaxe une structure IF :

 
Sélectionnez

if condition then nom_de_variable_booleenne := true;

par une syntaxe bien plus simple :

 
Sélectionnez

nom_de_variable := condition;

Exemple :

 
Sélectionnez

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

Dans une structure if, until ou while), on peut avantageusement utiliser une condition 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 ou d'une condition 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 :

 
Sélectionnez

if nom_de_variable_booleenne then instruction;
{ ou }
if condition then instruction;

repeat
  instructions
until nom_de_variable;
{ ou }
repeat
  instructions
until condition;

while nom_de_variable do instruction;
{ ou }
while condition do instruction;

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. Vous pouvez même utiliser directement des expressions, qu'elles soient mathématiques ou non.

Exemples :

 
Sélectionnez

Test := (Length(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.

 
Sélectionnez

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 affichez à 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

NOT
X NOT X
false true
true false

AND

AND
X Y X AND Y
false false false
false true false
true false true
true true true

OR

OR
X Y X OR Y
false false false
false true true
true false true
true true true

XOR

XOR
X Y X XOR Y
false false false
false true true
true false true
true true false



précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2001-2013 Hugo Etievant. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.