<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de maths/Automatismes du collège/Algorithmique et programmation par blocs</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Séquences d'instructions, variables, boucles et conditions dans un<br/>
langage de programmation par blocs, programmes de calcul.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q01 : Valeur d'une variable après trois instructions</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 3 ; ajouter 4 à x ; mettre x à (x * 2) ; dire x.]</p>
<p>Quelle valeur le lutin dit-il à la fin de ce script ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les blocs s'exécutent l'un après l'autre, de haut en bas ; chaque instruction part de la valeur que la variable a reçue juste avant.</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>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La dernière instruction de calcul a été oubliée : x est encore multiplié par 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>11</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Seul 4 a été doublé. Les instructions s'exécutent dans l'ordre : on double la valeur 7 obtenue à la deuxième ligne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>14</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : x vaut 3, puis 3 + 4 = 7, puis 7 × 2 = 14.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le doublement a été fait avant l'ajout. L'ordre des blocs compte : on ajoute d'abord, puis on double.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q02 : Ce que dit le lutin avant un changement</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 5 ; dire x ; mettre x à 8.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une variable ne contient qu'une valeur à la fois ; un affichage montre la valeur au moment précis où il s'exécute.</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>0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>x a reçu la valeur 5 à la première ligne : c'est elle que le lutin dit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La valeur 8 n'est donnée à x qu'après le bloc « dire x » : le lutin a déjà dit 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : au moment du bloc « dire x », x vaut encore 5 ; la troisième ligne vient après.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>13</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le bloc « mettre » remplace la valeur de x, il ne l'ajoute pas ; et le lutin parle avant ce remplacement.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q03 : Tentative d'échange de deux variables</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre a à 3 ; mettre b à 7 ; mettre a à b ; mettre b à a.]</p>
<p>Que valent a et b à la fin de ce script ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour échanger deux variables, il faut une troisième variable qui garde l'ancienne valeur de a avant de l'écraser.</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 = 3 et b = 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La troisième ligne s'exécute en premier : a reçoit la valeur de b, soit 7.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a = 7 et b = 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>L'échange échoue : quand on exécute « mettre b à a », a vaut déjà 7. L'ancienne valeur 3 est perdue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>a = 7 et b = 7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la troisième ligne donne à a la valeur 7 ; la quatrième recopie cette nouvelle valeur dans b.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a = 3 et b = 7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les deux dernières lignes modifient les variables : a reçoit 7, puis b reçoit cette même valeur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q04 : Rôle du bloc demander</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans un script, que représente le bloc « demander Quel est ton âge ? et attendre » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les entrées sont les données fournies au programme (« demander »), les sorties sont les résultats qu'il produit (« dire »).</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>Une boucle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une boucle répète des instructions ; ce bloc attend une seule réponse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une entrée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le programme reçoit une donnée tapée par l'utilisateur, stockée dans « réponse ».</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une condition</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une condition choisit entre deux suites d'instructions ; ce bloc récupère une donnée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une sortie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une sortie est une information que le programme affiche, comme avec le bloc « dire ».</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q05 : Expression calculée par un script</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; demander Choisis un nombre. et attendre ; mettre x à réponse ; mettre y à (x + 3) ; mettre y à (y * x) ; dire y.]</p>
<p>Le nombre choisi est noté x. Quelle expression le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chaque bloc « mettre » remplace la valeur de la variable : on écrit l'expression étape par étape, en gardant les parenthèses.</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>(x + 3)²</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>y est multiplié par x, pas par lui-même : on obtient x(x + 3).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>x + 3x</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les parenthèses ont été oubliées : c'est toute la somme x + 3 qui est multipliée par x.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>x² + 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le nombre 3 est ajouté avant la multiplication, il est donc lui aussi multiplié par x : x(x + 3).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>x(x + 3)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : y vaut d'abord x + 3, puis ce résultat est multiplié par x.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q06 : Résultat d'un script pour un nombre donné</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; demander Choisis un nombre. et attendre ; mettre x à réponse ; mettre y à (x + 3) ; mettre y à (y * x) ; dire y.]</p>
<p>L'utilisateur répond 4. Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avec x = 4, on suit les lignes une à une : y prend la valeur 7, puis 28.</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>19</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>L'ajout de 3 a été fait après la multiplication. Dans le script, il vient avant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>49</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>y a été multiplié par lui-même. Le script multiplie y par x, qui vaut 4.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>28</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : y = 4 + 3 = 7, puis y = 7 × 4 = 28.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La multiplication a été appliquée à 3 seulement. C'est y, qui vaut 7, qui est multiplié par 4.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q07 : Score après plusieurs ajouts</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre score à 0 ; ajouter 3 à score ; ajouter -1 à score ; ajouter 3 à score.]</p>
<p>Quelle est la valeur de score à la fin de ce script ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le bloc « ajouter … à score » augmente la valeur de score ; avec un nombre négatif, il la diminue.</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>5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 0 + 3 - 1 + 3 = 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le bloc « ajouter » n'efface pas la valeur précédente : les trois ajouts se cumulent, 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Ajouter -1, c'est retirer 1 : on calcule 0 + 3 - 1 + 3 = 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le dernier ajout de 3 a été oublié : le score vaut 5.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q08 : Sens du bloc mettre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que fait le bloc « mettre x à 0 » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>« mettre … à » affecte une valeur à une variable ; « ajouter … à » modifie la valeur existante.</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>Il donne à la variable x la valeur 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'ancienne valeur de x est remplacée par 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il ajoute 0 à la valeur de la variable x</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est le rôle du bloc « ajouter 0 à x », qui ne changerait rien. « mettre » remplace la valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il compare la valeur de la variable x à 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une comparaison est une condition, écrite dans un bloc hexagonal comme « x = 0 ».</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il affiche la valeur 0 à côté de x</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un affichage se fait avec « dire ». « mettre » change la valeur de la variable sans rien afficher.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q09 : Deux écritures équivalentes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel bloc a le même effet que « ajouter 5 à x » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>« ajouter 5 à x » est un raccourci pour « mettre x à (x + 5) ».</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>« mettre x à 5 »</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Ce bloc remplace la valeur de x par 5, quelle qu'elle soit : l'ancienne valeur est perdue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>« dire (x + 5) »</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Ce bloc affiche x + 5 sans modifier x.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>« mettre x à (x + 5) »</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la nouvelle valeur de x est l'ancienne augmentée de 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>« mettre x à (5 + 5) »</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>x vaudrait 10, quelle que soit sa valeur de départ.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q10 : Deux variables qui s'échangent des valeurs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre a à 7 ; mettre b à 3 ; mettre a à (a + b) ; mettre b à (a - b) ; dire b.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On suit les valeurs de chaque variable ligne après ligne, sans oublier qu'une affectation modifie la valeur utilisée ensuite.</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>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La troisième ligne a été oubliée : au moment de calculer a - b, a vaut déjà 10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est la valeur de a après la troisième ligne. Le lutin dit b, qui vaut 10 - 3 = 7.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : a devient 7 + 3 = 10, puis b = 10 - 3 = 7.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>b a été modifié par la quatrième ligne : il vaut a - b = 10 - 3 = 7.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q11 : Figure tracée par une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; répéter 4 fois [ avancer de 50 pas ; tourner de 90 degrés ].]</p>
<p>Le stylo du lutin est en position d'écriture. Quelle figure trace-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Après 4 virages de 90°, le lutin a fait un tour complet de 360° et revient à son point de départ.</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>Un segment de 200 pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le lutin tourne de 90° après chaque côté : il ne trace pas une ligne droite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un carré de côté 50 pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : quatre côtés égaux et quatre virages de 90°, soit un tour complet.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un triangle équilatéral de côté 50 pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un triangle n'a que trois côtés ; la boucle en trace quatre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un rectangle qui n'est pas un carré</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les quatre côtés tracés ont la même longueur, 50 pas : c'est un carré.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q12 : Polygone régulier tracé par une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; répéter 3 fois [ avancer de 60 pas ; tourner de 120 degrés ].]</p>
<p>Le lutin, stylo baissé, exécute ce script. Quelle figure obtient-on ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour un polygone régulier à n côtés, le lutin tourne n fois de 360/n degré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>Un polygone régulier à 4 côtés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La boucle s'exécute 3 fois et trace un côté à chaque passage : 3 côtés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une ligne brisée qui ne se referme pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les virages totalisent 3 × 120° = 360° : le lutin revient au départ et la figure se referme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un polygone régulier à 120 côtés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>120 est l'angle de chaque virage en degrés, pas un nombre de côtés : la boucle trace 3 côtés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un polygone régulier à 3 côtés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 3 côtés égaux et 3 virages de 120°, soit 3 × 120° = 360°, un tour complet.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q13 : Angle à tourner pour un triangle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; répéter 3 fois [ avancer de 80 pas ; tourner de ? degrés ].]</p>
<p>On veut que le lutin trace un triangle équilatéral. Quel nombre faut-il écrire à la place de « ? » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'angle dont tourne le lutin est l'angle extérieur du polygone ; pour un polygone régulier à n côtés, il vaut 360/n degré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>180</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Avec un demi-tour, le lutin revient sur ses pas : il ne trace qu'un segment.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>90</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Trois virages de 90° ne font que trois quarts de tour : la figure ne se referme pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>120</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le lutin doit faire un tour complet en trois virages, 360 ÷ 3 = 120.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>60</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>60° est l'angle intérieur du triangle. Le lutin tourne de l'angle extérieur, 180° - 60° = 120°.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q14 : Ajouts répétés dans une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 0 ; répéter 4 fois [ ajouter 3 à x ] ; dire x.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une boucle « répéter n fois » exécute son contenu exactement n fois ; des ajouts répétés reviennent à une multiplication.</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>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le nombre de répétitions ne s'ajoute pas : la boucle ajoute 3 à chaque passage, soit 12 au total.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>L'ajout n'a été compté qu'une fois ; il est répété 4 fois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un passage a été oublié : la boucle s'exécute exactement 4 fois, d'où 12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 3 est ajouté 4 fois, donc x = 4 × 3 = 12.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q15 : Doublements répétés</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 1 ; répéter 3 fois [ mettre x à (x * 2) ] ; dire x.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Multiplier n fois par 2 à partir de 1 donne 2ⁿ : la boucle calcule une puissance.</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>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>On a ajouté 2 à chaque passage au lieu de multiplier par 2. On trouve 2³ = 8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>6</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Doubler 3 fois n'est pas multiplier par 3 : on obtient 2³ = 8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : x est doublé 3 fois à partir de 1, donc x = 2³ = 8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un doublement de trop : la boucle s'exécute 3 fois, pas 4.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q16 : Somme calculée par une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre s à 0 ; mettre i à 1 ; répéter 4 fois [ ajouter i à s ; ajouter 1 à i ] ; dire s.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>i sert de compteur : il vaut 1 au premier passage, 2 au deuxième, et ainsi de suite jusqu'à 4.</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>15</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La somme va trop loin, jusqu'à 5 : la boucle ne s'exécute que 4 fois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>20</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est le double de la somme. On calcule 1 + 2 + … + 4 = 10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle ajoute successivement 1, 2, …, 4, soit 10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>6</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La somme s'arrête trop tôt, à 3 : au dernier passage, i vaut 4 et il est ajouté.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q17 : Nombre de doublements avant de dépasser 100</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 7 ; mettre c à 0 ; répéter jusqu'à ce que x &gt; 100 [ mettre x à (x * 2) ; ajouter 1 à c ] ; dire c.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une boucle « répéter jusqu'à ce que » teste la condition avant chaque passage et s'arrête dès qu'elle est vraie.</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>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : x est doublé 4 fois avant de dépasser 100, pour atteindre 112.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le dernier passage manque : après 3 doublements, x vaut 56, ce qui ne dépasse pas encore 100.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La boucle s'arrête dès que x dépasse 100, après 4 doublements ; il n'y a pas de passage supplémentaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>112</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est la valeur finale de x. Le lutin dit c, le nombre de passages dans la boucle : 4.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q18 : Deux boucles imbriquées</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre n à 0 ; répéter 3 fois [ répéter 4 fois [ ajouter 1 à n ] ] ; dire n.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une boucle placée à l'intérieur d'une autre est exécutée entièrement à chaque passage de la boucle extérieure.</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>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les boucles sont imbriquées, pas placées l'une après l'autre : les nombres de passages se multiplient.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle intérieure ajoute 4 à chaque passage de la boucle extérieure, qui en fait 3, soit 12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La boucle intérieure est relancée à chacun des 3 passages de la boucle extérieure : on obtient 12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La boucle intérieure ajoute 1 à n à chacun de ses passages : 4 fois par tour de la boucle extérieure.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q19 : Rôle d'une boucle répéter</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert une boucle « répéter 10 fois » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une boucle « répéter n fois » est une boucle inconditionnelle : on connaît à l'avance le nombre de répétitions.</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>À n'exécuter les blocs que si une condition est vraie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est le rôle d'un bloc « si … alors ». La boucle répète sans condition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À faire attendre le programme pendant 10 secondes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Pour attendre, on utilise le bloc « attendre 10 secondes ». La boucle répète des instructions.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À exécuter 10 fois de suite les blocs qu'elle contient</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle évite d'écrire dix fois les mêmes instructions.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À donner la valeur 10 à une variable du programme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est le rôle du bloc « mettre … à 10 ». La boucle répète des instructions.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q20 : Choisir le bon type de boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans quel cas utilise-t-on « répéter jusqu'à ce que » plutôt que « répéter n fois » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>« Répéter n fois » : nombre de passages connu d'avance. « Répéter jusqu'à ce que » : arrêt quand une condition devient vraie.</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>Quand le programme ne contient aucune variable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La condition d'arrêt porte souvent sur une variable : c'est l'inverse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Quand on connaît exactement le nombre de répétitions</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Dans ce cas, « répéter n fois » suffit et se lit plus simplement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Quand le nombre de répétitions n'est pas connu d'avance</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle s'arrête quand une condition devient vraie, après un nombre de passages qui dépend des valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Quand on veut exécuter les instructions une seule fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une instruction exécutée une seule fois n'a besoin d'aucune boucle.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q21 : Message choisi par une condition</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 7 ; si x &gt; 10 alors [ dire grand ] sinon [ dire petit ].]</p>
<p>Quel message le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le bloc « si … alors … sinon » teste la condition une fois, puis exécute exactement l'un des deux blocs.</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>petit</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 7 &gt; 10 est faux, donc seul le bloc « sinon » s'exécute.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>grand, puis petit</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un seul des deux blocs s'exécute : « alors » si la condition est vraie, « sinon » si elle est fausse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>rien</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Avec un bloc « sinon », le lutin dit toujours quelque chose : ici « petit », car la condition est fausse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>grand</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le bloc « alors » ne s'exécute que si la condition est vraie ; or 7 n'est pas supérieur à 10.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q22 : Calcul qui dépend d'une condition</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 4 ; si x &lt; 6 alors [ mettre y à (x * 2) ] sinon [ mettre y à (x + 10) ] ; dire y.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Attention aux inégalités strictes : « x &lt; 6 » est faux lorsque x vaut exactement 6.</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>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>y reçoit une valeur dans chacun des deux blocs ; le lutin dit y, pas x : 8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on compare 4 à 6 (inégalité stricte), puis on applique le seul calcul du bloc choisi.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>14</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est le calcul de l'autre bloc. La condition « x &lt; 6 » décide du bloc : avec x = 4, on obtient 8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>18</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les deux calculs ont été enchaînés. Un seul des deux blocs s'exécute : 8.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q23 : Condition avec le mot et</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; si (x &gt; 5) et (x &lt; 9) alors [ dire Gagné ].]</p>
<p>Pour quelle valeur de x le lutin dit-il « Gagné » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une condition « A et B » n'est vraie que si A et B sont vraies toutes les deux.</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>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 7 &gt; 5 et 7 &lt; 9 ; les deux conditions sont vraies.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les inégalités sont strictes : pour x = 5, l'une des deux conditions est fausse, donc « et » donne faux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>2 n'est pas supérieur à 5 : la première condition est fausse, donc « et » donne faux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>12 n'est pas inférieur à 9 : la seconde condition est fausse, donc « et » donne faux.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q24 : Condition avec le mot ou</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; si (x &lt; 3) ou (x &gt; 8) alors [ dire Hors zone ].]</p>
<p>Pour quelle valeur de x le lutin ne dit-il rien ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une condition « A ou B » est vraie dès que l'une des deux est vraie ; elle n'est fausse que si A et B sont fausses toutes les deux.</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>5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 5 n'est ni inférieur à 3 ni supérieur à 8 ; les deux conditions sont fausses.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>10 &gt; 8 : la seconde condition est vraie, cela suffit pour que « ou » donne vrai, et le lutin parle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>1 &lt; 3 : la première condition est vraie, cela suffit pour que « ou » donne vrai, et le lutin parle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>13</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>13 &gt; 8 : la seconde condition est vraie, cela suffit pour que « ou » donne vrai, et le lutin parle.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q25 : Tester la parité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans un script, quand la condition « (n modulo 2) = 0 » est-elle vraie ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>« a modulo b » donne le reste de la division euclidienne de a par b : il permet de tester la divisibilité.</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>Quand n est nul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>0 rend la condition vraie, mais il n'est pas le seul : 2, 4, 6… aussi.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Quand n est un multiple de 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>3 est un multiple de 3, mais 3 modulo 2 vaut 1. Le test porte sur la division par 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Quand n est pair</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : « n modulo 2 » est le reste de la division de n par 2, nul exactement pour les nombres pairs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Quand n est impair</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Pour un nombre impair, le reste de la division par 2 vaut 1, pas 0.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q26 : Ce que calcule un test de comparaison</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; si a &gt; b alors [ mettre m à a ] sinon [ mettre m à b ].]</p>
<p>Que contient la variable m à la fin de ce script, pour des nombres a et b quelconques ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Ce script classique calcule le maximum de deux nombres. En inversant le test, on obtiendrait le minimum.</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>Le plus grand des deux nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : si a dépasse b, m reçoit a ; sinon, il reçoit b, qui est alors le plus grand ou égal à a.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Toujours la valeur de a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Quand a n'est pas supérieur à b, c'est b que m reçoit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le plus petit des deux nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Quand a &gt; b, m reçoit a, le plus grand : le script garde le maximum.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La somme des deux nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Aucun bloc n'additionne a et b : m reçoit l'un des deux.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q27 : Une suite de calculs jusqu'à 1</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre x à 6 ; mettre c à 0 ; répéter jusqu'à ce que x = 1 [ si (x modulo 2) = 0 alors [ mettre x à (x / 2) ] sinon [ mettre x à (3 * x + 1) ] ; ajouter 1 à c ] ; dire c.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On dresse un tableau des valeurs successives de x et de c ; la boucle s'arrête dès que x 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="100" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : en notant chaque valeur de x jusqu'à 1, on compte 8 passages dans la boucle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La valeur de départ a été comptée comme un passage. Seuls les calculs comptent : 8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est la plus grande valeur prise par x. Le lutin dit c, le nombre de passages : 8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un passage a été oublié : le dernier calcul, qui donne x = 1, compte aussi.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q28 : Traduire un encadrement</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle condition traduit « x est compris entre 5 et 10, bornes incluses » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>« Compris entre a et b » se traduit par deux conditions reliées par « et » ; « bornes incluses » impose ≥ et ≤.</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>(x ≥ 5) et (x ≤ 10)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : x doit être au moins égal à 5 et au plus égal à 10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>(x &gt; 5) et (x &lt; 10)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Les inégalités strictes excluent les bornes 5 et 10, qui doivent être incluses.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>(x ≤ 5) et (x ≥ 10)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Aucun nombre n'est à la fois inférieur à 5 et supérieur à 10 : la condition est toujours fausse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>(x ≥ 5) ou (x ≤ 10)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Avec « ou », tout nombre convient : 20 ≥ 5 suffit à rendre la condition vraie.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q29 : Compter des multiples avec une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>[Figure : Script Scratch, de haut en bas : quand le drapeau vert est cliqué ; mettre k à 1 ; mettre c à 0 ; répéter 20 fois [ si (k modulo 3) = 0 alors [ ajouter 1 à c ] ; ajouter 1 à k ] ; dire c.]</p>
<p>Quelle valeur le lutin dit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le reste de k par 3 est nul exactement quand k est un multiple de 3 ; le script compte ces multiples.</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>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le nombre 0 n'est jamais testé, car k commence à 1 : il y a 6 multiples de 3 entre 1 et 20.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>14</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est le nombre de valeurs qui ne sont pas des multiples de 3. Le compteur augmente quand le reste est nul : 6.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>6</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : k prend les valeurs de 1 à 20, et c compte celles qui sont multiples de 3 : 6.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>c ne vaut pas 3 : il augmente d'une unité à chaque multiple de 3 rencontré, soit 6 fois.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation par blocs — Q30 : Fonctionnement d'un bloc si-sinon</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment s'exécute un bloc « si … alors … sinon … » ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une instruction conditionnelle permet au programme de choisir entre deux suites d'instructions.</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 bloc « sinon » s'exécute toujours, en dernier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le bloc « sinon » ne s'exécute que si la condition est fausse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le bloc « alors » se répète tant que la condition est vraie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Répéter est le rôle d'une boucle. Le bloc « si » ne teste la condition qu'une fois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les deux blocs s'exécutent, l'un après l'autre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un seul bloc s'exécute : la condition sert justement à choisir lequel.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un seul des deux blocs s'exécute, selon la condition</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : « alors » si la condition est vraie, « sinon » si elle est fausse.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
