Un cap pour ce chapitre
Ce que vous saurez faire
- Construire une table de vérité complète
- Distinguer et ou inclusif et ou exclusif
- Expliquer une évaluation séquentielle protectrice
Les bases utiles pour commencer
Des valeurs de vérité aux opérations
Une proposition possède ici deux valeurs possibles, vrai ou faux, que l’on représente aussi par 1 et 0. not inverse une proposition. and vaut vrai seulement lorsque ses deux opérandes sont vrais. or vaut vrai lorsqu’au moins l’un est vrai ; il accepte donc aussi le cas où les deux le sont. Le ou exclusif, souvent nommé xor, vaut vrai lorsqu’exactement l’un des deux opérandes est vrai. Ces définitions doivent être distinguées des nuances du mot « ou » dans la conversation courante, qui dépendent parfois du contexte.
Pour une règle à deux entrées, la différence entre le ou inclusif et le ou exclusif apparaît seulement lorsque les deux entrées sont vraies. Un exemple où une seule entrée est vraie ne permet donc pas de choisir entre les deux opérateurs.
Construire toutes les lignes sans en oublier
Avec deux propositions A et B, il existe quatre couples de valeurs : 00, 01, 10 et 11. Avec trois propositions, il existe huit combinaisons. Une table de vérité énumère chacune une seule fois, puis calcule les sous-expressions avant le résultat final. Pour (A or B) and not C, on peut ajouter une colonne A or B et une colonne not C. Cette décomposition évite d’essayer de tout calculer mentalement. Elle fournit aussi une explication de chaque résultat plutôt qu’une liste de réponses difficiles à contrôler.
Une organisation systématique fait varier le dernier bit à chaque ligne, l’avant-dernier toutes les deux lignes, et ainsi de suite. Avec trois variables, on obtient huit lignes distinctes. Cette méthode assure la couverture de tous les cas avant le calcul des expressions.
Comparer deux règles logiques
Deux expressions sont équivalentes si elles ont la même valeur pour toutes les combinaisons de leurs variables. Une seule ligne différente suffit à réfuter l’équivalence. Par exemple not (A and B) n’est pas la même chose que (not A) and (not B) : avec A vrai et B faux, la première est vraie et la seconde fausse. La transformation correcte est (not A) or (not B). On peut comprendre cette loi en français : ne pas avoir les deux conditions impose qu’au moins l’une manque, pas nécessairement les deux.
L’autre loi de De Morgan transforme not (A or B) en (not A) and (not B). N’avoir aucun des deux critères exige leur absence simultanée. Les parenthèses indiquent exactement ce qui est nié et évitent de ne retourner qu’une partie de l’expression.
L’ordre peut éviter une opération invalide
Python évalue and et or de gauche à droite avec arrêt anticipé lorsque le résultat est déjà déterminé. Dans x != 0 and 10 / x > 2, si x vaut zéro, la première partie est fausse et la division n’est pas exécutée. Inverser les deux parties provoquerait une division par zéro. Le raisonnement logique sur les booléens doit donc être complété par un raisonnement sur l’exécution lorsque des expressions ont des effets ou peuvent échouer. Nous utilisons ici des opérandes booléens ; Python possède aussi des règles de vérité pour d’autres objets.
Une table de vérité suppose que les entrées sont déjà des booléens disponibles. Un programme qui calcule ces entrées doit aussi respecter leurs préconditions. Une division, un accès à un tableau ou un appel avec un effet demande donc une analyse d’exécution en plus du calcul logique.
Construire une autorisation avec trois critères
Un laboratoire autorise l’accès si le badge est valide et si la personne est accompagnée ou habilitée. On nomme ces propositions V, A et H. L’expression est V and (A or H). Lorsque V est faux, les quatre combinaisons de A et H sont refusées. Lorsque V est vrai, seule l’absence simultanée d’accompagnement et d’habilitation entraîne un refus.
La table possède donc trois lignes autorisées sur huit. Le parenthésage montre que le badge reste obligatoire dans les deux possibilités. L’expression (V and A) or H serait différente : une habilitation suffirait à contourner l’absence de badge.
De la règle d’autorisation à la règle de refus
Nier V and (A or H) donne not V or not (A or H), puis not V or ((not A) and (not H)). Le refus survient si le badge manque, ou si la personne n’est ni accompagnée ni habilitée. Cette reformulation peut être plus naturelle pour produire un message d’erreur.
Pour vérifier une transformation, comparez les sorties sur toutes les lignes. Pour la réfuter, une seule ligne suffit : avec badge faux, accompagnement faux et habilitation vraie, la règle correcte refuse l’accès, tandis que la version où H est isolé par un ou l’autorise. Un contre-exemple doit annoncer toutes les entrées nécessaires.
À vous de faire varier les choses
Comparez deux règles sur toutes les situations
Choisissez une paire d’expressions. La table met en évidence les combinaisons qui produisent des décisions différentes.
Lire le résultat de l’expérience initiale
Expressions équivalentes
Les quatre combinaisons ont été examinées : les sorties coïncident partout.
| A | B | Gauche | Droite | Comparaison |
|---|---|---|---|---|
| false | false | true | true | Accord |
| false | true | true | true | Accord |
| true | false | true | true | Accord |
| true | true | false | false | Accord |
La table transforme une impression d’équivalence en une vérification exhaustive sur les propositions considérées.
De la compréhension à l’autonomie
À vous de résoudre
Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.
Le ou inclusif
Une alarme s’allume si la fenêtre ou la porte est ouverte. Construisez les quatre résultats selon les deux capteurs et précisez le cas où les deux sont ouverts.
Indice 1
Le mot ou désigne ici au moins un accès ouvert.
Indice 2
Le cas vrai/vrai reste accepté.
Comprendre la correction
Pour fenêtre/porte, les cas faux/faux, faux/vrai, vrai/faux et vrai/vrai donnent respectivement faux, vrai, vrai et vrai. Les deux accès ouverts déclenchent donc l’alarme. Utiliser xor serait incorrect, car il l’éteindrait précisément quand les deux capteurs indiquent une ouverture.
Réfuter une équivalence
Un élève affirme que not (A or B) équivaut à not A or not B. Donnez une ligne qui contredit cette affirmation.
Indice 1
Choisissez deux propositions de valeurs différentes.
Indice 2
Calculez d’abord l’intérieur des parenthèses.
Comprendre la correction
Avec A vrai et B faux, A or B est vrai, donc not (A or B) est faux. En revanche, not A est faux et not B est vrai, donc leur or est vrai. Les résultats diffèrent : l’équivalence est réfutée. La transformation correcte utilise and entre les deux négations.
Une division protégée
Pourquoi x != 0 and 12 / x > 3 ne divise-t-il pas par zéro lorsque x vaut 0 ? Que se passe-t-il si l’ordre est inversé ?
Indice 1
and n’a pas besoin de sa partie droite quand la gauche est fausse.
Indice 2
L’évaluation suit l’ordre du programme.
Comprendre la correction
Pour x = 0, x != 0 est faux ; Python arrête l’évaluation de and et ne calcule pas 12 / x. Si la division est placée à gauche, elle est exécutée avant le contrôle et provoque une erreur. L’équivalence logique abstraite des facteurs ne garantit donc pas une exécution interchangeable.
Un accès avec exclusion
Un accès est permis si le badge est valide et si le compte n’est pas bloqué. Écrivez l’expression, puis expliquez le résultat quand les deux propositions sont vraies.
Indice 1
Nommez V la validité et B le blocage.
Indice 2
La condition favorable porte sur la négation du blocage.
Comprendre la correction
L’expression est V and not B. Si V et B sont vrais, not B est faux, donc l’accès est refusé. Un badge valide ne suffit pas à contourner un blocage. La table complète donne une seule ligne autorisée : V vrai et B faux.
Un badge toujours obligatoire
On pose V pour badge valide, A pour accompagnement et H pour habilitation. Comparez V and (A or H) et (V and A) or H avec V faux, A faux, H vrai. Expliquez la conséquence concrète et donnez la négation de la première règle.
Indice 1
Calculez d’abord chaque parenthèse.
Indice 2
La seconde expression peut être vraie grâce à H seul.
Comprendre la correction
La première expression vaut faux ; la seconde vaut vrai. La seconde autorise donc une personne habilitée même sans badge, ce qui viole la règle. Le refus correct est not V or ((not A) and (not H)). La négation porte sur toute l’autorisation, et pas seulement sur le badge.
Compter les lignes autorisées
Une alarme se déclenche si au moins un des capteurs A et B est actif et si le mode maintenance M est faux. Écrivez la règle. Parmi les huit combinaisons, combien déclenchent l’alarme ? Donnez les couples A,B concernés.
Indice 1
Commencez par fixer M à faux.
Indice 2
Le ou inclusif accepte trois couples sur quatre.
Comprendre la correction
La règle est (A or B) and not M. Lorsque M est vrai, aucune ligne ne déclenche l’alarme. Lorsque M est faux, les couples faux/vrai, vrai/faux et vrai/vrai conviennent. Il y a donc trois lignes vraies sur huit. Le cas où les deux capteurs sont actifs reste un déclenchement.
Une lecture de tableau protégée
Un tableau t peut être vide. On veut savoir si sa première valeur est positive. Comparez len(t) > 0 and t[0] > 0 avec la même expression dans l’ordre inverse. Donnez les résultats pour le vide, [-2] et [3].
Indice 1
Un accès à la première case exige qu’elle existe.
Indice 2
Le court-circuit évite la seconde expression si la première est fausse.
Comprendre la correction
Dans l’ordre protégé, le vide donne faux sans accès ; [-2] donne faux et [3] vrai. Dans l’ordre inverse, le vide provoque une erreur lors de t[0]. Les deux conditions ont la même logique sur les entrées où l’accès existe, mais pas le même comportement sur tout le domaine annoncé.
Les erreurs qui méritent un détour
- Confondre
or et xor or accepte le cas où les deux propositions sont vraies ; xorle refuse.- Nier chaque proposition sans changer l’opérateur
- Vérifiez les lois de négation avec une table avant de transformer une expression.
La fiche à garder
L’essentiel à retenir
- Deux variables donnent quatre lignes de table.
- Une différence suffit à réfuter une équivalence.
- L’évaluation séquentielle peut protéger une opération.
Cette notion au bac
Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.
- Bac 2026 · Métropole · Jour 1 : Recto-Verso : jouer avec XOR et chercher la victoire dans un graphe
- Bac 2026 · Centres étrangers groupe 1 · Jour 2 : Architecture, additionneur binaire et mémoire tampon circulaire
- Bac 2026 · Banque nationale · Sujet 3 : Calendrier, années bissextiles et fichier iCalendar
- Bac 2025 · Polynésie · Jour 1 : Gestionnaire de mots de passe : génération, SQL, XOR et droits Linux
Le prochain pas
Retrouver le catalogue de Première
Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.
