<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de maths/Première spécialité/Algorithmique et listes</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Notion de liste : générer une liste en extension, par ajouts<br/>
successifs ou en compréhension, manipuler ses éléments et leurs<br/>
indices, la parcourir. Algorithmes du programme : termes, sommes et<br/>
seuils d'une suite, factorielle, suite de Fibonacci, sécantes,<br/>
méthode de Newton, méthode d'Euler, Monte-Carlo, espérance.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q01 : Le premier élément d'une liste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On pose <code>L = [4, 9, 2, 7]</code>. Que vaut <code>L[1]</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dans une liste de $n$ éléments, les indices vont de $0$ à $n - 1$ :<br/>
<code>L[0]</code> est le premier élément, <code>L[n - 1]</code> le dernier.</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>$9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les indices commencent à $0$. <code>L[0]</code> vaut $4$ et<br/>
<code>L[1]</code> vaut $9$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $4$ est <code>L[0]</code>. Le premier élément porte l'indice $0$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $2$ est <code>L[2]</code>, le troisième élément de la liste.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>L[1]</code> désigne l'élément d'indice $1$, pas le nombre<br/>
$1$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q02 : Longueur et dernier élément</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On pose <code>L = [3, 8, 5, 1, 6]</code>. Quelle expression désigne le dernier<br/>
élément de <code>L</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>len(L)</code> renvoie le nombre d'éléments. Le dernier élément est<br/>
<code>L[len(L) - 1]</code>.</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><code>L[len(L) - 1]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>len(L)</code> vaut $5$, et le dernier indice est<br/>
$5 - 1 = 4$ : <code>L[4]</code> vaut $6$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>L[len(L)]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'indice $5$ n'existe pas, ce qui provoque une erreur<br/>
d'exécution. Les indices s'arrêtent à $4$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>len(L)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>len(L)</code> est le nombre d'éléments, ici $5$, pas le<br/>
dernier élément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>L[len(L) - 2]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'indice $5 - 2 = 3$ désigne l'avant-dernier élément, $1$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q03 : Ajouter un élément</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que contient <code>L</code> après ces instructions ?</p>
<pre><code>L = [5, 2]
L.append(8)
L.append(1)</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>L.append(x)</code> ajoute <code>x</code> à la fin de <code>L</code>. Partir de <code>[]</code> puis<br/>
ajouter dans une boucle, c'est générer une liste par ajouts<br/>
successifs.</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><code>[5, 2, 8, 1]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>append</code> ajoute l'élément à la fin de la liste,<br/>
dans l'ordre des instructions.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[8, 1, 5, 2]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>append</code> ajoute en fin de liste, pas au début.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[5, 2, 9]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les éléments ajoutés ne s'additionnent pas. Chacun<br/>
devient un nouvel élément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 2, 5, 8]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une liste ne se trie pas d'elle-même. L'ordre des<br/>
ajouts est conservé.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q04 : Une liste en compréhension</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que contient la liste <code>[k ** 2 for k in range(5)]</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>[expression for k in range(n)]</code> construit la liste des valeurs de<br/>
l'expression pour <code>k</code> allant de $0$ à $n - 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><code>[0, 1, 4, 9, 16]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>k</code> parcourt $0$, $1$, $2$, $3$, $4$, et la<br/>
liste contient leurs carrés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 4, 9, 16, 25]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(5)</code> commence à $0$ et s'arrête à $4$. Le carré<br/>
de $5$ n'y figure pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[0, 2, 4, 6, 8]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>k ** 2</code> est le carré de <code>k</code>, pas son double.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[0, 1, 2, 3, 4]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont les valeurs de <code>k</code>, avant d'appliquer<br/>
l'expression <code>k ** 2</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q05 : Une compréhension avec condition</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que contient la liste <code>[n for n in range(1, 20) if n % 4 == 0]</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La condition placée après <code>if</code> filtre les valeurs : c'est la<br/>
traduction en Python d'un ensemble défini par une propriété,<br/>
$\{n \in \{1, \ldots, 19\} \mid 4 \text{ divise } n\}$.</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><code>[4, 8, 12, 16]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on garde les entiers de $1$ à $19$ dont le reste<br/>
dans la division par $4$ est nul, c'est-à-dire les multiples de<br/>
$4$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[4, 8, 12, 16, 20]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(1, 20)</code> s'arrête à $19$. L'entier $20$ n'est pas<br/>
examiné.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[0, 4, 8, 12, 16]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le parcours commence à $1$, donc $0$ n'est pas examiné.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 2, 3, 4]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition filtre les entiers, elle ne compte pas les<br/>
multiples.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q06 : Modifier un élément par son indice</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que contient <code>L</code> après ces instructions ?</p>
<pre><code>L = [10, 20, 30, 40]
L[2] = L[0] + L[3]</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>L[i] = valeur</code> remplace l'élément d'indice <code>i</code>. La longueur de la<br/>
liste ne change pas.</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><code>[10, 20, 50, 40]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>L[0] + L[3]</code> vaut $10 + 40 = 50$, et cette<br/>
valeur remplace l'élément d'indice $2$, qui valait $30$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[10, 50, 30, 40]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'élément d'indice $2$ est le troisième. C'est $30$ qui<br/>
est remplacé, pas $20$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[10, 20, 30, 40, 50]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une affectation <code>L[2] = …</code> remplace un élément, elle<br/>
n'ajoute rien à la liste.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[10, 20, 60, 40]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>L[3]</code> vaut $40$ et non $30$ : les indices commencent<br/>
à $0$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q07 : Supprimer un élément</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que contient <code>L</code> après ces instructions ?</p>
<pre><code>L = [7, 3, 9, 3]
L.remove(3)</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>L.remove(x)</code> retire la première occurrence de la valeur <code>x</code> ;<br/>
<code>del L[i]</code> retire l'élément d'indice <code>i</code>.</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><code>[7, 9, 3]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>remove(3)</code> supprime la <strong>première</strong> occurrence<br/>
de la valeur $3$ seulement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[7, 9]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>remove</code> ne supprime qu'une occurrence, la première<br/>
rencontrée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[7, 3, 3]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>remove(3)</code> supprime la valeur $3$, pas l'élément<br/>
d'indice $3$ ni celui d'indice $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[7, 3, 9]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la première occurrence de $3$ qui disparaît, pas<br/>
la dernière.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q08 : Générer une liste par ajouts successifs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que contient <code>L</code> à la fin de ce programme ?</p>
<pre><code>L = []
for k in range(1, 5):
    L.append(3 * k - 1)</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même résultat s'obtient en compréhension :<br/>
