<?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)\to 0$, $(0,1)\to 1$, $(1,0)\to 1$, $(1,1)\to 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^n$ lignes. Pour $n = 4$, on obtient $2^4 = 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 \times 3$ (produit) au lieu de<br/>
$2^4$ (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^4 = 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^3$).<br/>
Avec $4$ variables, il faut calculer $2^4$.</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^n$ 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/>
<code>not</code>, <code>and</code> et <code>or</code>. Les opérateurs symboliques <code>&amp;</code>, <code>|</code>, <code>~</code><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é <code>inv</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>inv</code> n'existe pas en Python comme mot-clé<br/>
de négation. À ne pas confondre avec <code>~</code> 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é <code>not</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Python utilise les mots-clés en toutes<br/>
lettres : <code>not</code>, <code>and</code> et <code>or</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le mot-clé <code>negative</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>negative</code> n'est pas un mot-clé Python.<br/>
Le mot-clé est <code>not</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le symbole <code>!</code></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 ($\cdot$), que vaut<br/>
systématiquement l'expression $a \cdot 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 \cdot 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 \cdot 0$ vaut $0$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut $\overline{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 + \overline{a} = 1$.<br/>
Sa propriété duale, le principe de non-contradiction, s'écrit<br/>
$a \cdot \overline{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 \cdot 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 \cdot \overline{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 + \overline{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 \cdot b$ d'après les<br/>
lois d'absorption ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Loi d'absorption : $a + a \cdot b = a \cdot (1 + b) = a \cdot 1 = a$.<br/>
Sa duale s'écrit $a \cdot (a + b) = a$. À distinguer de<br/>
$a + \overline{a} \cdot 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 + \overline{a} \cdot 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 \cdot (1 + b) = a \cdot 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 \oplus 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)\to 0$, $(0,1)\to 1$,<br/>
$(1,0)\to 1$, $(1,1)\to 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 \uparrow 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 $(\overline{x} \cdot y) + (x \cdot 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 = (\overline{x} \cdot y) + (x \cdot 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 $\overline{x} = 0$,<br/>
donc le terme $\overline{x} \cdot y$ vaut $0$ et il reste<br/>
$x \cdot 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 $\overline{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 \cdot a$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'idempotence est valable pour les deux opérateurs :<br/>
$a \cdot 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 \cdot \overline{a}$ qui vaut $0$ (principe<br/>
de non-contradiction), pas $a \cdot a$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut $a^2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec l'arithmétique. En algèbre de Boole,<br/>
$1 \cdot 1 = 1$ et $0 \cdot 0 = 0$, donc le résultat est<br/>
simplement $a$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle vaut $\overline{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 \cdot 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 $\overline{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 $\overline{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 $\overline{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 <code>=</code> pour affecter et <code>==</code> pour comparer. Confondre<br/>
les deux est une source classique de bugs : <code>if a = 5:</code> 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 <code>:=</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>:=</code> 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 <code>=</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>=</code> est l'opérateur d'affectation, pas de comparaison.<br/>
C'est l'erreur classique en Python : <code>a = 5</code> affecte $5$ à $a$,<br/>
alors que <code>a == 5</code> teste si $a$ vaut $5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le symbole <code>==</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>==</code> est le test d'égalité. Il renvoie un<br/>
booléen (<code>True</code> ou <code>False</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le symbole <code>!=</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>!=</code> teste la différence (l'opposé de <code>==</code>).</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 $\cdot$),<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 \cdot (b + c)$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>$a \cdot (b + c) = a \cdot b + a \cdot c$. L'algèbre de Boole<br/>
possède aussi la distributivité duale, sans équivalent en<br/>
arithmétique : $a + (b \cdot c) = (a + b) \cdot (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 \cdot b \cdot 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 \cdot b + a \cdot 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 \cdot 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 \cdot \overline{a}$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le principe de non-contradiction $a \cdot \overline{a} = 0$ et le<br/>
tiers exclu $a + \overline{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>$\overline{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 $\overline{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 $\overline{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 + \overline{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 \oplus 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 $\overline{a} \cdot b + a \cdot \overline{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 \cdot 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>$\overline{a} \cdot b + a \cdot \overline{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 » ($\overline{a} \cdot b$),<br/>
soit « $a$ vrai et $b$ faux » ($a \cdot \overline{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 <code>not (x &gt; 0 and y &gt; 0)</code> ?</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><code>not x &gt; 0 or not y &gt; 0</code></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 <code>&gt; 0</code> se simplifie en <code>&lt;= 0</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x &gt; 0 or y &gt; 0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a juste retiré le <code>not</code> et changé <code>and</code> en <code>or</code>,<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><code>x &lt;= 0 and y &lt;= 0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on a bien complémenté chaque comparaison, mais on a<br/>
oublié d'échanger <code>and</code> et <code>or</code>. De Morgan transforme un ET<br/>
en OU et inversement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>x &lt;= 0 or y &lt;= 0</code></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/>
<code>not (A and B) = (not A) or (not B)</code>. La négation de <code>&gt; 0</code><br/>
est <code>&lt;= 0</code>.</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 \cdot (a + b)$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les deux lois d'absorption sont duales :<br/>
$a + a \cdot b = a$ et $a \cdot (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 \cdot b$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : si $a = 1$ et $b = 0$, l'expression vaut $1$ alors<br/>
que $a \cdot 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 \cdot b = a$. On peut<br/>
la prouver en développant : $a \cdot (a + b) = a \cdot a + a \cdot b = a + a \cdot 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/>
$\uparrow$) et la variable $a$ permet d'obtenir $\overline{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 \uparrow a$), le ET<br/>
($(a \uparrow b) \uparrow (a \uparrow b)$) et le OU<br/>
($(a \uparrow a) \uparrow (b \uparrow 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 \uparrow \overline{a}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette expression suppose que l'on dispose déjà de<br/>
$\overline{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 + \overline{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 \uparrow 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/>
$\overline{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 \cdot b$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour $(0, 1)$, on a $a \cdot 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 \oplus b$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour $(1, 1)$, on a $a \oplus 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 \cdot 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 \cdot 0 = 0$ pour<br/>
tout $a$ (élément absorbant). Le voyant reste éteint.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
