Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
boole_et_morgan [2015/07/20 22:42] 77.148.2.219 [Idempotence] |
boole_et_morgan [2016/07/05 18:53] (Version actuelle) gbdivers |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ^ [[nombres_reels|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[virgule_fixe|Chapitre suivant]] ^ | + | ^ [[string|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[complex|Chapitre suivant]] ^ |
- | ====== L'algèbre de Boole ====== | + | ====== [Aller plus loin] L'algèbre de Boole ====== |
Vous avez vu dans les chapitres précédents comment utiliser les booléens et les opérations de base : ET, OU, NON et OU-EXCLUSIF. En fait, l'utilisation des booléens est plus riche et complexe que cela. Ils sont à la base d'une branche des mathématiques, appelée [[https://fr.wikipedia.org/wiki/Alg%C3%A8bre_de_Boole_(logique)|Algèbre de Boole]], en l'honneur de son créateur, le mathématicien George Boole. | Vous avez vu dans les chapitres précédents comment utiliser les booléens et les opérations de base : ET, OU, NON et OU-EXCLUSIF. En fait, l'utilisation des booléens est plus riche et complexe que cela. Ils sont à la base d'une branche des mathématiques, appelée [[https://fr.wikipedia.org/wiki/Alg%C3%A8bre_de_Boole_(logique)|Algèbre de Boole]], en l'honneur de son créateur, le mathématicien George Boole. | ||
Ligne 146: | Ligne 146: | ||
^ 1 ^ 1 ^ 1 ^ | ^ 1 ^ 1 ^ 1 ^ | ||
- | Pour l'opérateur OU, ça sera la valeur ''false'' qui est l'élément neutre : | + | Pour l'opérateur OU, ça sera faux qui est l'élément neutre : |
| ''a'' | ''b'' | ''a || b'' | | | ''a'' | ''b'' | ''a || b'' | | ||
Ligne 184: | Ligne 184: | ||
A OU Vrai = Vrai | A OU Vrai = Vrai | ||
- | Cette propriété est particulièrement intéressante en C++, puisque cela permet de ne pas évaluer une expression, si possible. Comme expliqué dans le chapitre [[logique_et_calcul_booleen]], le C++ utilise la //lazy evaluation// lorsque c'est possible. Pour évaluer les expressions suivantes : | + | Cette propriété est particulièrement intéressante en C++, puisque cela permet de ne pas évaluer une expression, si possible. Comme expliqué dans le chapitre [[logique_et_calcul_booleen]], le C++ utilise la //lazy evaluation// (évaluation paresseuse) lorsque c'est possible. Pour évaluer les expressions suivantes : |
A ET Expression complexe | A ET Expression complexe | ||
Ligne 241: | Ligne 241: | ||
^ ''a'' ^ ''b'' ^ ''c'' ^ ''a && b'' ^ ''(a && b) && c'' ^ ''b && c'' ^ ''a && (b && c)'' ^ | ^ ''a'' ^ ''b'' ^ ''c'' ^ ''a && b'' ^ ''(a && b) && c'' ^ ''b && c'' ^ ''a && (b && c)'' ^ | ||
| 0 | 0 | 0 | ... | ... | ... | ... | | | 0 | 0 | 0 | ... | ... | ... | ... | | ||
+ | | ... | ... | ... | ... | ... | ... | ... | | ||
^ ''a'' ^ ''b'' ^ ''c'' ^ ''a || b'' ^ ''(a || b) || c'' ^ ''b || c'' ^ ''a || (b || c)'' ^ | ^ ''a'' ^ ''b'' ^ ''c'' ^ ''a || b'' ^ ''(a || b) || c'' ^ ''b || c'' ^ ''a || (b || c)'' ^ | ||
| 0 | 0 | 0 | ... | ... | ... | ... | | | 0 | 0 | 0 | ... | ... | ... | ... | | ||
+ | | ... | ... | ... | ... | ... | ... | ... | | ||
==== Distributivité ==== | ==== Distributivité ==== | ||
Ligne 275: | Ligne 277: | ||
^ ''a'' ^ ''b'' ^ ''c'' ^ ''a && b'' ^ ''(a && b) || c'' ^ ''a || c'' ^ ''b || c'' ^ ''(a || c) && (b || c)'' ^ | ^ ''a'' ^ ''b'' ^ ''c'' ^ ''a && b'' ^ ''(a && b) || c'' ^ ''a || c'' ^ ''b || c'' ^ ''(a || c) && (b || c)'' ^ | ||
| 0 | 0 | 0 | ... | ... | ... | ... | ... | | | 0 | 0 | 0 | ... | ... | ... | ... | ... | | ||
+ | | ... | ... | ... | ... | ... | ... | ... | | ||
^ ''a'' ^ ''b'' ^ ''c'' ^ ''a || b'' ^ ''(a || b) && c'' ^ ''a && c'' ^ ''b && c'' ^ ''(a && c) || (b && c)'' ^ | ^ ''a'' ^ ''b'' ^ ''c'' ^ ''a || b'' ^ ''(a || b) && c'' ^ ''a && c'' ^ ''b && c'' ^ ''(a && c) || (b && c)'' ^ | ||
| 0 | 0 | 0 | ... | ... | ... | ... | ... | | | 0 | 0 | 0 | ... | ... | ... | ... | ... | | ||
+ | | ... | ... | ... | ... | ... | ... | ... | | ||
===== Lois de De Morgan ===== | ===== Lois de De Morgan ===== | ||
Ligne 310: | Ligne 314: | ||
* Écrire un multiplexeur. | * Écrire un multiplexeur. | ||
- | ^ [[nombres_reels|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[virgule_fixe|Chapitre suivant]] ^ | + | ^ [[string|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[complex|Chapitre suivant]] ^ |
- | {{tag> Cours C++}} |