<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Première/Logique booléenne et fonctions logiques</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Opérateurs logiques (ET, OU, NON, XOR, NAND), tables de vérité,<br/>
propriétés algébriques de l'algèbre de Boole, lois de De Morgan,<br/>
simplification d'expressions et lien avec la programmation Python.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q01 : Comportement de l'opérateur OU</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la valeur de sortie d'un opérateur OU inclusif (a + b)<br/>
si l'entrée a vaut 1 et l'entrée b vaut 1 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le OU inclusif est défini par la table de vérité :<br/>
(0,0)→ 0, (0,1)→ 1, (1,0)→ 1, (1,1)→ 1.<br/>
Il s'oppose au OU exclusif (XOR) qui renvoie 0 pour (1,1).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La sortie vaut 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec une addition arithmétique. La logique<br/>
booléenne ne manipule que les valeurs 0 et 1, jamais 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La sortie vaut 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec le OU exclusif (XOR), qui vaut 0<br/>
lorsque les deux entrées sont identiques. Avec le OU inclusif,<br/>
dès qu'au moins une entrée vaut 1, la sortie vaut 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La sortie est indéterminée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la sortie d'une fonction logique est toujours<br/>
déterminée par sa table de vérité, sans ambiguïté.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La sortie vaut 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le OU inclusif renvoie 1 dès qu'au moins<br/>
une entrée vaut 1. Sa table de vérité ne contient un 0<br/>
que pour la combinaison (0, 0).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q02 : Structure des tables de vérité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de lignes comporte la table de vérité d'une fonction<br/>
logique possédant 4 variables d'entrée ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avec n variables booléennes, chacune peut valoir 0 ou 1<br/>
indépendamment des autres, donc la table de vérité contient<br/>
2ⁿ lignes. Pour n = 4, on obtient 2⁴ = 16.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle comporte 12 lignes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec 4 × 3 (produit) au lieu de<br/>
2⁴ (puissance). Le bon raisonnement est combinatoire :<br/>
chaque variable peut prendre 2 valeurs indépendamment.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle comporte 16 lignes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 2⁴ = 16 combinaisons possibles pour<br/>
quatre variables binaires.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle comporte 8 lignes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le nombre de lignes pour 3 variables (2³).<br/>
Avec 4 variables, il faut calculer 2⁴.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle comporte 4 lignes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre le nombre de variables et le nombre<br/>
de combinaisons. Avec n variables, on a 2ⁿ combinaisons,<br/>
pas n.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q03 : Syntaxe de programmation</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel mot-clé Python correspond à l'opérateur de négation<br/>
logique (NON) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Python privilégie une syntaxe en mots anglais lisibles :<br/>
not, and et or. Les opérateurs symboliques &amp;, |, ~<br/>
existent mais opèrent bit à bit sur les entiers, pas sur les<br/>
booléens.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le mot-clé inv</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : inv n'existe pas en Python comme mot-clé<br/>
de négation. À ne pas confondre avec ~ qui est<br/>
l'inversion bit à bit (opérateur sur les entiers).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le mot-clé not</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Python utilise les mots-clés en toutes<br/>
lettres : not, and et or.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le mot-clé negative</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : negative n'est pas un mot-clé Python.<br/>
Le mot-clé est not.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le symbole !</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la syntaxe du C, du C++, de Java ou de<br/>
JavaScript, pas celle de Python.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q04 : Étude de l'élément absorbant</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>D'après les propriétés du ET logique (·), que vaut<br/>
systématiquement l'expression a · 0 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dans l'algèbre de Boole, 0 est l'élément absorbant du ET et<br/>
l'élément neutre du OU. Symétriquement, 1 est l'élément<br/>
neutre du ET et l'élément absorbant du OU.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec l'élément neutre. C'est a · 1<br/>
qui vaut a ; avec 0 comme second opérande, le résultat<br/>
est forcément 0 (élément absorbant).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle vaut 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 0 est l'élément absorbant du ET logique.<br/>
Quelle que soit la valeur de a, le produit a · 0 vaut 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut ā</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il n'y a aucune négation dans l'expression. Le ET<br/>
avec 0 donne toujours 0, pas le complémentaire de a.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec le OU logique. Pour le ET,<br/>
la sortie ne vaut 1 que si toutes les entrées valent 1.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q05 : Principes fondamentaux</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Laquelle de ces expressions illustre la propriété dite du<br/>
« tiers exclu » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le tiers exclu affirme qu'une proposition est soit vraie,<br/>
soit fausse, sans tierce alternative : a + ā = 1.<br/>
Sa propriété duale, le principe de non-contradiction, s'écrit<br/>
a · ā = 0.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a · 1 = a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'identité de l'élément neutre du ET.<br/>
Sans rapport avec le tiers exclu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{\overline{a}} = a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la propriété d'involution (ou double<br/>
négation), qui dit que nier deux fois redonne la valeur<br/>
de départ.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a · ā = 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la propriété du « principe de<br/>
non-contradiction », pas celle du tiers exclu. Une variable<br/>
et son complément ne peuvent pas être vraies en même temps.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>a + ā = 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : « entre une proposition et sa négation,<br/>
il n'y a pas de troisième possibilité ». L'union des deux<br/>
est toujours vraie.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q06 : Transformation d'expressions</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la seconde loi de De Morgan, relative au<br/>
complément d'un produit (\overline{a \cdot b}) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les lois de De Morgan permettent de transformer le complément<br/>
d'une opération binaire :<br/>
\overline{a + b} = \overline{a} \cdot \overline{b} et<br/>
\overline{a \cdot b} = \overline{a} + \overline{b}.<br/>
Mémo : « on inverse chaque variable et on échange les opérateurs ».</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a \cdot b} = a + b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a bien transformé le ET en OU, mais on a<br/>
oublié de complémenter chaque variable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a + b} = \overline{a} \cdot \overline{b}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la première loi de De Morgan (complément<br/>
d'une somme), pas la seconde demandée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a \cdot b} = \overline{a} \cdot \overline{b}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a bien complémenté chaque variable, mais on a<br/>
oublié de changer l'opérateur. De Morgan transforme un<br/>
produit en somme et réciproquement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>\overline{a \cdot b} = \overline{a} + \overline{b}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on complémente chaque variable et on<br/>
remplace le ET par un OU. C'est bien la seconde loi de<br/>
De Morgan.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q07 : Simplification algébrique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut l'expression simplifiée a + a · b d'après les<br/>
lois d'absorption ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Loi d'absorption : a + a · b = a · (1 + b) = a · 1 = a.<br/>
Sa duale s'écrit a · (a + b) = a. À distinguer de<br/>
a + ā · b = a + b qui est une autre identité.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : si a = 0 et b = 0, l'expression vaut 0,<br/>
donc elle ne peut pas être identiquement égale à 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : oubli de la variable dominante. Si a = 1,<br/>
l'expression vaut 1 même quand b = 0 : elle ne peut<br/>
donc pas se réduire à b.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut a + b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la simplification d'une autre absorption,<br/>
a + ā · b = a + b. Ici, le facteur est b<br/>
(sans complément), donc la simplification est plus forte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle vaut a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on factorise par a pour obtenir<br/>
a · (1 + b) = a · 1 = a. La présence de b<br/>
n'apporte rien quand a est déjà vrai.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q08 : Étude du OU exclusif</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans quel cas précis la fonction XOR (a ⊕ b) renvoie-t-elle<br/>
la valeur 1 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Table de vérité du XOR : (0,0)→ 0, (0,1)→ 1,<br/>
(1,0)→ 1, (1,1)→ 0. C'est l'opérateur de<br/>
« différence » ou « non-équivalence ».</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Lorsque les deux entrées sont identiques</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est exactement le contraire. Le XOR renvoie 0<br/>
(et non 1) lorsque les deux entrées sont identiques.<br/>
Cette condition décrit plutôt la fonction NXOR (équivalence).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Lorsque exactement une des deux entrées vaut 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le XOR détecte la différence entre les<br/>
entrées. Il renvoie 1 si et seulement si exactement<br/>
une seule des deux entrées vaut 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Lorsque les deux entrées valent 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour (1, 1), le XOR renvoie 0 et non 1.<br/>
C'est précisément ce qui le différencie du OU inclusif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Lorsque au moins une entrée vaut 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour (0, 0), au moins une entrée vaut 0<br/>
mais le XOR renvoie 0, pas 1. La condition n'est<br/>
donc pas suffisante.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q09 : Propriétés des portes logiques</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi la fonction NAND (a ↑ b) est-elle qualifiée<br/>
d'universelle ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une porte est dite universelle si elle permet à elle seule<br/>
de construire toutes les autres fonctions logiques. Le NAND<br/>
et le NOR sont les deux portes universelles classiques, ce qui<br/>
explique leur importance en conception de circuits intégrés.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle est la seule à posséder 2 entrées</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la plupart des opérateurs binaires (ET, OU, XOR,<br/>
NAND, NOR) ont 2 entrées. Ce n'est pas une caractéristique<br/>
propre au NAND.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle permet de reconstruire toutes les autres fonctions logiques</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec uniquement des portes NAND, on peut<br/>
réaliser le NON, le ET, le OU et toutes les fonctions<br/>
logiques composées. La fonction NOR a la même propriété.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle renvoie toujours la valeur 1 en sortie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la table de vérité du NAND donne 0 pour (1,1).<br/>
Sa sortie n'est donc pas constante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle est compatible avec tous les processeurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : « universelle » est un qualificatif d'algèbre<br/>
booléenne, pas de matériel. Il signifie que toute autre<br/>
fonction logique peut être exprimée à partir d'elle seule.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q10 : Analyse d'un circuit</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans un multiplexeur défini par (x̄ · y) + (x · z),<br/>
que vaut la sortie si x = 1 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un multiplexeur 2 vers 1 d'expression<br/>
s = (x̄ · y) + (x · z) utilise x comme<br/>
sélecteur : si x = 0, la sortie reproduit y ; si x = 1,<br/>
elle reproduit z.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La sortie prend la valeur de l'entrée z</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec x = 1, on a x̄ = 0,<br/>
donc le terme x̄ · y vaut 0 et il reste<br/>
x · z = z. Le multiplexeur sélectionne bien z.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La sortie est forcée à 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la sortie n'est pas constante, elle dépend de la<br/>
valeur de z. Pour z = 1 par exemple, la sortie vaut 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La sortie est forcée à 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur de sortie dépend encore de z, donc<br/>
elle n'est pas forcée. Si z = 0, la sortie vaut 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La sortie prend la valeur de l'entrée y</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la valeur prise par la sortie quand x = 0,<br/>
pas quand x = 1. Quand x = 0, on a x̄ = 1<br/>
et c'est la branche y qui est sélectionnée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q11 : Comportement du OU avec deux entrées à $0$</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la valeur de l'expression a + b lorsque a = 0 et b = 0 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le OU inclusif vaut 0 uniquement pour la combinaison (0, 0).<br/>
Pour toutes les autres combinaisons, au moins une entrée vaut 1<br/>
et la sortie vaut 1.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec une addition arithmétique. La logique<br/>
booléenne ne manipule que les valeurs 0 et 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle vaut 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le OU vaut 0 uniquement quand toutes ses<br/>
entrées valent 0. C'est le seul cas qui donne 0 pour le<br/>
OU inclusif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec l'élément absorbant du OU<br/>
(a + 1 = 1). Avec deux entrées à 0, la sortie vaut 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle est indéterminée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la sortie d'une fonction logique est entièrement<br/>
déterminée par sa table de vérité.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q12 : Loi d'idempotence du ET</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>D'après la propriété d'idempotence, à quoi est égale l'expression<br/>
a · a ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'idempotence est valable pour les deux opérateurs :<br/>
a · a = a et a + a = a. C'est une particularité de<br/>
l'algèbre de Boole que l'on n'a pas en arithmétique classique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle vaut a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est la loi d'idempotence du ET. Le ET d'un<br/>
booléen avec lui-même donne ce booléen.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est a · ā qui vaut 0 (principe<br/>
de non-contradiction), pas a · a.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut a²</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec l'arithmétique. En algèbre de Boole,<br/>
1 · 1 = 1 et 0 · 0 = 0, donc le résultat est<br/>
simplement a.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut ā</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il n'y a pas de complémentation dans l'expression.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q13 : Élément neutre du OU</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut systématiquement l'expression a + 0 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mémo : pour le OU, 0 est neutre et 1 est absorbant. Pour le<br/>
ET, c'est l'inverse : 1 est neutre et 0 est absorbant.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle vaut a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 0 est l'élément neutre du OU. Ajouter 0<br/>
ne change pas la valeur de a.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est a + 1 qui vaut 1 (élément absorbant du OU).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec l'élément absorbant du ET (a · 0 = 0).<br/>
Pour le OU, 0 est l'élément neutre, pas absorbant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut ā</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il n'y a pas de complémentation dans l'expression.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q14 : Évaluation de la fonction NOR</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La fonction NOR (NON-OU) est définie par \overline{a + b}.<br/>
Quelle est sa valeur pour a = 0 et b = 0 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La NOR ne vaut 1 que pour (0, 0) et vaut 0 pour toutes les<br/>
autres combinaisons. Comme la NAND, elle est universelle :<br/>
tout circuit logique peut être réalisé avec uniquement des NOR.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle est indéterminée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la NOR a une table de vérité parfaitement définie.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut ā</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la NOR ne dépend pas que de a ; elle dépend des<br/>
deux entrées.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : oubli de la négation finale. a + b = 0 pour (0, 0),<br/>
donc \overline{a + b} = \overline{0} = 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle vaut 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 0 + 0 = 0, et 0̄ = 1. La NOR vaut<br/>
1 uniquement pour cette combinaison.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q15 : Comparaison et affectation en Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel symbole utilise-t-on en Python pour tester l'égalité de deux<br/>
valeurs ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Python utilise = pour affecter et == pour comparer. Confondre<br/>
les deux est une source classique de bugs : if a = 5: produit<br/>
une erreur de syntaxe (à dessein, pour éviter les confusions<br/>
involontaires).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le symbole :=</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : := est l'opérateur d'affectation dans une expression<br/>
(« walrus operator »), introduit en Python 3.8. Il n'est pas<br/>
un test d'égalité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le symbole =</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : = est l'opérateur d'affectation, pas de comparaison.<br/>
C'est l'erreur classique en Python : a = 5 affecte 5 à a,<br/>
alors que a == 5 teste si a vaut 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le symbole ==</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : == est le test d'égalité. Il renvoie un<br/>
booléen (True ou False).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le symbole !=</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : != teste la différence (l'opposé de ==).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q16 : Analogie circuit série / porte logique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans l'analogie entre circuits électriques et fonctions logiques,<br/>
quelle disposition de deux interrupteurs réalise la fonction ET ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette analogie a été formalisée par Claude Shannon en 1937 et<br/>
a permis de relier l'algèbre de Boole à la conception de circuits<br/>
électroniques. Aujourd'hui, les transistors jouent le rôle des<br/>
interrupteurs commandés.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>En boucle fermée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas une disposition standard. Les analogies<br/>
étudiées sont la série (ET) et le parallèle (OU).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>En série</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour qu'un voyant s'allume avec deux<br/>
interrupteurs en série, il faut que les deux soient fermés<br/>
simultanément. C'est exactement la définition du ET.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>En parallèle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la disposition en parallèle réalise le OU. Le voyant<br/>
s'allume dès que l'un des interrupteurs est fermé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>En court-circuit</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un court-circuit ne réalise pas une fonction logique<br/>
mais provoque un comportement non maîtrisé du circuit.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q17 : Première loi de De Morgan</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la première loi de De Morgan, relative au complément<br/>
d'une somme (\overline{a + b}) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les deux lois de De Morgan permettent de transformer le complément<br/>
d'une opération binaire :<br/>
\overline{a + b} = \overline{a} \cdot \overline{b} et<br/>
\overline{a \cdot b} = \overline{a} + \overline{b}.<br/>
Mémo : « on complémente chaque variable et on échange les<br/>
opérateurs ».</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a + b} = \overline{a} + \overline{b}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a complémenté chaque variable, mais on a oublié de<br/>
changer l'opérateur. De Morgan transforme une somme en produit<br/>
(et inversement).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a + b} = a + b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune transformation appliquée. Le complément d'une<br/>
expression n'est pas l'expression elle-même.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>\overline{a + b} = \overline{a} \cdot \overline{b}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : « ne pas (A ou B) » revient à « ne pas A ET<br/>
ne pas B ». On complémente chaque variable et on échange les<br/>
opérateurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a + b} = a \cdot b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a bien échangé l'opérateur (+ devient ·),<br/>
mais on a oublié de complémenter chaque variable.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q18 : Distributivité du ET sur le OU</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la forme développée de l'expression a · (b + c) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>a · (b + c) = a · b + a · c. L'algèbre de Boole<br/>
possède aussi la distributivité duale, sans équivalent en<br/>
arithmétique : a + (b · c) = (a + b) · (a + c).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a · b · c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre distributivité et associativité. La<br/>
distributivité du ET sur le OU produit une somme de produits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>a · b + a · c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : exactement comme la distributivité de la<br/>
multiplication sur l'addition en arithmétique, a(b+c) = ab+ac.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a + b + c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a perdu le ET et créé une somme à trois termes.<br/>
La distributivité ne supprime pas les opérateurs, elle les<br/>
répartit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a · b + c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : oubli du facteur a devant le second terme. La<br/>
distributivité s'applique à chaque terme entre parenthèses.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q19 : Principe de non-contradiction</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut systématiquement l'expression a · ā ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le principe de non-contradiction a · ā = 0 et le<br/>
tiers exclu a + ā = 1 sont les deux propriétés duales<br/>
de complémentarité en algèbre de Boole.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>ā</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : par symétrie avec le distracteur précédent, le<br/>
résultat ne peut pas être ā non plus.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est le principe de non-contradiction. Une<br/>
variable et son complément ne peuvent jamais valoir 1<br/>
simultanément, donc leur ET vaut toujours 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : si a = 1, alors ā = 0 et le produit<br/>
vaut 0, pas 1. Le résultat ne peut donc pas être a.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec le tiers exclu, qui s'écrit<br/>
a + ā = 1 (avec un OU, pas un ET).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q20 : Expression algébrique du OU exclusif</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quelle expression algébrique correspond la fonction XOR<br/>
(a ⊕ b), exprimée à l'aide des opérateurs fondamentaux ET,<br/>
OU et NON ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'expression ā · b + a · b̄ se lit<br/>
directement sur la table de vérité : on prend les lignes où le<br/>
résultat vaut 1 (ici (0, 1) et (1, 0)) et on les exprime<br/>
sous forme de produits des variables ou de leurs compléments<br/>
(forme canonique disjonctive).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a · b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la définition du ET, qui ne vaut 1 que pour<br/>
(1, 1). Le XOR vaut justement 0 dans ce cas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a + b}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la définition de la NOR (NON-OU), qui vaut 1<br/>
uniquement pour (0, 0). Le XOR vaut 0 dans ce cas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a + b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le OU inclusif. Il diffère du XOR uniquement<br/>
en (1, 1) : OU vaut 1, XOR vaut 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>ā · b + a · b̄</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le XOR vaut 1 quand exactement une entrée<br/>
vaut 1 : soit « a faux et b vrai » (ā · b),<br/>
soit « a vrai et b faux » (a · b̄).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q21 : Simplification d'une condition Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>D'après les lois de De Morgan, à quelle condition Python est<br/>
équivalente l'expression not (x &gt; 0 and y &gt; 0) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette équivalence est très utile pour rendre les conditions<br/>
Python plus lisibles : on évite ainsi les négations imbriquées<br/>
qui obligent à un effort mental supplémentaire à la lecture.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>not x &gt; 0 or not y &gt; 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la syntaxe est valable mais peu lisible (problèmes<br/>
de priorités). Surtout, on n'a pas exploité que la négation<br/>
de &gt; 0 se simplifie en &lt;= 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>x &gt; 0 or y &gt; 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a juste retiré le not et changé and en or,<br/>
sans complémenter les comparaisons. Pour appliquer De Morgan,<br/>
il faut <strong>complémenter chaque condition</strong>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>x &lt;= 0 and y &lt;= 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a bien complémenté chaque comparaison, mais on a<br/>
oublié d'échanger and et or. De Morgan transforme un ET<br/>
en OU et inversement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>x &lt;= 0 or y &lt;= 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : par la 2ème loi de De Morgan,<br/>
\overline{a \cdot b} = \overline{a} + \overline{b}, donc<br/>
not (A and B) = (not A) or (not B). La négation de &gt; 0<br/>
est &lt;= 0.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q22 : Loi d'absorption duale</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>D'après les lois d'absorption, à quoi est égale l'expression<br/>
a · (a + b) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les deux lois d'absorption sont duales :<br/>
a + a · b = a et a · (a + b) = a.<br/>
Dans les deux cas, la variable « extérieure » domine et absorbe<br/>
la sous-expression dans laquelle elle apparaît.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a · b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : si a = 1 et b = 0, l'expression vaut 1 alors<br/>
que a · b = 0. Donc l'égalité ne tient pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la variable a ne peut pas disparaître. Si a = 0,<br/>
l'expression vaut 0 quelle que soit la valeur de b.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est la duale de a + a · b = a. On peut<br/>
la prouver en développant : a · (a + b) = a · a + a · b = a + a · b = a.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a + b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : oubli de la dominance de a. Si a = 0,<br/>
l'expression vaut 0, ce qui n'est pas le cas de a + b<br/>
quand b = 1.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q23 : Construction de la fonction NON avec des NAND</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle expression utilisant uniquement la fonction NAND (notée<br/>
↑) et la variable a permet d'obtenir ā ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La porte NAND est dite universelle : avec uniquement des NAND, on<br/>
peut construire le NON (a ↑ a), le ET<br/>
((a ↑ b) ↑ (a ↑ b)) et le OU<br/>
((a ↑ a) ↑ (b ↑ b)). Cette propriété<br/>
explique pourquoi les circuits intégrés industriels utilisent<br/>
souvent la NAND comme brique de base.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a ↑ ā</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette expression suppose que l'on dispose déjà de<br/>
ā, qui est précisément ce que l'on cherche à<br/>
construire. C'est un raisonnement circulaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a + ā</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette expression utilise les opérateurs OU et NON,<br/>
pas uniquement NAND. De plus, elle vaut toujours 1 (tiers<br/>
exclu).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>a ↑ a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : a \uparrow a = \overline{a \cdot a} = \overline{a}<br/>
(par idempotence). En reliant les deux entrées d'une porte<br/>
NAND, on obtient une porte NON.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\overline{a \uparrow a}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on ajoute une négation supplémentaire, qui annule la<br/>
précédente. Cela donne \overline{\overline{a}} = a, et non<br/>
ā.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q24 : Synthèse à partir d'une table de vérité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une fonction logique f(a, b) a la table de vérité suivante :<br/>
f(0, 0) = 0, f(0, 1) = 1, f(1, 0) = 0, f(1, 1) = 1.<br/>
Quelle est l'expression la plus simple de f ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Lire systématiquement la table : ici f vaut 0 quand b = 0<br/>
et f vaut 1 quand b = 1, quelle que soit la valeur de a.<br/>
L'expression minimale est donc f = b. C'est un piège classique :<br/>
avant de chercher une combinaison complexe, vérifier si la sortie<br/>
ne dépend pas en réalité d'une seule entrée.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>f = a · b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour (0, 1), on a a · b = 0 alors que f = 1.<br/>
La fonction ET ne convient pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>f = a ⊕ b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour (1, 1), on a a ⊕ b = 0 alors que f = 1.<br/>
Le XOR ne convient pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>f = b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la sortie est égale à b dans toutes les<br/>
combinaisons, indépendamment de a. La fonction est<br/>
dégénérée : elle ne dépend en réalité que de b.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>f = a + b</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour (1, 0), on a a + b = 1 alors que f = 0.<br/>
La fonction OU ne convient pas.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Logique booléenne et fonctions logiques — Q25 : Panne d'un interrupteur sur un circuit série</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Sur un circuit électrique, deux interrupteurs sont disposés en<br/>
série pour réaliser une fonction ET. Le premier interrupteur est<br/>
cassé, bloqué en position ouverte. Que peut-on dire du voyant ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette panne illustre concrètement la propriété de l'élément<br/>
absorbant : a · 0 = 0. Sur un circuit série (ET), une<br/>
entrée à 0 « absorbe » toute information venant de l'autre<br/>
entrée. Sur un circuit parallèle (OU), c'est l'inverse : une<br/>
entrée à 1 allume le voyant indépendamment de l'autre.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il s'allume normalement, l'autre interrupteur compense</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : en série, les deux interrupteurs doivent être fermés<br/>
simultanément pour que le courant passe. Si l'un est bloqué<br/>
ouvert, le circuit est rompu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il clignote au rythme de l'autre interrupteur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un circuit ouvert ne laisse pas passer le courant<br/>
du tout, indépendamment de l'autre interrupteur. Aucun<br/>
clignotement n'est possible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il reste toujours allumé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'opposé. Un interrupteur bloqué ouvert<br/>
empêche le courant de passer ; le voyant ne peut plus<br/>
s'allumer.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il reste toujours éteint</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un interrupteur ouvert correspond à une<br/>
entrée bloquée à 0 pour le ET. Or a · 0 = 0 pour<br/>
tout a (élément absorbant). Le voyant reste éteint.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
