Les expressions booléennes
Il existe trois opérateurs booléens élémentaires issues des portes logiques des composants électroniques. L’opérateur ET
renvoi vrai si l’expression de gauche et que l’expression de droite sont également vraie. L’opérateur OU
renvoi vrai si l’une des deux expressions de gauche ou de droite est vraie. Le dernier opérateur élémentaire est PAS
, ce dernier renvoi vrai si l’expression est fausse et inversement. Ces expressions peuvent être rassemblées sous la forme de table de vérité. Ces tables permettent d’afficher toutes les possibilités d’une expression booléenne. Cette forme est particulièrement utile lorsque l’on souhaite évaluer le fonctionnement d’expressions plus complexe. Il est par ailleurs possible d’utiliser des parenthèses pour forcer éventuellement les priorités dans l’évaluation de l’expression.
A | B | A ET B |
---|---|---|
Vrai | Vrai | Vrai |
Vrai | Faux | Faux |
Faux | Vrai | Faux |
Faux | Faux | Faux |
A | B | A OU B |
---|---|---|
Vrai | Vrai | Vrai |
Vrai | Faux | Vrai |
Faux | Vrai | Vrai |
Faux | Faux | Faux |
A | NON A |
---|---|
Vrai | Faux |
Faux | Vrai |
Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être exprimées sous la forme d’une simple condition. C’est par exemple le cas dans la phrase « âge est inclus entre 18 et 21 ». En fait, cette phrase cache non une, mais deux conditions. Elle revient à dire que « âge est supérieur à 18 et âge est inférieur à 21 ». Il y a donc bien là deux conditions, reliées par ce qu’on appelle un opérateur logique, le mot ET
.
DÉBUT VARIABLE age: ENTIER LIRE "Quel âge avez-vous ?", age SI age < 18 ÉCRIRE "Vous ne pouvez pas aller au casino" SINON SI age >= 18 ET age < 21 ÉCRIRE "Vous êtes majeur, mais vous ne pouvez pas aller au casino" SINON ÉCRIRE "Vous pouvez aller au casino" FIN SI FIN
A | B | C | A ET B | (A ET B) ET C |
---|---|---|---|---|
Vrai | Vrai | Vrai | Vrai | Vrai |
Vrai | Vrai | Faux | Vrai | Faux |
Vrai | Faux | Vrai | Faux | Faux |
Vrai | Faux | Faux | Faux | Faux |
Faux | Vrai | Vrai | Faux | Faux |
Faux | Vrai | Faux | Faux | Faux |
Faux | Faux | Vrai | Faux | Faux |
Faux | Faux | Faux | Faux | Faux |
DÉBUT VARIABLE été, beauTemps, bièreAuFrais: BOOLEEN LIRE "Sommes-nous en été?", été LIRE "Est-ce qu'il fait beau?", beauTemps LIRE "Avez-vous de la bière au frigo?", bièreAuFrais SI été ET beauTemps ET bièreAuFrais ÉCRIRE "C'est l'heure du barbecue!" SINON ÉCRIRE "Pas de barbecue aujourd'hui." FIN SI FIN
Les lois de Morgan
Les lois de Morgan sont très présentes en logique propositionnelle, elles permettent de permuter les opérations ET
et OU
. Ces lois réduisent le nombre de portes logiques utilisées, et peut aider aussi à la simplification d’écritures et de lectures des algorithmes. L’omniprésence et l’application généralisée de cette propriété a créé de nouvelles portes logiques permettant la simplification des composants électroniques eux-mêmes.
(PAS A) OU (PAS B) = PAS (A ET B)
(PAS A) ET (PAS B) = PAS (A OU B)
A | B | N-AND |
---|---|---|
Vrai | Vrai | Faux |
Vrai | Faux | Vrai |
Faux | Vrai | Vrai |
Faux | Faux | Vrai |
En algorithmique, ces lois permettent principalement de transposer l’écriture d’une manière qui nous est plus naturelle. Par exemple, dans le cas de la négation de l’opérateur ET
. Je peux conduire si j’ai les clés de la voiture ET si j’ai mon permis. Donc, je ne peux pas conduire si je n’ai pas les clés OU si je n’ai pas mon permis.
DÉBUT VARIABLE clé, permis, alcool: BOOLEEN LIRE "Avez-vous les clés de la voiture?", clé LIRE "Avez-vous le permis de conduire?", permis LIRE "Avez-vous bu de l'alcool?", alcool SI (pas clé) OU (pas permis) OU alcool ÉCRIRE "Vous ne pouvez pas conduire la voiture" SINON ÉCRIRE "Vous pouvez conduire voiture" FIN SI FIN
DÉBUT VARIABLE clé, permis, alcool: BOOLEEN LIRE "Avez-vous les clés de la voiture?", clé LIRE "Avez-vous le permis de conduire?", permis LIRE "Avez-vous bu de l'alcool?", alcool SI pas (clé ET permis) OU alcool ÉCRIRE "Vous ne pouvez pas conduire la voiture" SINON ÉCRIRE "Vous pouvez conduire voiture" FIN SI FIN
Continuons avec la négation du OU
: la pelouse est mouillée quand il pleut OU que l’on arrose. En conséquence, la pelouse est sèche s’il ne pleut pas ET si on ne l’arrose pas.
A | B | N-OR |
---|---|---|
Vrai | Vrai | Faux |
Vrai | Faux | Faux |
Faux | Vrai | Faux |
Faux | Faux | Vrai |
DÉBUT VARIABLE pluie, arrosage: BOOLEEN LIRE "Est-ce qu'il pleut?", pluie LIRE "Avez-vous arrosé le jardin?", arrosage SI (pas pluie) ET (pas arrosé) ÉCRIRE "La pelouse est sèche" SINON ÉCRIRE "La pelouse est mouillée" FIN SI FIN
DÉBUT VARIABLE pluie, arrosage: BOOLEEN LIRE "Est-ce qu'il pleut?", pluie LIRE "Avez-vous arrosé le jardin?", arrosage SI pas (pluie OU arrosé) ÉCRIRE "La pelouse est sèche" SINON ÉCRIRE "La pelouse est mouillée" FIN SI FIN
Les portes logiques avancées
Au sein d’un processeur, il existe de nombreuses autres portes logiques avancées. Ces autres portes sont très rarement utilisées par les développeurs, et sont de ce fait très peu présent dans les différents algorithmes. En revanche, ces portes sont particulièrement utiles pour l’automatisation d’opérations mathématiques. Ces portes supplémentaires permettent ainsi la simplification des schémas électronique servant à l’architecture même du processeur et de sa gravure. Par exemple, un circuit logique permettant de réaliser une addition (appelée additionneur), utilise un XOR.
A | B | X-OR |
---|---|---|
Vrai | Vrai | Faux |
Vrai | Faux | Vrai |
Faux | Vrai | Vrai |
Faux | Faux | Faux |