Aller au contenu principal

Valeurs booléennes

info

📈 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

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 ?

Définition

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 ?

  1. Vous êtes arrivé en retard ce matin.
  2. George Orwell a écrit 1984.
  3. 2+5=72 + 5 = 7.
  4. Il y a 9 étoiles dans notre système solaire.
  5. La lettre Y est une voyelle.
  6. Dans la mythologie grecque, Olympe est le dieu des montagnes.
  7. 2n2^n 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 (FF) / Vrai (VV)
  • 0 / 1
  • False / True (en Python)

Les opérations fondamentales de la logique sont les opérations logiques suivantes :

  • La négation, notée
    • ¬\neg (symbole logique)
    • \sim (symbole usuel)
    • NON (en français)
    • not (en Python)
    • xˉ\bar{x} (notation mathématique)
  • la conjonction, notée
    • \land (symbole logique)
    • &\& (symbole usuel)
    • ET (en français)
    • and (en Python)
    • \cdot (notation mathématique)
  • la disjonction, notée
    • \lor (symbole logique)
    • | (symbole usuel)
    • OU (en français)
    • or (en Python)
    • ++ (notation mathématique)
Bon à savoir

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
    • \oplus (symbole logique)
    • OU exclusif
    • ^ (en Python)

Table de vérité

AA¬A\neg A
VraiFaux
FauxVrai

🎯 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 égal
  • is : 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

Exercice 1

Construire la table de vérité du OU exclusif.

🔍 Correction
AABBABA \oplus B
FauxFauxFaux
VraiFauxVrai
FauxVraiVrai
VraiVraiFaux
Exercice 2

Construire la table de vérité de l'expression suivante : (AB)¬C(A \lor B) \land \neg{C}

AABBCC(A+B)Cˉ(A + B) \cdot \bar{C}
000
001
010
011
100
101
110
111
🔍 Correction
AABBCC(A+B)Cˉ(A + B) \cdot \bar{C}
0000
0010
0101
0110
1001
1010
1101
1110
Exercice 3

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']
Exercice 4

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 :

  • a et b sont nuls
  • a est compris entre b et b + 10 inclus
  • a est égal à 9 ou 10
  • a et b appartiennent à tabl
  • a appartient à tabl mais pas b
  • a est différent de b et tabl est vide
Exercice 5

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).