TP : Les booléens

Ressources nécessaires :


Objectif : Additionner deux nombres binaires sans utiliser l'addition et le programmer en .

Partie 1 : Les booléens

Définition

Un booléen en logique et en programmation est un type de donnée à deux états. Les variables de ce type sont ainsi soit à létat vrai soit à l'état faux (en anglais true et false.

Généralement les conditions sont de type booléen, car elles nécessitent une réponse binaire du type oui ou non.

Les booléens en informatique

La plus part des langages utilisent les nombres pour représenter des booléens : par exemple le 0 est faux et toute autre valeur est vrai (la convention n'est pas universelle).

Il est possible d'utiliser un unique bit en mémoire pour stocker une valeur booléenne.

On utilisera cette propriété pour écrire les nombres binaires. Au lieu de les écrire avec des 0 et des 1, on les écrira comme une suite de vrai ou de faux.

Opérations sur les booléens

On définit sur ces valeurs booléennes trois opérations :

Le NON logique

Le NON logique d'un booléen a se définit par :

a NON a
0 1
1 0
NON a vaut VRAI si et seulement si a vaut FAUX.
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le ET logique

Le ET logique entre deux booléens a et b se définit par :

a b a ET b
0 0 0
0 1 0
1 0 0
1 1 1
a ET b vaut VRAI si et seulement si a vaut VRAI et b vaut VRAI
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le OU logique

Le OU logique entre deux booléens a et b se définit par :

a b a OU b
0 0 0
0 1 1
1 0 1
1 1 1
a OU b vaut VRAI si et seulement si a vaut VRAI ou b vaut VRAI
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.


les lois de Morgan

les lois de Morgan :
  1. NON (a OU b) = (NON a) ET (NON b)
  2. NON (a ET b) = (NON a) OU (NON b)

Démontrasion des lois de Morgan

  1. Ecrire la table de vérité de NON (a OU b).
  2. Compléter la table de vérité suivante :
    a b NON a NON b (NON a) ET (NON b)
    x y x ET y
    0 0
    0 1
    1 0
    1 1
  3. Conclure.
  4. Démontrer de façon analogue la deuxième loi de Morgan.

Le OU exclusif : XOR

Le OU exclusif logique entre deux booléens a et b se définit par :

a b a XOR b
0 0 0
0 1 1
1 0 1
1 1 0
a XOR b vaut VRAI si et seulement si a et b ont des valeurs distinctes.
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.


  1. Démontrez l'équivalence : a XOR b = (a ET (NON b)) OU ((NON a) ET b)

Application à l'électronique

A chaque porte est associée une représentation graphique. Voici pour les portes ET et XOR :

porte ET porte XOR

Les opérations logiques évoquées ci-dessus sont mises en œuvre en électronique sous forme de portes logiques. Ainsi les circuits électroniques calculent des fonctions logiques de l'algèbre de Boole. Pour chacun des opérateurs logiques évoquées ci-dessus (et d'autres) il existe donc des portes logiques appelés porte ET, porte NON, etc. Les valeurs vrai et faux sont représentées par deux niveaux de tension, haut et bas. Un circuit de type porte ET dispose donc de deux entrées et une sortie et la valeur du niveau de tension en sortie dépend des niveaux de tension appliquées à chaque entrée, en respectant la table de vérité du ET. Les portes peuvent être connectées entre elles pour réaliser des circuits logiques et on peut ainsi réaliser des calculs.

Prenons l'exemple de ce circuit :

demi additionneur

Il est appelé demi-additionneur car il réalise l'addition de 2 bits (A et B), le résultats de cette somme est représentée par S et la retenue éventuelle par R.

Pour plus d'info, aller sur wikipédia.

Partie 2 : Addition de deux nombres binaires

Un exemple

On va additionner 5 et 7, mais en binaire.

  1. Convertir 5 et 7 en binaire.
  2. Poser l'addition (comme on l'aurait avec des nombres décimaux) en notant les retenues.
  3. Convertir le résultat en décimal pour vérifier la réponse.

Généralisation

On vient de constater que pour additionner deux nombres binaires, il faut à chaque étape additionner 3 bits : le bit du premier nombre, le bit du deuxième nombre et le bit de la retenue.

  1. Compléter le tableau suivant donnant toutes les possibilités :
    a b c a+b+c
    0 0 0
    0 0 1
    0 1 0
    1 0 0
    0 1 1
    1 0 1
    1 1 0
    1 1 1
  2. En déduire le tableau qui en fonction de a, b et c donne le chiffre des unités de a+b+c.
  3. En déduire le tableau qui en fonction de a, b et c donne le chiffre de la retenue de a+b+c

Ces deux tableaux peuvent être interprétés comme des tables de vérité en remplaçant les 1 par VRAI et les 0 par FAUX.

  1. Donner la table de vérité de : (a ET b) OU (b ET c) OU (a ET c).
  2. Donner la table de vérité de :
    (a ET NON b ET NON c) OU (NON a ET b ET NON c) OU (NON a ET NON b ET c) OU ( a ET b ET c).
  3. Conclure.

Algorithme

En supposant que a et b sont des nombres binaires de 10 chiffres.

On va stocker les bits du premier nombre sous forme de VRAI/FAUX dans la liste n, de même pour le deuxième nombre dans la liste p et du résultat dans la liste r.

On peut en déduire l'algorithme suivant:

c=FAUX
POUR i allant de 0 à 9
	a=n[i]
	b=p[i]
	r[i]=(a ET NON b ET NON c) OU (NON a ET b ET NON c) OU (NON a ET NON b ET c) OU ( a ET b ET c)
	c=(a ET b) OU (b ET c) OU (a ET c)
FinPOUR
r[10]=c
Afficher r
  1. Va dans l'IDLE DE et écris le programmme de l'addition de 2 nombres binaires.


Partie 3 : travail personnel

Va dans l', cours ISN et choisis Travaux : TP : Addition et dépose ton fichier .py avec ton code.