<code>[3 * k - 1 for k in range(1, 5)]</code>.</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><code>[2, 5, 8, 11]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour <code>k</code> de $1$ à $4$, on ajoute $3k - 1$, soit<br/>
$2$, $5$, $8$ et $11$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[-1, 2, 5, 8]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le parcours commence à $k = 1$ et non à $k = 0$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[2, 5, 8, 11, 14]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(1, 5)</code> s'arrête à $4$. La valeur $k = 5$ n'est<br/>
pas prise.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[11]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>append</code> ajoute un élément à chaque tour, sans effacer<br/>
les précédents.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q09 : Itérer sur les éléments</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?</p>
<pre><code>s = 0
for x in [4, 1, 6]:
    s = s + x
print(s)</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>for x in L:</code> donne à <code>x</code> chacun des éléments de <code>L</code>, dans l'ordre.<br/>
On parle d'itération sur les éléments.</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>$11$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>x</code> prend successivement les valeurs $4$, $1$ et<br/>
$6$, que l'on additionne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$24$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les éléments sont additionnés, pas multipliés. La<br/>
variable <code>s</code> part de $0$ et reçoit <code>s + x</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>s</code> accumule toutes les valeurs, elle ne garde pas<br/>
seulement la dernière.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$, soit $0 + 1 + 2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>for x in L</code> parcourt les <strong>éléments</strong> de la liste, pas<br/>
ses indices.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q10 : Parcourir par les indices</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?</p>
<pre><code>L = [5, 8, 2, 9]
for i in range(len(L)):
    if L[i] &gt; 6:
        print(i)</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>for i in range(len(L))</code> parcourt les indices ; on accède à<br/>
l'élément par <code>L[i]</code>. Ce parcours sert quand la position compte.</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><code>1</code> puis <code>3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les éléments supérieurs à $6$ sont $8$ et $9$,<br/>
d'indices $1$ et $3$. Le programme affiche les indices.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>8</code> puis <code>9</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche <code>i</code>, l'indice, et non <code>L[i]</code>,<br/>
l'élément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code> puis <code>4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce seraient les positions en comptant à partir de $1$.<br/>
Les indices Python commencent à $0$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $2$ est le nombre d'éléments supérieurs à $6$, mais le<br/>
programme affiche chaque indice trouvé.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q11 : Chercher le maximum</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La fonction suivante doit renvoyer le plus grand élément d'une liste<br/>
non vide. Quelle ligne compléter ?</p>
<pre><code>def maximum(L):
    m = L[0]
    for x in L:
        if x &gt; m:
            ...
    return m</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Recherche d'un maximum : on part du premier élément, on parcourt la<br/>
liste et on met à jour la valeur retenue à chaque élément plus grand.</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><code>m = x</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : dès qu'un élément dépasse le maximum provisoire,<br/>
il le remplace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x = m</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'affectation est à l'envers. <code>m</code> ne change jamais et<br/>
reste égal à <code>L[0]</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>return x</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction s'arrêterait au premier élément plus grand<br/>
que <code>L[0]</code>, sans examiner la suite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>m = m + x</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>m</code> deviendrait une somme partielle, pas un maximum.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q12 : Compter des occurrences</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>compte([1, 3, 1, 1, 2], 1)</code> ?</p>
<pre><code>def compte(L, v):
    c = 0
    for x in L:
        if x == v:
            c = c + 1
    return c / len(L)</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette fonction calcule la fréquence d'une valeur dans une série. Le<br/>
même principe sert à étudier la fréquence des lettres d'un texte.</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>$0{,}6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la valeur $1$ apparaît $3$ fois sur $5$<br/>
éléments. La fonction renvoie la fréquence $\dfrac{3}{5}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $3$ est l'effectif. La division par <code>len(L)</code> le<br/>
transforme en fréquence.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le compteur augmente à chaque occurrence, pas une seule<br/>
fois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1{,}6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction compte les éléments égaux à <code>v</code>, elle<br/>
n'additionne pas les valeurs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q13 : Moyenne d'une série avec effectifs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Les listes <code>V</code> et <code>E</code> contiennent les valeurs d'une série et leurs<br/>
effectifs. Que renvoie <code>moy([2, 5, 10], [3, 1, 1])</code> ?</p>
<pre><code>def moy(V, E):
    s = 0
    for i in range(len(V)):
        s = s + V[i] * E[i]
    return s / sum(E)</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Moyenne pondérée : $\bar{x} = \dfrac{\sum n_i x_i}{\sum n_i}$. Le<br/>
