<?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 L = [4, 9, 2, 7]. Que vaut L[1] ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dans une liste de n éléments, les indices vont de 0 à n - 1 :<br/>
L[0] est le premier élément, L[n - 1] 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="0" format="html">
    <text><![CDATA[<p>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : L[1] désigne l'élément d'indice 1, pas le nombre<br/>
1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les indices commencent à 0. L[0] vaut 4 et<br/>
L[1] 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 L[0]. 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 L[2], le troisième élément de la liste.</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 L = [3, 8, 5, 1, 6]. Quelle expression désigne le dernier<br/>
élément de L ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>len(L) renvoie le nombre d'éléments. Le dernier élément est<br/>
L[len(L) - 1].</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L[len(L)]</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>len(L)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : len(L) 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>L[len(L) - 2]</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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>L[len(L) - 1]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : len(L) vaut 5, et le dernier indice est<br/>
5 - 1 = 4 : L[4] vaut 6.</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 L après ces instructions ?</p>
<p>`<code>python<br/>
L = [5, 2]<br/>
L.append(8)<br/>
L.append(1)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L.append(x) ajoute x à la fin de L. Partir de [] 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="0" format="html">
    <text><![CDATA[<p>[5, 2, 9]</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="100" format="html">
    <text><![CDATA[<p>[5, 2, 8, 1]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : append 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>[8, 1, 5, 2]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : append ajoute en fin de liste, pas au début.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[1, 2, 5, 8]</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 [k ** 2 for k in range(5)] ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>[expression for k in range(n)] construit la liste des valeurs de<br/>
l'expression pour k 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>[0, 1, 4, 9, 16]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : k 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>[0, 1, 2, 3, 4]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont les valeurs de k, avant d'appliquer<br/>
l'expression k ** 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[0, 2, 4, 6, 8]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : k ** 2 est le carré de k, pas son double.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[1, 4, 9, 16, 25]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(5) commence à 0 et s'arrête à 4. Le carré<br/>
de 5 n'y figure pas.</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 [n for n in range(1, 20) if n % 4 == 0] ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La condition placée après if 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="0" format="html">
    <text><![CDATA[<p>[0, 4, 8, 12, 16]</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>[4, 8, 12, 16, 20]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(1, 20) s'arrête à 19. L'entier 20 n'est pas<br/>
examiné.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[4, 8, 12, 16]</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>[1, 2, 3, 4]</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 L après ces instructions ?</p>
<p>`<code>python<br/>
L = [10, 20, 30, 40]<br/>
L[2] = L[0] + L[3]<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L[i] = valeur remplace l'élément d'indice i. 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="0" format="html">
    <text><![CDATA[<p>[10, 20, 30, 40, 50]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une affectation L[2] = … remplace un élément, elle<br/>
n'ajoute rien à la liste.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[10, 20, 60, 40]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : L[3] vaut 40 et non 30 : les indices commencent<br/>
à 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[10, 50, 30, 40]</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="100" format="html">
    <text><![CDATA[<p>[10, 20, 50, 40]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : L[0] + L[3] vaut 10 + 40 = 50, et cette<br/>
valeur remplace l'élément d'indice 2, qui valait 30.</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 L après ces instructions ?</p>
<p>`<code>python<br/>
L = [7, 3, 9, 3]<br/>
L.remove(3)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L.remove(x) retire la première occurrence de la valeur x ;<br/>
del L[i] retire l'élément d'indice i.</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, 3, 3]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : remove(3) supprime la valeur 3, pas l'élément<br/>
d'indice 3 ni celui d'indice 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[7, 9, 3]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : remove(3) 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>[7, 3, 9]</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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[7, 9]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : remove ne supprime qu'une occurrence, la première<br/>
rencontrée.</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 L à la fin de ce programme ?</p>
<p>`<code>python<br/>
L = []<br/>
for k in range(1, 5):<br/>
    L.append(3 * k - 1)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même résultat s'obtient en compréhension :<br/>
[3 * k - 1 for k in range(1, 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="100" format="html">
    <text><![CDATA[<p>[2, 5, 8, 11]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour k 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>[-1, 2, 5, 8]</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>[11]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : append ajoute un élément à chaque tour, sans effacer<br/>
les précédents.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[2, 5, 8, 11, 14]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(1, 5) s'arrête à 4. La valeur k = 5 n'est<br/>
pas prise.</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>
<p>`<code>python<br/>
s = 0<br/>
for x in [4, 1, 6]:<br/>
    s = s + x<br/>
print(s)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>for x in L: donne à x chacun des éléments de L, 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="0" format="html">
    <text><![CDATA[<p>3, soit 0 + 1 + 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : for x in L parcourt les <strong>éléments</strong> de la liste, pas<br/>
ses indices.</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 s part de 0 et reçoit s + x.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>6</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : s accumule toutes les valeurs, elle ne garde pas<br/>
seulement la dernière.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>11</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : x prend successivement les valeurs 4, 1 et<br/>
6, que l'on additionne.</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>
<p>`<code>python<br/>
L = [5, 8, 2, 9]<br/>
for i in range(len(L)):<br/>
    if L[i] &gt; 6:<br/>
        print(i)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>for i in range(len(L)) parcourt les indices ; on accède à<br/>
l'élément par L[i]. 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="0" format="html">
    <text><![CDATA[<p>8 puis 9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche i, l'indice, et non L[i],<br/>
l'élément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2 puis 4</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="100" format="html">
    <text><![CDATA[<p>1 puis 3</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>2</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>
<p>`<code>python<br/>
def maximum(L):<br/>
    m = L[0]<br/>
    for x in L:<br/>
        if x &gt; m:<br/>
            ...<br/>
    return m<br/>
</code>`</p>]]></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="0" format="html">
    <text><![CDATA[<p>x = m</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'affectation est à l'envers. m ne change jamais et<br/>
reste égal à L[0].</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>m = m + x</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : m deviendrait une somme partielle, pas un maximum.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>return x</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction s'arrêterait au premier élément plus grand<br/>
que L[0], sans examiner la suite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>m = x</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>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et listes — Q12 : Compter des occurrences</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie compte([1, 3, 1, 1, 2], 1) ?</p>
<p>`<code>python<br/>
def compte(L, v):<br/>
    c = 0<br/>
    for x in L:<br/>
        if x == v:<br/>
            c = c + 1<br/>
    return c / len(L)<br/>
</code>`</p>]]></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="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="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 ⅗.</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 len(L) le<br/>
transforme en fréquence.</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 à v, 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 V et E contiennent les valeurs d'une série et leurs<br/>
effectifs. Que renvoie moy([2, 5, 10], [3, 1, 1]) ?</p>
<p>`<code>python<br/>
def moy(V, E):<br/>
    s = 0<br/>
    for i in range(len(V)):<br/>
        s = s + V[i] * E[i]<br/>
    return s / sum(E)<br/>
</code>`</p>]]></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="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/>
sum(E), et non par le nombre de valeurs distinctes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>4{,}2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 2 × 3 + 5 × 1 + 10 × 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>
</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 X avec les<br/>
probabilités de la liste P. 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[<p>`<code>python<br/>
def esperance(X, P):<br/>
    return sum([X[i] * P[i] for i in range(len(X))])<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : E = ∑ xᵢ pᵢ. La liste en compréhension<br/>
contient les produits, sum les additionne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>python<br/>
def esperance(X, P):<br/>
    return sum(X) / len(X)<br/>
</code>`</p>]]></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[<p>`<code>python<br/>
def esperance(X, P):<br/>
    return sum(X) * sum(P)<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sum(P) 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[<p>`<code>python<br/>
def esperance(X, P):<br/>
    return sum([X[i] * P[i] for i in range(len(X))]) / len(X)<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la somme des xᵢ pᵢ 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ₙ) vérifie u₀ = 3 et uₙ₊₁ = uₙ + 2.<br/>
Que renvoie terme(3) ?</p>
<p>`<code>python<br/>
def terme(n):<br/>
    u = 3<br/>
    for i in range(n):<br/>
        u = u + (2)<br/>
    return u<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour calculer uₙ à partir d'une relation de récurrence, on<br/>
initialise avec u₀ 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₀ à<br/>
u₃.</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>
  <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. range(3) produit 3 valeurs de<br/>
i.</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 termes(4) ?</p>
<p>`<code>python<br/>
def termes(n):<br/>
    u = 1<br/>
    L = [u]<br/>
    for i in range(n):<br/>
        u = 2 * u + 1<br/>
        L.append(u)<br/>
    return L<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour obtenir la liste [u₀, …, uₙ], on range u₀ 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="0" format="html">
    <text><![CDATA[<p>[3, 7, 15, 31]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la liste est initialisée avec u₀ avant la boucle, il<br/>
faut le compter.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[1, 3, 7, 15]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la boucle fait 4 tours et ajoute 4 termes à u₀ :<br/>
la liste en contient 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[1, 3, 5, 7, 9]</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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[1, 3, 7, 15, 31]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la liste contient u₀ = 1, puis les 4 termes<br/>
suivants calculés par uₙ₊₁ = 2uₙ + 1.</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 somme(3) ?</p>
<p>`<code>python<br/>
def somme(n):<br/>
    u = 2<br/>
    s = 0<br/>
    for k in range(n + 1):<br/>
        s = s + u<br/>
        u = 3 * u<br/>
    return s<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La formule donne le même résultat :<br/>
2 × 3⁴ - 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₀ à u₃ 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>54</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 54 est le terme u₃. La fonction renvoie la somme<br/>
des termes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>26</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(n + 1) 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>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>
<p>`<code>python<br/>
def seuil():<br/>
    p = 5000<br/>
    n = 0<br/>
    while p &gt;= 2500:<br/>
        p = 0.9 * p<br/>
        n = n + 1<br/>
    return n<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Algorithme de seuil : la boucle while 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="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 n, 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 p &gt;= 2500 est<br/>
fausse : l'année renvoyée est la première sous le seuil.</p>]]></text>
    </feedback>
  </answer>
  <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 n<br/>
compte les années écoulées. On trouve n = 7.</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. n 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 × 2 × ⋯ × n. Quelle fonction<br/>
renvoie n! pour un entier n ≥ 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="0" format="html">
    <text><![CDATA[<p>`<code>python<br/>
def fact(n):<br/>
    p = 1<br/>
    for k in range(n):<br/>
        p = p * k<br/>
    return p<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(n) commence à 0, donc le produit vaut 0 dès<br/>
le premier tour.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>python<br/>
def fact(n):<br/>
    p = 0<br/>
    for k in range(1, n + 1):<br/>
        p = p * k<br/>
    return p<br/>
</code>`</p>]]></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="100" format="html">
    <text><![CDATA[<p>`<code>python<br/>
def fact(n):<br/>
    p = 1<br/>
    for k in range(1, n + 1):<br/>
        p = p * k<br/>
    return p<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le produit démarre à 1 et k parcourt les<br/>
entiers de 1 à n.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>python<br/>
def fact(n):<br/>
    p = 1<br/>
    for k in range(1, n + 1):<br/>
        p = p + k<br/>
    return p<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette fonction calcule une somme, 1 + 1 + 2 + ⋯ + 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 fibo(7) ?</p>
<p>`<code>python<br/>
def fibo(n):<br/>
    L = [1, 1]<br/>
    while len(L) &lt; n:<br/>
        L.append(L[-1] + L[-2])<br/>
    return L<br/>
</code></p>
<p>On rappelle que L[-1] et L[-2] désignent le dernier et<br/>
l'avant-dernier élément de L`.</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Suite de Fibonacci : F₀ = F₁ = 1 et Fₙ₊₂ = Fₙ₊₁ + Fₙ.<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="0" format="html">
    <text><![CDATA[<p>[1, 1, 2, 4, 8, 16, 32]</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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[1, 1, 2, 3, 5, 8, 13, 21]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition len(L) &lt; 7 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="100" format="html">
    <text><![CDATA[<p>[1, 1, 2, 3, 5, 8, 13]</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>[1, 2, 3, 4, 5, 6, 7]</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>
</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 syracuse(6) ?</p>
<p>`<code>python<br/>
def syracuse(n):<br/>
    L = [n]<br/>
    while n != 1:<br/>
        if n % 2 == 0:<br/>
            n = n // 2<br/>
        else:<br/>
            n = 3 * n + 1<br/>
        L.append(n)<br/>
    return L<br/>
</code>`</p>]]></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="0" format="html">
    <text><![CDATA[<p>[6, 3, 9, 27, 82, 41]</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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[6, 3, 10, 5, 16, 8, 4, 2, 1]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1, et la boucle s'arrête quand n vaut 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[6, 3, 10, 5, 16, 8, 4, 2]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur 1 est ajoutée à la liste avant que la<br/>
condition n != 1 ne soit testée à nouveau.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[3, 10, 5, 16, 8, 4, 2, 1]</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>
</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 pentes(1) pour f(x) = x² ?</p>
<p>``python<br/>
def f(x):<br/>
    return x ** 2</p>
<p>def pentes(a):<br/>
    return [(f(a + h) - f(a)) / h for h in [1, 0.1, 0.01]]<br/>
``</p>]]></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 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="0" format="html">
    <text><![CDATA[<p>[1, 0.1, 0.01]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont les valeurs du pas h, pas les pentes des<br/>
sécantes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[4, 1.21, 1.0201] 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>[2, 2, 2]</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="100" format="html">
    <text><![CDATA[<p>[3.0, 2.1, 2.01] environ</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le taux de variation de x² entre 1 et<br/>
1 + h vaut 2 + h. Ces pentes se rapprochent de<br/>
f'(1) = 2.</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 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 - f(x)/f'(x). Pour<br/>
x² - 2, les valeurs 1, 1{,}5, 1{,}41\overline{6}…<br/>
s'approchent très vite de √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="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>√2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : √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>
  <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 - f(x)/f'(x) = 1 - -1/2.</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 f et sa dérivée df. Quelle ligne compléter pour<br/>
programmer la méthode de Newton ?</p>
<p>`<code>python<br/>
def newton(x, n):<br/>
    for i in range(n):<br/>
        ...<br/>
    return x<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La tangente en xₙ a pour équation<br/>
y = f'(xₙ)(t - xₙ) + f(xₙ) ; elle s'annule pour<br/>
t = xₙ - f(xₙ)/f'(xₙ), lorsque f'(xₙ) ≠ 0.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>x = x + f(x) / df(x)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de signe : la tangente coupe l'axe en<br/>
x - f(x)/f'(x).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>x = x - f(x) / df(x)</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>x = x - df(x) / f(x)</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>x = f(x) / df(x)</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) ≈ (1 + h) f(x). En n pas de longueur<br/>
1/n, on obtient (1 + 1/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="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="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>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 (1 + 1/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/>
((1 + 1/n)ⁿ), 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 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elles se rapprochent de 1, car 1 + 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>
</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 random est importé. Que renvoie estime(100000),<br/>
environ ?</p>
<p>`<code>python<br/>
def estime(n):<br/>
    c = 0<br/>
    for i in range(n):<br/>
        x = random.random()<br/>
        y = random.random()<br/>
        if x <strong> 2 + y </strong> 2 &lt;= 1:<br/>
            c = c + 1<br/>
    return 4 * c / n<br/>
</code>`</p>]]></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] × [0 ; 1] ; la fréquence des points sous l'arc<br/>
de cercle approche l'aire du quart de disque, π/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 π</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le quart de disque de rayon 1 occupe une<br/>
proportion π/4 du carré unité. La fréquence<br/>
multipliée par 4 approche π.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Exactement π</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat dépend du hasard. Il fluctue autour de<br/>
π et varie d'un appel à l'autre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une valeur proche de π/4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c/n approche π/4, mais la<br/>
fonction multiplie cette fréquence par 4.</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 ↦ x² 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>
<p>`<code>python<br/>
x = random.random()<br/>
y = random.random()<br/>
if ...:<br/>
    c = c + 1<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La fréquence des points sous la courbe approche l'aire cherchée,<br/>
qui vaut ⅓ ; 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="0" format="html">
    <text><![CDATA[<p>y &gt;= x ** 2</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>x <strong> 2 + y </strong> 2 &lt;= 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette condition caractérise le quart de disque, qui<br/>
sert à estimer π.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>x &lt;= y ** 2</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="100" format="html">
    <text><![CDATA[<p>y &lt;= x ** 2</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².</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 π, 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 + 10/71 &lt; π &lt; 3 + ⅐.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il 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 se rapproche de π en restant supérieur à π</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 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π.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il se rapproche de π en restant inférieur à π</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π, et s'en rapproche quand le nombre de<br/>
côtés augmente.</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 random 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/>
n = 100000 ?</p>
<p>`<code>python<br/>
def gain_moyen(n):<br/>
    s = 0<br/>
    for i in range(n):<br/>
        if random.random() &lt; 0.2:<br/>
            s = s + 10<br/>
        else:<br/>
            s = s - 2<br/>
    return s / n<br/>
</code>`</p>]]></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/>
`<code>python<br/>
L = [4, 7, 1]<br/>
s = 0<br/>
for x in L:<br/>
    s = s + x<br/>
print(s)<br/>
</code>`</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>12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle ajoute chaque élément à s, qui<br/>
finit par contenir la somme 12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : s est modifié à chaque tour, il ne reste pas à 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</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>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 7 est le plus grand élément, pas la somme.</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/>
`<code>python<br/>
L = [5, 2, 8, 3]<br/>
m = L[0]<br/>
for x in L:<br/>
    if x &lt; m:<br/>
        m = x<br/>
print(m)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Initialiser m 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="0" format="html">
    <text><![CDATA[<p>0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : m est initialisé à L[0], pas à 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 5 n'est que la valeur initiale de m.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : m 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>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le test x &lt; m cherche le plus <strong>petit</strong> ; le maximum<br/>
demanderait x &gt; m.</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/>
`<code>python<br/>
notes = [12, 7, 15, 9, 20]<br/>
c = 0<br/>
for n in notes:<br/>
    if n &gt;= 10:<br/>
        c = c + 1<br/>
print(c)<br/>
</code>`</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>3</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>5</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>47</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>10</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/>
`<code>python<br/>
L = [4, 9, 2, 9]<br/>
imax = 0<br/>
for i in range(len(L)):<br/>
    if L[i] &gt;= L[imax]:<br/>
        imax = i<br/>
print(imax)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le choix entre &gt; et &gt;= 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="0" format="html">
    <text><![CDATA[<p>1, la première occurrence de 9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat avec &gt; strict ; &gt;= continue<br/>
de mettre imax à jour en cas d'égalité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>9, 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="100" format="html">
    <text><![CDATA[<p>3, la dernière occurrence de 9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec &gt;=, une égalité remplace imax ; le<br/>
programme retient la <strong>dernière</strong> position du maximum.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0, imax ne changeant jamais</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : dès qu'un élément dépasse ou égale L[0], imax<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ₙ) est définie par u₀ = 1 et<br/>
uₙ₊₁ = 2uₙ + 1. Qu'affiche ce programme ?<br/>
`<code>python<br/>
u = 1<br/>
for k in range(3):<br/>
    u = 2 * u + 1<br/>
print(u)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour calculer uₙ, on part de u₀ et on applique n fois la<br/>
relation de récurrence : range(n) 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="0" format="html">
    <text><![CDATA[<p>31, la valeur de u₄</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(3) fait trois tours, pas quatre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>7, la valeur de u₂</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(3) fait trois tours, pas deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1, la valeur de u₀</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : u est modifié à chaque tour.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>15, la valeur de u₃</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : trois tours de boucle calculent u₁, u₂<br/>
puis u₃ = 15.</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 print([3 + 2 * k for k in range(5)]) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une liste en compréhension génère les termes uₖ = 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="0" format="html">
    <text><![CDATA[<p>[5, 7, 9, 11, 13]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(5) commence à 0, le premier terme est donc<br/>
3.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[3, 6, 12, 24, 48]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 + 2 * k est une expression affine, pas une<br/>
puissance ; la suite est arithmétique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[3, 5, 7, 9, 11]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour k 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>[3, 5, 7, 9]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(5) produit cinq valeurs, de 0 à 4.</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/>
`<code>python<br/>
u = 10<br/>
n = 0<br/>
while u &lt; 100:<br/>
    u = 1.5 * u<br/>
    n = n + 1<br/>
print(n)<br/>
</code>`</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="0" format="html">
    <text><![CDATA[<p>113{,}9, la valeur finale de u</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche n, pas u.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>6, premier rang où uₙ ≥ 100</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque tour multiplie u par 1{,}5 et<br/>
incrémente n ; la boucle s'arrête quand u 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>5, dernier rang où uₙ &lt; 100</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : au rang 5, u 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>100, 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 L = [4, 7, 1], que vaut sum(L) / len(L) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>sum et len 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="0" format="html">
    <text><![CDATA[<p>3, le nombre d'éléments seul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : len(L) est le diviseur, pas le résultat.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>12, la somme des éléments seule</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la somme est ensuite divisée par len(L).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4, un quotient entier de 12 par 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : / renvoie toujours un flottant, ici 4.0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>4.0, le quotient de 12 par 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sum(L) vaut 12, len(L) vaut 3, et la<br/>
division / donne un flottant.</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 [1, 2] + [3] ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comme pour les chaînes, + 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>[1, 2, 3], les deux listes mises bout à bout</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : entre deux listes, + concatène.</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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[[1, 2], 3], la seconde liste ajoutée comme élément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat de [[1, 2]] + [3] ou<br/>
d'un append.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[4, 5], chaque élément augmenté de 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : + ne fait pas de calcul terme à terme sur les<br/>
listes.</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 L = [2, 5, 3], que vaut [x * 2 for x in L if x &gt; 2] ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dans une compréhension, le filtre if 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="0" format="html">
    <text><![CDATA[<p>[4, 10, 6], tous les éléments doublés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition if x &gt; 2 écarte 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[5, 3], les éléments retenus sans transformation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'expression x * 2 s'applique à chaque élément<br/>
retenu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[10, 6, 4], 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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[10, 6], 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>
</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/>
`<code>python<br/>
L = [6, 2, 8, 2, 5]<br/>
i = 0<br/>
while L[i] != 2:<br/>
    i = i + 1<br/>
print(i)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une boucle while 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="0" format="html">
    <text><![CDATA[<p>2, la valeur cherchée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche l'indice i, pas la valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>1, 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 L[i] 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>5, 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3, 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>
</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/>
`<code>python<br/>
u = 1<br/>
for n in range(4):<br/>
    u = u + 2 * n + 1<br/>
print(u)<br/>
</code>`</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>17, soit 1 + 4²</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les ajouts valent 1, 3, 5, … pour<br/>
n = 0, 1, 2, … ; leur somme sur 4 tours vaut 4².</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>16, sans le terme initial</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : u part de 1, pas de 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>8, le dernier ajout seul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : u accumule tous les ajouts depuis 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>26, un tour de plus</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(4) fait exactement 4 tours, de n = 0<br/>
à n = 3.</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/>
`<code>python<br/>
s = 0<br/>
n = 0<br/>
while s &lt; 2:<br/>
    n = n + 1<br/>
    s = s + 1 / n<br/>
print(n)<br/>
</code>`</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="0" format="html">
    <text><![CDATA[<p>3, dernier rang où la somme reste sous 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour n = 3, s vaut environ 1{,}83 &lt; 2 et la<br/>
boucle continue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>4, 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>2, 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2.083…, la valeur finale de la somme s</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche n, pas s.</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/>
`<code>python<br/>
from random import random<br/>
c = 0<br/>
for i in range(1000):<br/>
    if random() &lt; 0.3:<br/>
        c = c + 1<br/>
print(c / 1000)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comparer random() à 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="0" format="html">
    <text><![CDATA[<p>Exactement 0.3, 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>Un nombre proche de 0.5, random étant uniforme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : random() est uniforme sur [0 ; 1[, donc inférieur<br/>
à 0{,}3 trois fois sur dix en moyenne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un nombre proche de 0.3, variable d'une exécution à l'autre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : random() &lt; 0.3 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>300, le nombre de succès</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme divise c par 1000 et c n'est pas<br/>
exactement 300.</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/>
``python<br/>
def f(x):<br/>
    return x ** 2 - 2</p>
<p>k = 0<br/>
while f(1 + k / 10) &lt; 0:<br/>
    k = k + 1<br/>
print(1 + k / 10)<br/>
``</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="0" format="html">
    <text><![CDATA[<p>1.4, 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="100" format="html">
    <text><![CDATA[<p>1.5, première valeur où f(x) ≥ 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>5, le nombre de tours de la boucle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche 1 + k / 10, pas k.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1.4142…, 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 + k/10.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
