Valeurs booléennes
📈 Objectifs du cours
- Compléter des tables de vérité à partir d'expressions booléennes simples
- Implémenter une addition binaire 1 bit avec retenue en Python
- Identifier George Boole et son influence sur les circuits logiques
Valeurs booléennes
Histoire

George Boole (1815-1864) est un mathématicien et logicien britannique connu pour avoir créé la logique moderne, appelée algèbre de Boole.
Il a introduit des concepts fondamentaux tels que les variables binaires, les opérations logiques (ET, OU, NON) et les tables de vérité. Son travail a jeté les bases de l'informatique moderne et des circuits logiques. Il a également été un pionnier dans l'utilisation de la logique pour résoudre des problèmes mathématiques et philosophiques.
C'est quoi la logique ?
La logique est une science relative aux processus de la pensée rationnelle (induction, déduction, hypothèse p. ex.) et à la formulation discursive des vérités
selon le CNRTL.
Dans cette définition, bien que savante, la notion de vérité ressort comme centrale. En effet, la logique est un outil qui nous permet de raisonner sur des énoncés et de déterminer leur véracité.
En informatique, tout comme en mathématiques, on s'intéresse à la valeur de vérité d'un énoncé. L'expression peut être soit vraie, soit fausse. Il n'y a pas d'entre-deux (voir le principe du tiers exclu).
Par exemple, comment réponderiez-vous aux questions suivantes ?
- Vous êtes arrivé en retard ce matin.
- George Orwell a écrit 1984.
- .
- Il y a 9 étoiles dans notre système solaire.
- La lettre Y est une voyelle.
- Dans la mythologie grecque, Olympe est le dieu des montagnes.
- est un nombre premier.
Vous l'avez remarqué, tous ces énoncés sont vrais ou faux. Il n'y a pas de valeur de vérité intermédiaire.
Algèbre de Boole
L'algèbre de Boole est une théorie mathématique qui définit les opérations logiques et les tableaux de vérité. Elle est basée sur la logique classique, mais elle introduit des notions de base qui sont utiles pour la programmation. En algèbre de Boole, l'ensemble des valeurs possibles est consititué de deux éléments qu'on appelle booléens.
Selon le contexte (électronique, logique, mathématiques), on peut utiliser les booléens suivants :
- Faux () / Vrai ()
- 0 / 1
False/True(en Python)
Les opérations fondamentales de la logique sont les opérations logiques suivantes :
- La négation, notée
- (symbole logique)
- (symbole usuel)
- NON (en français)
not(en Python)- (notation mathématique)
- la conjonction, notée
- (symbole logique)
- (symbole usuel)
- ET (en français)
and(en Python)- (notation mathématique)
- la disjonction, notée
- (symbole logique)
- (symbole usuel)
- OU (en français)
or(en Python)- (notation mathématique)
Une quatrième opération logique peut être utile à savoir, c'est le OU qu'on utilise dans la langue française :
Exemple : "Tu vas au cinéma ou au restaurant ?", ici tu vas soit au cinéma, soit au restaurant, mais pas les deux.
- la disjonction exclusive, notée
- (symbole logique)
- OU exclusif
^(en Python)
Table de vérité
- La négation
- La conjonction
- La disjonction
| Vrai | Faux |
| Faux | Vrai |
| Faux | Faux | Faux |
| Vrai | Faux | Faux |
| Faux | Vrai | Faux |
| Vrai | Vrai | Vrai |
| | | ||
|---|---|---|
| Faux | Faux | Faux |
| Vrai | Faux | Vrai |
| Faux | Vrai | Vrai |
| Vrai | Vrai | Vrai |
🎯 Entraînement interactif
En Python
En Python, on peut utiliser les opérateurs booléens suivants :
- La négation, notée
not - la conjonction, notée
and - la disjonction, notée
or
Il existe par ailleurs d'autres opérateurs retournant des booléens :
==: égalité!=: différence (il existe aussi<>mais a éviter)<: inférieur>: supérieur<=: inférieur ou égal>=: supérieur ou égalis: identique (même objet en mémoire)is not: différent (objets différents en mémoire)in: appartient à (dans une liste, un tuple, un dictionnaire, etc.)not in: n'appartient pas à (dans une liste, un tuple, un dictionnaire, etc.)
Exercices
Construire la table de vérité du OU exclusif.
🔍 Correction
| Faux | Faux | Faux |
| Vrai | Faux | Vrai |
| Faux | Vrai | Vrai |
| Vrai | Vrai | Faux |
Construire la table de vérité de l'expression suivante :
| 0 | 0 | 0 | |
| 0 | 0 | 1 | |
| 0 | 1 | 0 | |
| 0 | 1 | 1 | |
| 1 | 0 | 0 | |
| 1 | 0 | 1 | |
| 1 | 1 | 0 | |
| 1 | 1 | 1 |
🔍 Correction
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 |
Evaluer les expressions suivantes :
a = (1 == 1)
b = (3 > 2)
c = (3 == 1+2)
d = (1 <= 0)
e = (2 != 5/2)
f = (2 != 5//2)
g = ('c' == 'C')
h = not f
i = a and b
j = a or b
k = not d and (d or f)
l = 'a' in 'abc'
m = 2 in ['2', 4, '6']
Soit a et b deux variables contenant des entier et tabl une varaible contenant une liste d'entiers.
Ecrire pour chacune des expressions suivantes une expression booléenne (en Python) équivalente :
aetbsont nulsaest compris entrebetb + 10inclusaest égal à9ou10aetbappartiennent àtablaappartient àtablmais pasbaest différent debettablest vide
En binaire maintenant, calculer le resultat des expressions suivantes :
1000110
| 0011011
-----------
1001101
& 1001011
-----------
0111001
^ 1011011
-----------
🔗 Liens utiles
Pour aller plus loin
- Ecrire un programme qui convertit un entier en binaire et en hexadécimal.
- Ecire une fonction qui convertir un entier en octal (base 8).