parcours par indices permet d'associer chaque valeur à son effectif.</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{,}2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $2 \times 3 + 5 \times 1 + 10 \times 1 = 21$,<br/>
divisé par l'effectif total $5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$5{,}\overline{6}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la moyenne des trois valeurs sans tenir compte<br/>
des effectifs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$21$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $21$ est la somme pondérée. Il reste à la diviser par<br/>
l'effectif total.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$7$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la somme pondérée est divisée par l'effectif total,<br/>
<code>sum(E)</code>, et non par le nombre de valeurs distinctes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q14 : Espérance d'une loi donnée par deux listes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une variable aléatoire prend les valeurs de la liste <code>X</code> avec les<br/>
probabilités de la liste <code>P</code>. Quelle fonction renvoie son<br/>
espérance ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'espérance est la somme des produits valeur × probabilité. Les<br/>
probabilités ont une somme égale à $1$, d'où l'absence de division.</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[<pre><code>def esperance(X, P):
    return sum([X[i] * P[i] for i in range(len(X))])</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $E = \sum x_i \, p_i$. La liste en compréhension<br/>
contient les produits, <code>sum</code> les additionne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>def esperance(X, P):
    return sum(X) / len(X)</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la moyenne des valeurs, qui ignore les<br/>
probabilités. Elle ne coïncide avec l'espérance que dans le cas<br/>
équiprobable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>def esperance(X, P):
    return sum(X) * sum(P)</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>sum(P)</code> vaut $1$, donc cette fonction renvoie la somme<br/>
des valeurs, sans pondération.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>def esperance(X, P):
    return sum([X[i] * P[i] for i in range(len(X))]) / len(X)</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la somme des $x_i \, p_i$ est déjà l'espérance ; la<br/>
division par le nombre de valeurs est de trop.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q15 : Calculer un terme par une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La suite $(u_n)$ vérifie $u_0 = 3$ et $u_{n+1} = u_n + 2$.<br/>
Que renvoie <code>terme(3)</code> ?</p>
<pre><code>def terme(n):
    u = 3
    for i in range(n):
        u = u + (2)
    return u</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour calculer $u_n$ à partir d'une relation de récurrence, on<br/>
initialise avec $u_0$ et l'on applique $n$ fois la relation.</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>$9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle fait $3$ tours et passe de $u_0$ à<br/>
$u_{3}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$7$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $7$ est $u_{3 - 1}$. La boucle fait bien $3$<br/>
tours.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$11$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un tour de trop. <code>range(3)</code> produit $3$ valeurs de<br/>
<code>i</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$24$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la suite est arithmétique. On ajoute la raison à chaque<br/>
tour, on ne multiplie pas.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q16 : Liste des premiers termes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>termes(4)</code> ?</p>
<pre><code>def termes(n):
    u = 1
    L = [u]
    for i in range(n):
        u = 2 * u + 1
        L.append(u)
    return L</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour obtenir la liste $[u_0, \ldots, u_n]$, on range $u_0$ dans la<br/>
liste, puis on ajoute chaque nouveau terme dans la boucle.</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><code>[1, 3, 7, 15, 31]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la liste contient $u_0 = 1$, puis les $4$ termes<br/>
suivants calculés par $u_{n+1} = 2u_n + 1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[3, 7, 15, 31]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la liste est initialisée avec $u_0$ avant la boucle, il<br/>
faut le compter.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 3, 7, 15]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la boucle fait $4$ tours et ajoute $4$ termes à $u_0$ :<br/>
la liste en contient $5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 3, 5, 7, 9]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque terme est le double du précédent augmenté de<br/>
$1$ ; ajouter $2$ à chaque fois donnerait une suite<br/>
arithmétique.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q17 : Somme des termes d'une suite</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>somme(3)</code> ?</p>
<pre><code>def somme(n):
    u = 2
    s = 0
    for k in range(n + 1):
        s = s + u
        u = 3 * u
    return s</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La formule donne le même résultat :<br/>
