Site:  Cours VB.net  
1.6.9 Les Booléens.

            

                    Mr Georges Boole 1805-1864

 

Introduction.

Le type 'Booliens 'ou 'Booléens' (Boolean) est un type de variable.

Notion de Boolien.

Conditions

Opérateurs logiques

Conditions complexes

 

Introduction:

L'algèbre de Boole est la partie des mathématiques, de la logique de l' électronique et de l'informatique qui s'intéresse aux opérations et aux fonctions sur les variables logiques. En logique propositionnelle, une expression est soit vraie soit fausse. (le vrai (1) et le faux (0)).

Georges Boole (1815-1864), physicien Anglais définit en 1847 un algèbre qui est applicable au raisonnement logique, qui traite des fonctions à variables binaires (deux valeurs). Mais il ne s'applique pas aux systèmes à plus de deux états d'équilibre. 

Une variable booléenne, ou logique, ou binaire ne prend que deux valeurs (elle est généralement stockée sous la forme d'un bit).

Vers la fin des années 30, Claude Shannon démontra qu'à l'aide d'interrupteurs  fermés pour « vrai » et ouverts pour « faux » il était possible d'effectuer des opérations logiques en associant le nombre 1 pour « vrai » et 0 pour « faux ».

Ce codage de l'information est nommé base binaire. C'est avec ce codage que fonctionnent les ordinateurs. Il consiste à utiliser deux états (représentés par les chiffres 0 et 1) pour coder les informations.

Il permet d'étudier les circuits logiques.

 

Les booléens:

On a parfois besoin de savoir si une assertion est vraie ou Fausse.(True ou False)

Pour stocker une information de ce type, on utilise une variable de type booléen. Une variable de ce type ne peut contenir que True ou False.

Le terme booléen vient de "l'algèbre de Boole", cette algèbre ne travaille que sur les valeurs 1 ou 0 (True ou False)

Soit myBoolean une variable booléenne:

Dim myBoolean As Boolean

On peut écrire myBoolean = True

On peut aussi tester cette variable:

If myBoolean = False Then..

L'expression après If est évaluée, si elle est vraie 'Then' se produit.

Autre exemple:

If maValeur=2 Then ..

End If

L'expression 'maValeur=2' est évaluée, si maValeur est effectivement égale à 2, l'expression prend la valeur True; dans ce cas le programme se poursuit après Then.

si maValeur est différent de 2, maValeur=2 est évaluée et prend la valeur False; dans ce cas le programme  se poursuit après End If.

 

Un booléen peut donc prendre deux états (vrai/faux, oui/non, 1/0, etc.). Il s’agit donc d’une "valeur binaire". Techniquement, un booléen peut être représenté par un seul bit (binary digit = chiffre binaire).

Dans les langages n'ayant pas de variables booliennes, on se servait souvent d’un entier, avec pour convention que la valeur 0 représente "faux", tandis que toute valeur non nulle représente "vrai". En VB6 vrai était égale à -1. En VB.Net vrai = 1. Mais on s'en fiche car:

  un Booléen est un Booléen, en VB.Net on utilise donc True ou False comme seules valeurs pour un Booléen.

Il n'empêche que si on utilise une expression, un nombre et qu'on l'évalue comme si c'était un booléen (C'est pas bien!!), la valeur 0 représente "False", tandis que toute valeur non nulle représente "True".

 

Les conditions:

 

Après If, While, Do Loop il faut une condition qui est une expression booléenne.

Exemple:

If Condition Then    'Si 'condition'..

  ...

End if

 

 

Do Until condition    'Boucler jusqu'à ce que 'condition'

      ...

Loop

 

While Condition        'Tant que 'condition' boucler

...

End While

 

Pour écrire une condition, on utilise les opérateurs:

= égal

> supérieur à

 < inférieur à

>= supérieur ou égal

<= inférieur ou égal

<> Différent de

  

L'évaluation d'une condition donne  True (Vrai) ou False (Faux) car on l'a dit c'est une expression booléenne.

Exemple :

      Dim valeur1 As Integer=2

      Dim valeur2 As Integer=3 

      If valeur1=valeur2 Then

        ...

      End if 

valeur1 étant différent de valeur2, la condition 'valeur1=valeur2' prend la valeur False et le programme passe à la ligne après End If).

Ici le signe = n’indique pas une affectation mais 'égale' dans une expression à évaluer.

On peut combiner les opérateurs et mettre des parenthèses:

 If (valeurC <> valeurD )AND (valeurD =2)Then

..

 End if 

 

Les opérateurs logiques:

Si on a plusieurs expressions logiques, on peut les combiner avec des opérateurs logiques.

Si A et B sont des expressions Booléens:

A And B     retourne True si A et B sont vrais

A Or B      retourne True si une des 2 est vrai

A Xor B     retourne True si une et une seule est vrai

Not A       retourne True si A est faux et vice versa

On entend par expression Booléen le résultat de l'évaluation d'une condition:

c=d  retourne True si c égal d et False si c différent de d.

Exemple

Si A différent de B.. peut s’écrire If Not(A=B) Then..

Si A compris entre 2 et 5 peut s’écrire If A>=2 And A<=5 Then.. 

Comment faire une bascule:

Il faut écrire A= Not A

A chaque fois que l'on effectue cette instruction A bascule à True s'il était à False et vice versa.

Les opérateurs AndAlso et OrElse  sont plus rapide car ils n'évaluent pas la seconde expression si ce n'est pas nécessaire.

Parfois les expressions sont complexes et on peut les simplifier en utilisant des transformations:

 

Originale
Transformation
Not A And Not B
Not (A Or B)
Not A And B
Not (A Or Not B)
A And Not B
Not (Not A Or B)
A And B
Not (Not A Or Not B)
Not A Or Not B
Not (A And B)
Not A Or B
Not (A And Not B)
A Or Not B
Not (Not A And B)
A Or B
Not (Not A And Not B)

 

Exemple pratique:

Si A compris entre 2 et 5 peut s’écrire If A>=2 And A<=5 Then.. 

ou  If Not (A<2 Or A>5) Then...

 

Une remarque:

Avec une expression Booléenne, on peut écrire:

Dim a As Boolean= True

If a = True Then..

ou

If a Then..

Exemple:

If (x=15)=True  Then..

ou If x=15 Then...

Donc, avec une expression booléenne, et uniquement avec une expression booléenne, il est possible de se passer du = True après un If car de toutes façons , l'expression est évaluée.

 

Voir aussi le chapitre sur l'algèbre de Boole.