$2 \times \dfrac{3^4 - 1}{3 - 1} = 80$. L'ordre des deux<br/>
instructions dans la boucle décide des termes additionné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="100" format="html">
    <text><![CDATA[<p>$80$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on additionne $u_0$ à $u_3$ de la suite<br/>
géométrique de premier terme $2$ et de raison $3$ :<br/>
$2 + 6 + 18 + 54 = 80$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$26$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(n + 1)</code> fait $4$ tours pour $n = 3$, donc quatre<br/>
termes sont additionnés, pas trois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$54$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $54$ est le terme $u_3$. La fonction renvoie la somme<br/>
des termes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$242$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le terme $162$ est calculé au dernier tour, mais après<br/>
l'ajout, donc il n'entre pas dans la somme.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q18 : Un algorithme de seuil décroissant</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une population de $5\,000$ individus diminue de $10\ \%$ par an. Que<br/>
renvoie la fonction suivante ?</p>
<pre><code>def seuil():
    p = 5000
    n = 0
    while p &gt;= 2500:
        p = 0.9 * p
        n = n + 1
    return n</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Algorithme de seuil : la boucle <code>while</code> tourne tant que le seuil<br/>
n'est pas franchi. Ici $0{,}9^6 \approx 0{,}53$ et<br/>
$0{,}9^7 \approx 0{,}48$, d'où $n = 7$.</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 premier rang où la population passe sous $2\,500$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle s'arrête dès que $p &lt; 2\,500$, et <code>n</code><br/>
compte les années écoulées. On trouve $n = 7$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La population restante après $2\,500$ années</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $2\,500$ est un seuil de population, et la fonction<br/>
renvoie <code>n</code>, un nombre d'années.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La dernière année où la population dépasse $2\,500$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : à la sortie de la boucle, la condition <code>p &gt;= 2500</code> est<br/>
fausse : l'année renvoyée est la première sous le seuil.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nombre d'individus perdus chaque année</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la perte annuelle n'est pas calculée. <code>n</code> compte les<br/>
tours de boucle, donc les années.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q19 : Calcul d'une factorielle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On note $n! = 1 \times 2 \times \cdots \times n$. Quelle fonction<br/>
renvoie $n!$ pour un entier $n \geq 1$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Accumulateur de produit : initialisation à $1$, multiplication à<br/>
chaque tour. Pour une somme, on initialise à $0$ et l'on ajoute.</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[<pre><code>def fact(n):
    p = 1
    for k in range(1, n + 1):
        p = p * k
    return p</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le produit démarre à $1$ et <code>k</code> parcourt les<br/>
entiers de $1$ à $n$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>def fact(n):
    p = 0
    for k in range(1, n + 1):
        p = p * k
    return p</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un produit initialisé à $0$ reste nul. Le produit vide<br/>
vaut $1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>def fact(n):
    p = 1
    for k in range(n):
        p = p * k
    return p</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(n)</code> commence à $0$, donc le produit vaut $0$ dès<br/>
le premier tour.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>def fact(n):
    p = 1
    for k in range(1, n + 1):
        p = p + k
    return p</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette fonction calcule une somme, $1 + 1 + 2 + \cdots +<br/>
n$, et non un produit.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q20 : La suite de Fibonacci</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>fibo(7)</code> ?</p>
<pre><code>def fibo(n):
    L = [1, 1]
    while len(L) &lt; n:
        L.append(L[-1] + L[-2])
    return L</code></pre>
<p>On rappelle que <code>L[-1]</code> et <code>L[-2]</code> désignent le dernier et<br/>
l'avant-dernier élément de <code>L</code>.</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Suite de Fibonacci : $F_0 = F_1 = 1$ et $F_{n+2} = F_{n+1} + F_n$.<br/>
Elle modélise le problème des lapins posé par Fibonacci.</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><code>[1, 1, 2, 3, 5, 8, 13]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque nouveau terme est la somme des deux<br/>
précédents, et la boucle s'arrête quand la liste contient $7$<br/>
éléments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 1, 2, 3, 5, 8, 13, 21]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition <code>len(L) &lt; 7</code> devient fausse dès que la<br/>
liste compte $7$ éléments. Aucun huitième terme n'est ajouté.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 2, 3, 4, 5, 6, 7]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on ajoute la somme des deux derniers termes, pas le<br/>
terme précédent augmenté de $1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 1, 2, 4, 8, 16, 32]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque terme est la somme des <strong>deux</strong> derniers, pas le<br/>
double du dernier.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q21 : Une suite de Syracuse</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On part de l'entier $6$ et l'on applique la règle suivante : un<br/>
entier pair est divisé par $2$, un entier impair est remplacé par<br/>
son triple augmenté de $1$. Que renvoie <code>syracuse(6)</code> ?</p>
<pre><code>def syracuse(n):
    L = [n]
    while n != 1:
        if n % 2 == 0:
            n = n // 2
        else:
            n = 3 * n + 1
        L.append(n)
    return L</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On observe sur les exemples que la suite finit toujours par<br/>
atteindre $1$, mais personne n'a jamais su le démontrer : c'est la<br/>
conjecture de Syracuse.</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><code>[6, 3, 10, 5, 16, 8, 4, 2, 1]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $6 \to 3 \to 10 \to 5 \to 16 \to 8 \to 4 \to 2<br/>
\to 1$, et la boucle s'arrête quand $n$ vaut $1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[3, 10, 5, 16, 8, 4, 2, 1]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la liste est initialisée avec la valeur de départ $6$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[6, 3, 10, 5, 16, 8, 4, 2]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur $1$ est ajoutée à la liste avant que la<br/>
condition <code>n != 1</code> ne soit testée à nouveau.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[6, 3, 9, 27, 82, 41]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un entier impair est remplacé par $3n + 1$ : $3$ donne<br/>
$10$, pas $9$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q22 : Les pentes des sécantes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>pentes(1)</code> pour $f(x) = x^2$ ?</p>
<pre><code>def f(x):
    return x ** 2

def pentes(a):
    return [(f(a + h) - f(a)) / h for h in [1, 0.1, 0.01]]</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La pente de la sécante entre les points d'abscisses $a$ et $a + h$<br/>
est $\dfrac{f(a + h) - f(a)}{h}$. Quand $h$ se rapproche de $0$,<br/>
elle se rapproche du nombre dérivé $f'(a)$.</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><code>[3.0, 2.1, 2.01]</code> environ</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le taux de variation de $x^2$ entre $1$ et<br/>
$1 + h$ vaut $2 + h$. Ces pentes se rapprochent de<br/>
$f'(1) = 2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[4, 1.21, 1.0201]</code> environ</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont les images $f(1 + h)$, pas les taux de<br/>
variation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[2, 2, 2]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $2$ est la limite des pentes, le nombre dérivé. Les<br/>
pentes des sécantes en diffèrent de $h$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 0.1, 0.01]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont les valeurs du pas <code>h</code>, pas les pentes des<br/>
sécantes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q23 : Une étape de la méthode de Newton</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La méthode de Newton approche une solution de $f(x) = 0$ en<br/>
remplaçant $x$ par l'abscisse du point où la tangente en $x$ coupe<br/>
l'axe des abscisses. Pour $f(x) = x^2 - 2$ et $x = 1$, quelle est la<br/>
nouvelle valeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une étape de Newton remplace $x$ par $x - \dfrac{f(x)}{f'(x)}$. Pour<br/>
$x^2 - 2$, les valeurs $1$, $1{,}5$, $1{,}41\overline{6}$…<br/>
s'approchent très vite de $\sqrt{2}$.</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>$1{,}5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la tangente en $1$ a pour équation<br/>
$y = f'(1)(x - 1) + f(1) = 2(x - 1) - 1$ ; elle coupe l'axe pour<br/>
$x = 1{,}5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de signe : la nouvelle valeur est<br/>
$x - \dfrac{f(x)}{f'(x)} = 1 - \dfrac{-1}{2}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la tangente en $1$ a pour pente $f'(1) = 2$, pas $1$.<br/>
On divise $f(1)$ par cette pente.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\sqrt{2}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $\sqrt{2}$ est la solution cherchée. Une étape de la<br/>
méthode n'en donne qu'une valeur approchée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q24 : Programmer la méthode de Newton</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On définit <code>f</code> et sa dérivée <code>df</code>. Quelle ligne compléter pour<br/>
programmer la méthode de Newton ?</p>
<pre><code>def newton(x, n):
    for i in range(n):
        ...
    return x</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La tangente en $x_n$ a pour équation<br/>
$y = f'(x_n)(t - x_n) + f(x_n)$ ; elle s'annule pour<br/>
$t = x_n - \dfrac{f(x_n)}{f'(x_n)}$, lorsque $f'(x_n) \neq 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="100" format="html">
    <text><![CDATA[<p><code>x = x - f(x) / df(x)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est l'abscisse du point d'intersection de la<br/>
tangente en $x$ avec l'axe des abscisses.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x = x + f(x) / df(x)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de signe : la tangente coupe l'axe en<br/>
$x - \dfrac{f(x)}{f'(x)}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x = x - df(x) / f(x)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le quotient est renversé. On divise $f(x)$ par la<br/>
pente $f'(x)$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x = f(x) / df(x)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il manque le point de départ $x$. On corrige la valeur<br/>
actuelle, on ne la remplace pas par le quotient.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q25 : La méthode d'Euler pour l'exponentielle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>L'exponentielle vérifie $f' = f$ et $f(0) = 1$. La méthode d'Euler<br/>
de pas $h$ remplace $f(x + h)$ par l'approximation affine<br/>
$f(x) + h f'(x)$. Avec $h = 0{,}5$, quelle valeur approchée de<br/>
$f(1)$ obtient-on en deux pas ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour l'exponentielle, un pas d'Euler donne<br/>
$f(x + h) \approx (1 + h) f(x)$. En $n$ pas de longueur<br/>
$\dfrac{1}{n}$, on obtient $\left(1 + \dfrac{1}{n}\right)^n$, qui<br/>
se rapproche de $e$ quand $n$ grandit.</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>$2{,}25$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque pas multiplie par $1 + h = 1{,}5$ :<br/>
$f(0{,}5) \approx 1{,}5$ puis $f(1) \approx 1{,}5^2 = 2{,}25$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $1 + 0{,}5 + 0{,}5$ ajoute deux fois le même<br/>
accroissement, alors que la pente change : au second pas, elle<br/>
vaut $1{,}5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$e \approx 2{,}718$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la valeur exacte. La méthode d'Euler n'en donne<br/>
qu'une approximation, d'autant meilleure que le pas est petit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1{,}5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $1{,}5$ approche $f(0{,}5)$. Il faut un second pas pour<br/>
atteindre $x = 1$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q26 : Approcher le nombre e</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On calcule $\left(1 + \dfrac{1}{n}\right)^n$ pour $n = 10$, $100$,<br/>
$1\,000$ et on obtient environ $2{,}594$, $2{,}705$ et $2{,}717$. Que<br/>
suggèrent ces valeurs ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le programme propose d'approcher $e$ à l'aide de la suite<br/>
$\left(\left(1 + \dfrac{1}{n}\right)^n\right)$, lien direct avec la<br/>
méthode d'Euler appliquée à l'exponentielle.</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>Elles se rapprochent de $e$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ces valeurs s'approchent de<br/>
$e \approx 2{,}718$ à mesure que $n$ grandit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elles se rapprochent de $1$, car $1 + \dfrac{1}{n}$ tend vers $1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'exposant $n$ grandit en même temps. Les valeurs<br/>
calculées augmentent et s'éloignent de $1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elles augmentent sans limite, comme $n$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les écarts entre valeurs successives diminuent<br/>
nettement : rien ne suggère une croissance sans limite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elles sont toutes égales à $e$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont des valeurs approchées, distinctes et<br/>
croissantes, qui se rapprochent de $e$ sans l'atteindre.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q27 : Estimer pi par Monte-Carlo</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le module <code>random</code> est importé. Que renvoie <code>estime(100000)</code>,<br/>
environ ?</p>
<pre><code>def estime(n):
    c = 0
    for i in range(n):
        x = random.random()
        y = random.random()
        if x ** 2 + y ** 2 &lt;= 1:
            c = c + 1
    return 4 * c / n</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode de Monte-Carlo : on tire des points au hasard dans le carré<br/>
$[0\,;\,1] \times [0\,;\,1]$ ; la fréquence des points sous l'arc<br/>
de cercle approche l'aire du quart de disque, $\dfrac{\pi}{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="100" format="html">
    <text><![CDATA[<p>Une valeur proche de $\pi$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le quart de disque de rayon $1$ occupe une<br/>
proportion $\dfrac{\pi}{4}$ du carré unité. La fréquence<br/>
multipliée par $4$ approche $\pi$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une valeur proche de $\dfrac{\pi}{4}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $\dfrac{c}{n}$ approche $\dfrac{\pi}{4}$, mais la<br/>
fonction multiplie cette fréquence par $4$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Exactement $\pi$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat dépend du hasard. Il fluctue autour de<br/>
$\pi$ et varie d'un appel à l'autre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une valeur proche de $1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les points ne tombent pas tous dans le quart de disque :<br/>
ceux proches du coin $(1\,;\,1)$ en sortent.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q28 : Aire sous la parabole par Monte-Carlo</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour estimer l'aire sous la courbe de $x \mapsto x^2$ entre $0$ et<br/>
$1$, on tire des points au hasard dans le carré unité. Quelle<br/>
condition compte les points situés sous la courbe ?</p>
<pre><code>x = random.random()
y = random.random()
if ...:
    c = c + 1</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La fréquence des points sous la courbe approche l'aire cherchée,<br/>
qui vaut $\dfrac{1}{3}$ ; en terminale, le calcul intégral confirme<br/>
cette valeur.</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><code>y &lt;= x ** 2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le point $(x\,;\,y)$ est sous la courbe lorsque<br/>
son ordonnée ne dépasse pas l'image $x^2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x &lt;= y ** 2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les rôles de $x$ et de $y$ sont échangés. On compare<br/>
l'ordonnée du point à l'image de son abscisse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>y &gt;= x ** 2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette condition compte les points <strong>au-dessus</strong> de la<br/>
courbe. Leur fréquence approche $1$ moins l'aire cherchée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x <strong> 2 + y </strong> 2 &lt;= 1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette condition caractérise le quart de disque, qui<br/>
sert à estimer $\pi$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q29 : La méthode d'Archimède</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour approcher $\pi$, Archimède inscrit dans un cercle de rayon $1$<br/>
des polygones réguliers dont il double le nombre de côtés. Que<br/>
devient le demi-périmètre de ces polygones ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En encadrant le cercle entre polygones inscrits et circonscrits à<br/>
$96$ côtés, Archimède obtient<br/>
$3 + \dfrac{10}{71} &lt; \pi &lt; 3 + \dfrac{1}{7}$.</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 se rapproche de $\pi$ en restant inférieur à $\pi$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un polygone inscrit a un périmètre plus petit que<br/>
celui du cercle, $2\pi$, et s'en rapproche quand le nombre de<br/>
côtés augmente.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il se rapproche de $\pi$ en restant supérieur à $\pi$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le cas de polygones <strong>circonscrits</strong>, qui<br/>
entourent le cercle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il reste égal à $3$ quel que soit le nombre de côtés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $3$ est le demi-périmètre de l'hexagone inscrit. Il<br/>
augmente quand on double le nombre de côtés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il augmente sans limite avec le nombre de côtés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le polygone reste à l'intérieur du cercle, donc son<br/>
périmètre ne dépasse jamais $2\pi$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q30 : Moyenne simulée d'un gain</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le module <code>random</code> est importé. Un jeu fait gagner $10$ euros avec<br/>
probabilité $0{,}2$ et perdre $2$ euros sinon. Autour de quelle<br/>
valeur la fonction suivante renvoie-t-elle ses résultats pour<br/>
<code>n = 100000</code> ?</p>
<pre><code>def gain_moyen(n):
    s = 0
    for i in range(n):
        if random.random() &lt; 0.2:
            s = s + 10
        else:
            s = s - 2
    return s / n</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur un grand nombre de parties, la moyenne des gains simulés se<br/>
rapproche de l'espérance de la variable aléatoire.</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>$0{,}4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la moyenne des gains simulés est proche de<br/>
l'espérance $10 \times 0{,}2 - 2 \times 0{,}8 = 0{,}4$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la moyenne de $10$ et de $-2$ ignore les probabilités.<br/>
Le gain de $10$ euros n'arrive qu'une fois sur cinq.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1{,}6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $2 \times 0{,}8 = 1{,}6$ est la perte moyenne. Il faut<br/>
la retrancher du gain moyen $10 \times 0{,}2 = 2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $0{,}2$ est la probabilité de gagner, pas le gain<br/>
moyen.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q31 : Somme des éléments d'une liste par parcours</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>L = [4, 7, 1]
s = 0
for x in L:
    s = s + x
print(s)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Parcours par éléments avec un accumulateur : le schéma de base de<br/>
la somme d'une liste.</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><code>12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle ajoute chaque élément à <code>s</code>, qui<br/>
finit par contenir la somme $12$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>7</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $7$ est le plus grand élément, pas la somme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $3$ est le nombre d'éléments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>s</code> est modifié à chaque tour, il ne reste pas à $0$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q32 : Minimum d'une liste par parcours</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>L = [5, 2, 8, 3]
m = L[0]
for x in L:
    if x &lt; m:
        m = x
print(m)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Initialiser <code>m</code> au premier élément puis comparer chaque élément :<br/>
le minimum sans fonction prédéfinie.</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><code>2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>m</code> est remplacé chaque fois qu'un élément plus<br/>
petit apparaît ; à la fin, il contient le minimum $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>8</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le test <code>x &lt; m</code> cherche le plus <strong>petit</strong> ; le maximum<br/>
demanderait <code>x &gt; m</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $5$ n'est que la valeur initiale de <code>m</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>m</code> est initialisé à <code>L[0]</code>, pas à $0$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q33 : Compter les éléments au-dessus d'un seuil</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>notes = [12, 7, 15, 9, 20]
c = 0
for n in notes:
    if n &gt;= 10:
        c = c + 1
print(c)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Compteur conditionnel : incrémenter seulement quand le test est<br/>
vrai.</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><code>3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le compteur augmente pour chaque note<br/>
supérieure ou égale à $10$ ; il y en a $3$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $5$ est le nombre total de notes, sans la condition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>47</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $47$ est la somme des notes ; le programme compte, il<br/>
n'additionne pas les valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>10</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $10$ est le seuil, pas le résultat.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q34 : L'indice du maximum en cas d'égalité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>L = [4, 9, 2, 9]
imax = 0
for i in range(len(L)):
    if L[i] &gt;= L[imax]:
        imax = i
print(imax)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le choix entre <code>&gt;</code> et <code>&gt;=</code> décide quelle occurrence du maximum<br/>
est retenue : la première ou la dernière.</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><code>3</code>, la dernière occurrence de $9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec <code>&gt;=</code>, une égalité remplace <code>imax</code> ; le<br/>
programme retient la <strong>dernière</strong> position du maximum.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1</code>, la première occurrence de $9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat avec <code>&gt;</code> strict ; <code>&gt;=</code> continue<br/>
de mettre <code>imax</code> à jour en cas d'égalité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>9</code>, la valeur du maximum</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche un indice, pas une valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>0</code>, <code>imax</code> ne changeant jamais</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : dès qu'un élément dépasse ou égale <code>L[0]</code>, <code>imax</code><br/>
change.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q35 : Un terme d'une suite récurrente par une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La suite $(u_n)$ est définie par $u_0 = 1$ et<br/>
$u_{n+1} = 2u_n + 1$. Qu'affiche ce programme ?<br/>
<pre><code>u = 1
for k in range(3):
    u = 2 * u + 1
print(u)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour calculer $u_n$, on part de $u_0$ et on applique $n$ fois la<br/>
relation de récurrence : <code>range(n)</code> fait exactement $n$ tours.</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><code>15</code>, la valeur de $u_3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : trois tours de boucle calculent $u_1$, $u_2$<br/>
puis $u_3 = 15$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>7</code>, la valeur de $u_2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(3)</code> fait trois tours, pas deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>31</code>, la valeur de $u_4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(3)</code> fait trois tours, pas quatre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1</code>, la valeur de $u_0$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>u</code> est modifié à chaque tour.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q36 : Liste des premiers termes d'une suite arithmétique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche <code>print([3 + 2 * k for k in range(5)])</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une liste en compréhension génère les termes $u_k = 3 + 2k$ :<br/>
une suite arithmétique sous forme explicite.</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><code>[3, 5, 7, 9, 11]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour <code>k</code> de $0$ à $4$, on obtient les cinq<br/>
premiers termes de la suite arithmétique de premier terme $3$<br/>
et de raison $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[5, 7, 9, 11, 13]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(5)</code> commence à $0$, le premier terme est donc<br/>
$3$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[3, 5, 7, 9]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(5)</code> produit cinq valeurs, de $0$ à $4$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[3, 6, 12, 24, 48]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>3 + 2 * k</code> est une expression affine, pas une<br/>
puissance ; la suite est arithmétique.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q37 : Un algorithme de seuil pour une suite croissante</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>u = 10
n = 0
while u &lt; 100:
    u = 1.5 * u
    n = n + 1
print(n)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un algorithme de seuil répète la relation de récurrence jusqu'à<br/>
dépasser la valeur visée et compte les étapes.</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><code>6</code>, premier rang où $u_n \geq 100$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque tour multiplie <code>u</code> par $1{,}5$ et<br/>
incrémente <code>n</code> ; la boucle s'arrête quand <code>u</code> atteint ou<br/>
dépasse $100$, soit $u_{6} \approx 113{,}9$, après $6$<br/>
tours.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code>, dernier rang où $u_n &lt; 100$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : au rang $5$, <code>u</code> est encore sous le seuil ; la<br/>
boucle fait un tour de plus.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>113{,}9</code>, la valeur finale de <code>u</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche <code>n</code>, pas <code>u</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>100</code>, le seuil de la boucle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $100$ est le seuil, pas le nombre de tours.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q38 : Moyenne avec sum et len</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Avec <code>L = [4, 7, 1]</code>, que vaut <code>sum(L) / len(L)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>sum</code> et <code>len</code> suffisent pour calculer une moyenne sans boucle.</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><code>4.0</code>, le quotient de $12$ par $3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>sum(L)</code> vaut $12$, <code>len(L)</code> vaut $3$, et la<br/>
division <code>/</code> donne un flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>12</code>, la somme des éléments seule</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la somme est ensuite divisée par <code>len(L)</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code>, le nombre d'éléments seul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>len(L)</code> est le diviseur, pas le résultat.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4</code>, un quotient entier de $12$ par $3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>/</code> renvoie toujours un flottant, ici <code>4.0</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q39 : Additionner deux listes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut <code>[1, 2] + [3]</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comme pour les chaînes, <code>+</code> juxtapose deux listes.</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><code>[1, 2, 3]</code>, les deux listes mises bout à bout</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : entre deux listes, <code>+</code> concatène.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[4, 5]</code>, chaque élément augmenté de $3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>+</code> ne fait pas de calcul terme à terme sur les<br/>
listes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[[1, 2], 3]</code>, la seconde liste ajoutée comme élément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat de <code>[[1, 2]] + [3]</code> ou<br/>
d'un <code>append</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, les listes n'ayant pas la même longueur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la concaténation n'impose aucune longueur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q40 : Transformer et filtrer une liste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Avec <code>L = [2, 5, 3]</code>, que vaut <code>[x * 2 for x in L if x &gt; 2]</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dans une compréhension, le filtre <code>if</code> sélectionne les éléments et<br/>
l'expression de tête les transforme.</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><code>[10, 6]</code>, les éléments supérieurs à $2$ doublés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : seuls $5$ et $3$ passent le filtre, puis<br/>
chacun est doublé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[4, 10, 6]</code>, tous les éléments doublés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition <code>if x &gt; 2</code> écarte $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[5, 3]</code>, les éléments retenus sans transformation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'expression <code>x * 2</code> s'applique à chaque élément<br/>
retenu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[10, 6, 4]</code>, les éléments doublés puis rangés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une compréhension ne trie pas et exclut $2$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q41 : Chercher une valeur avec une boucle tant que</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>L = [6, 2, 8, 2, 5]
i = 0
while L[i] != 2:
    i = i + 1
print(i)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une boucle <code>while</code> permet d'arrêter un parcours dès que la valeur<br/>
cherchée est trouvé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="100" format="html">
    <text><![CDATA[<p><code>1</code>, l'indice de la première occurrence de $2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle avance tant que <code>L[i]</code> diffère de<br/>
$2$ et s'arrête sur la première case qui le contient.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code>, l'indice de la dernière occurrence de $2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la boucle s'arrête dès la première occurrence.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code>, la valeur cherchée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche l'indice <code>i</code>, pas la valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code>, la longueur de la liste</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la boucle s'arrête avant d'avoir parcouru toute la<br/>
liste.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q42 : Une récurrence qui dépend du rang</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>u = 1
for n in range(4):
    u = u + 2 * n + 1
print(u)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Quand la relation de récurrence fait intervenir $n$, la variable de<br/>
boucle fournit ce rang à chaque tour.</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><code>17</code>, soit $1 + 4^2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les ajouts valent $1, 3, 5, \ldots$ pour<br/>
$n = 0, 1, 2, \ldots$ ; leur somme sur $4$ tours vaut $4^2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>26</code>, un tour de plus</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(4)</code> fait exactement $4$ tours, de $n = 0$<br/>
à $n = 3$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>8</code>, le dernier ajout seul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>u</code> accumule tous les ajouts depuis $1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>16</code>, sans le terme initial</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>u</code> part de $1$, pas de $0$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q43 : Somme harmonique dépassant un seuil</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>s = 0
n = 0
while s &lt; 2:
    n = n + 1
    s = s + 1 / n
print(n)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un algorithme de seuil sur une somme ajoute les termes un à un et<br/>
compte le rang atteint.</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><code>4</code>, premier rang où la somme atteint $2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les sommes successives valent $1$ ; $1{,}5$ ;<br/>
environ $1{,}83$ ; environ $2{,}08$ : la boucle s'arrête au<br/>
quatrième terme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code>, dernier rang où la somme reste sous $2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour $n = 3$, <code>s</code> vaut environ $1{,}83 &lt; 2$ et la<br/>
boucle continue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2.083…</code>, la valeur finale de la somme <code>s</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche <code>n</code>, pas <code>s</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code>, le seuil comparé à la somme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $2$ est la valeur comparée, pas le nombre de termes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q44 : Simuler un succès de probabilité 0,3</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>from random import random
c = 0
for i in range(1000):
    if random() &lt; 0.3:
        c = c + 1
print(c / 1000)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comparer <code>random()</code> à $p$ simule une épreuve de succès de<br/>
probabilité $p$.</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>Un nombre proche de <code>0.3</code>, variable d'une exécution à l'autre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>random() &lt; 0.3</code> est vrai avec une probabilité<br/>
$0{,}3$ ; la fréquence observée sur $1000$ essais s'en<br/>
approche sans être exacte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Exactement <code>0.3</code>, la probabilité programmée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une fréquence simulée fluctue autour de la<br/>
probabilité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>300</code>, le nombre de succès</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme divise <code>c</code> par $1000$ et <code>c</code> n'est pas<br/>
exactement $300$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un nombre proche de <code>0.5</code>, <code>random</code> étant uniforme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>random()</code> est uniforme sur $[0 ; 1[$, donc inférieur<br/>
à $0{,}3$ trois fois sur dix en moyenne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q45 : Balayage au pas de un dixième</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>def f(x):
    return x ** 2 - 2

k = 0
while f(1 + k / 10) &lt; 0:
    k = k + 1
print(1 + k / 10)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le balayage à pas fixe encadre la solution de $f(x) = 0$ entre deux<br/>
valeurs consécutives de signes contraires.</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><code>1.5</code>, première valeur où $f(x) \geq 0$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $f(1{,}4) = -0{,}04 &lt; 0$ et $f(1{,}5) = 0{,}25$ ;<br/>
la boucle s'arrête pour $k = 5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1.4</code>, dernière valeur où $f(x) &lt; 0$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : en $1{,}4$ la condition est encore vraie, la boucle<br/>
continue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1.4142…</code>, la racine carrée de $2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le balayage ne s'arrête que sur les valeurs<br/>
$1 + \frac{k}{10}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code>, le nombre de tours de la boucle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche <code>1 + k / 10</code>, pas <code>k</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
