<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Première/Représentation du texte</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Codage des caractères (ASCII, ASCII étendu, Unicode), normes UTF-8,<br/>
UTF-16, UTF-32, fonctions Python <code>ord</code> et <code>chr</code>, et formats de texte<br/>
enrichi (HTML, XML, RTF, OpenDocument, TeX).</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q01 : Définition d'ASCII</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que signifie le sigle <strong>ASCII</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le code ASCII est apparu en $1963$ aux États-Unis. Il est conçu<br/>
pour l'anglais et ne contient aucun caractère accentué, ce qui<br/>
a motivé l'apparition d'extensions et de normes plus<br/>
universelles.</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>Architecture Standard pour Calculs et Instructions Internes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ASCII n'est pas lié à l'architecture des<br/>
processeurs. C'est une table de codage de caractères.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Algorithme Standard pour la Compression d'Images</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ASCII concerne le codage de caractères, pas la<br/>
compression d'images.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>American Standard Code for Information Interchange</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est le code historique américain pour<br/>
représenter les caractères texte. Il a été conçu pour<br/>
l'anglais, ce qui explique l'absence des accents.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Acronyme Standard de Compatibilité Inter-Systèmes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sigle inventé. La signification réelle commence<br/>
par « American Standard Code... ».</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q02 : Taille de la table ASCII standard</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien de caractères différents peut-on coder avec l'ASCII<br/>
standard (sur sept bits) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bien que l'ASCII tienne sur $7$ bits, on le stocke en pratique<br/>
sur un octet ($8$ bits), avec le bit de poids fort à $0$. Le<br/>
huitième bit a permis plus tard de définir des extensions à<br/>
$256$ caractères (ASCII étendu, Latin-$1$, etc.).</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>$512$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune table de caractères usuelle ne fait<br/>
$512$ entrées. ASCII fait $128$, les extensions $256$,<br/>
Unicode plus d'un million.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$64$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est $2^6$, donc le nombre de codes possibles<br/>
sur <strong>six</strong> bits. ASCII utilise sept bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$256$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la taille des <strong>extensions</strong> ASCII (sur<br/>
huit bits). L'ASCII standard tient sur sept bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$128$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sur $7$ bits, on a $2^7 = 128$ codes<br/>
possibles, soit autant de caractères représentables. En<br/>
pratique, ASCII n'en utilise que $95$ imprimables et $33$<br/>
de contrôle.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q03 : Code ASCII de la lettre 'A'</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, que renvoie l'expression <code>ord('A')</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mémo utile : A vaut $65$, $a$ vaut $97$. La différence est $32$,<br/>
ce qui correspond au bit $5$ qui distingue majuscule et<br/>
minuscule en ASCII.</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>$32$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $32$ est le code de l'espace en ASCII, pas de la<br/>
lettre A.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec la position de A dans<br/>
l'alphabet. Or <code>ord</code> renvoie le <strong>code ASCII</strong> (ou point<br/>
de code Unicode), pas la position.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$65$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la lettre A majuscule a le code ASCII $65$.<br/>
Les majuscules suivantes sont consécutives : B vaut $66$,<br/>
C vaut $67$, etc.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$97$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $97$ est le code de <strong>a</strong> minuscule. Les<br/>
majuscules et minuscules ont des codes différents en ASCII.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q04 : Fonction `chr` en Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la valeur renvoyée par <code>chr(66)</code> en Python ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les fonctions <code>ord</code> et <code>chr</code> sont inverses l'une de l'autre :<br/>
<code>chr(ord(c)) == c</code> et <code>ord(chr(n)) == n</code> pour tout caractère<br/>
<code>c</code> et tout code valide <code>n</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>'B'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $66$ est le code ASCII de la lettre B.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>66</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>chr</code> renvoie un caractère (chaîne de longueur<br/>
$1$), pas un entier. C'est <code>ord</code> qui fait la conversion<br/>
inverse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'b'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>'b'</code> correspond à <code>chr(98)</code>, pas $66$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'A'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>'A'</code> correspond à <code>chr(65)</code>, pas $66$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q05 : Ce qu'Unicode associe à un caractère</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qu'Unicode associe à chaque caractère, par exemple à la lettre <code>é</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Unicode sépare deux questions : quel numéro, ou point de code, désigne chaque caractère, et comment l'écrire en octets. La seconde question relève des encodages comme UTF-8, qui peuvent écrire différemment un même point de 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="0" format="html">
    <text><![CDATA[<p>Une suite d'octets identique dans tous les fichiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les octets dépendent de l'encodage choisi. Le même <code>é</code> s'écrit sur un octet en ISO-8859-1 et sur deux octets en UTF-8 ; ce qui ne change pas, c'est son numéro Unicode.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un numéro unique, indépendant de l'écriture en octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ce numéro s'appelle le point de code, $233$ pour <code>é</code>. Les encodages comme UTF-8 indiquent ensuite comment écrire ce numéro sous forme d'octets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le dessin de la lettre, commun à toutes les polices</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le dessin d'une lettre dépend de la police utilisée. Unicode identifie le caractère lui-même, pas son apparence à l'écran.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un code sur $7$ bits, comme en ASCII</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $7$ bits ne donnent que $128$ codes, alors qu'Unicode recense des dizaines de milliers de caractères. Ses numéros vont bien au-delà de $127$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q06 : Caractéristique principale d'UTF-8</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi UTF-$8$ est-il l'encodage le plus répandu sur le web ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>UTF-$8$ utilise $1$ octet pour les caractères ASCII (codes<br/>
U+$0000$ à U+$007$F), $2$ pour la plupart des langues<br/>
européennes, $3$ pour les autres alphabets et idéogrammes<br/>
courants, et $4$ pour les caractères rares et les emojis.</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>Parce qu'il code tous les caractères sur un seul octet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : UTF-$8$ est un codage à <strong>taille variable</strong> ($1$ à<br/>
$4$ octets selon le caractère). Il code l'ASCII sur un<br/>
seul octet, mais pas tous les caractères.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'il a complètement remplacé Unicode</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : UTF-$8$ est <strong>un encodage</strong> de la norme Unicode,<br/>
pas son remplaçant. Unicode définit les points de code,<br/>
UTF-$8$ définit comment les sérialiser en octets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Rétro-compatible avec ASCII et de taille variable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un fichier ASCII pur est déjà un fichier<br/>
UTF-$8$ valide. Pour les caractères non ASCII (accents,<br/>
idéogrammes, emojis, etc.), UTF-$8$ utilise plusieurs<br/>
octets, ce qui économise de l'espace pour les langues<br/>
latines.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'il code tous les caractères sur exactement deux octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt UTF-$16$ qui utilise un ou deux mots<br/>
de $16$ bits. UTF-$8$ est plus économique en pratique.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q07 : Nombre de caractères Unicode</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Environ combien de caractères différents la norme Unicode<br/>
peut-elle référencer ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le but d'Unicode est de couvrir <strong>tous</strong> les systèmes<br/>
d'écriture du monde, y compris les langues anciennes, les<br/>
alphabets phonétiques, les symboles mathématiques et les<br/>
emojis. La norme évolue régulièrement avec de nouveaux<br/>
caractères.</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>$256$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $256$ correspond aux codes ASCII étendus (huit<br/>
bits), pas à Unicode.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$128$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $128$ est la taille de l'ASCII standard, pas<br/>
d'Unicode. Unicode est une norme bien plus vaste.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$65\ 536$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la limite d'UTF-$16$ sur un seul mot<br/>
($2^{16}$). Unicode dépasse cette limite, ce qui oblige<br/>
UTF-$16$ à utiliser deux mots pour les caractères rares.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$1\ 114\ 112$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Unicode peut référencer un peu plus d'un<br/>
million de points de code (de <code>U+0000</code> à <code>U+10FFFF</code>).<br/>
Environ $150\ 000$ sont actuellement attribués.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q08 : Différence majuscule / minuscule en ASCII</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence entre le code ASCII d'une lettre<br/>
majuscule et celui de la même lettre en minuscule ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette propriété vient de l'organisation de la table : les minuscules suivent les majuscules dans le même ordre, décalées de $32$, soit $2^5$. Pour changer la casse d'une lettre, il suffit donc d'ajouter ou de retirer $32$ à son 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="0" format="html">
    <text><![CDATA[<p>$1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la différence est plus grande. Par exemple<br/>
$\text{ord}('A') = 65$ et $\text{ord}('a') = 97$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$32$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : minuscule = majuscule + $32$. C'est<br/>
précisément la valeur du sixième bit ($2^5$). Cela permet<br/>
en pratique de basculer entre les deux casses en<br/>
inversant ce bit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$65$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $65$ est le code ASCII de A, pas la différence<br/>
entre majuscule et minuscule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$26$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $26$ est le nombre de lettres de l'alphabet, pas<br/>
la différence des codes ASCII.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q09 : Texte enrichi vs texte simple</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qui distingue un <strong>texte enrichi</strong> d'un texte simple ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Exemples de formats enrichis : HTML, XML, RTF, OpenDocument,<br/>
LaTeX, Markdown. Tous reposent sur le principe de<br/>
<strong>balises</strong> ou de marqueurs spéciaux ajoutés autour du 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>Le texte enrichi ajoute la mise en forme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le texte simple est une simple suite de<br/>
caractères ; le texte enrichi y ajoute des balises ou des<br/>
informations de typographie pour gérer la mise en page,<br/>
les liens, les images, etc.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le texte enrichi est forcément en couleur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la couleur n'est qu'une des nombreuses<br/>
informations qu'un texte enrichi peut contenir, mais elle<br/>
n'est pas obligatoire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le texte enrichi est plus long</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la longueur ne distingue pas les deux. Un texte<br/>
enrichi peut être très court.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le texte enrichi est forcément codé en Unicode</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tout codage de caractères est utilisable. La<br/>
différence est la présence d'informations de mise en forme.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q10 : Obtenir un caractère à partir de son code</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, quelle expression renvoie le caractère dont le<br/>
code ASCII est $65$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>ord</code> et <code>chr</code> sont réciproques : <code>ord('A')</code> vaut $65$ et<br/>
<code>chr(65)</code> vaut <code>'A'</code>. Il ne faut pas confondre <code>chr(65)</code>,<br/>
qui donne le caractère de code $65$, avec <code>str(65)</code>, qui<br/>
écrit simplement le nombre $65$ sous forme de chaîne.</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>str(65)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>str(65)</code> convertit le nombre en la chaîne<br/>
<code>'65'</code>, formée des deux caractères <code>'6'</code> et <code>'5'</code> ; la<br/>
table des codes n'est pas consultée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>chr(65)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>chr</code> reçoit un code (un entier) et<br/>
renvoie le caractère correspondant, ici <code>'A'</code>. C'est la<br/>
fonction réciproque de <code>ord</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>ord(65)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>ord</code> fait le chemin inverse, du caractère vers<br/>
son code ; appliquée à un entier, elle lève <code>TypeError</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>char(65)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il n'existe pas de fonction <code>char</code> en Python ;<br/>
l'appel lève <code>NameError</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q11 : Représentation binaire d'un caractère</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la représentation binaire (sur huit bits) du<br/>
caractère 'A' en ASCII ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode : $\text{ord}('A') = 65$, on convertit $65$ en binaire<br/>
sur huit bits ($65 = 64 + 1$) → $01000001_2$. Le bit de poids<br/>
fort à $0$ confirme que c'est un caractère ASCII standard.</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>$00000001$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le code $1$, le rang de A dans<br/>
l'alphabet. En ASCII, ce code correspond à un caractère<br/>
de contrôle, pas à une lettre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$01100001$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le code $97 = 65 + 32$, qui correspond<br/>
à 'a' minuscule, pas 'A' majuscule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$01000001$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $\text{ord}('A') = 65 = 64 + 1 = 2^6 + 2^0$,<br/>
soit $01000001_2$ sur huit bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$10000001$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce code ($129$) sort de la table ASCII standard.<br/>
De plus, le bit de poids fort doit être à $0$ pour les<br/>
caractères ASCII.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q12 : Décoder un texte ASCII</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel mot représente la suite de codes ASCII (en décimal)<br/>
$$78,\ 83,\ 73$$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les majuscules sont consécutives dans la table ASCII à partir<br/>
de $65$ pour A. On peut retrouver chaque lettre rapidement :<br/>
par exemple N est la $14^e$ lettre de l'alphabet, donc<br/>
$\text{ord}('N') = 65 + 13 = 78$.</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>NSI</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : N vaut $78$, S vaut $83$, I vaut $73$.<br/>
Le mot est donc bien $NSI$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>nsi</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont les majuscules. Les minuscules<br/>
correspondantes seraient $110, 115, 105$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>ISN</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les codes ont été lus dans le mauvais ordre. Le<br/>
premier code, $78$, donne la première lettre, N.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>OTJ</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque lettre est décalée d'un rang, comme si A<br/>
valait $64$. Or A vaut $65$ : le code $78$ est celui<br/>
de la $14^e$ lettre de l'alphabet, N, et<br/>
non de la $15^e$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q13 : Taille d'un caractère en UTF-8</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En UTF-$8$, sur combien d'octets est codé un caractère ASCII<br/>
standard (par exemple la lettre A) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette propriété rend UTF-$8$ très efficace pour les langues<br/>
latines : les textes en anglais ne sont <strong>pas plus gros</strong><br/>
qu'en ASCII, contrairement à UTF-$16$ ou UTF-$32$.</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$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : trois octets sont utilisés pour les caractères<br/>
d'autres alphabets (cyrillique, grec étendu, idéogrammes<br/>
chinois courants), pas pour ASCII.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la taille des caractères Latin étendus en<br/>
UTF-$8$ (<code>é</code>, <code>à</code>, <code>ü</code>, etc.). Les caractères ASCII pur<br/>
tiennent sur un seul octet.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$1$ octet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est précisément le but de la<br/>
rétrocompatibilité d'UTF-$8$ avec ASCII : tout caractère<br/>
ASCII tient sur un seul octet, identique à son codage<br/>
ASCII.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$4$ octets toujours</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est UTF-$32$ qui code tout sur quatre octets.<br/>
UTF-$8$ est de taille variable.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q14 : Taille fixe d'UTF-32</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi UTF-$32$ n'est-il presque jamais utilisé pour stocker<br/>
des fichiers texte sur le web ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les concepteurs ont fait un compromis : UTF-$8$ est de taille<br/>
variable mais économe ; UTF-$32$ est simple mais coûteux.<br/>
Pour le stockage, UTF-$8$ gagne ; pour le traitement interne<br/>
à un programme (indexation rapide), UTF-$32$ est parfois<br/>
utilisé.</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>Parce qu'il ne représente pas tous les caractères Unicode</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est au contraire le seul qui code tous les<br/>
caractères sur la même taille. Le problème est ailleurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'il ne supporte pas les emojis</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : UTF-$32$ code tous les caractères Unicode, emojis compris, chacun sur $4$ octets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il consomme $4$ octets par caractère, même en ASCII</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : UTF-$32$ multiplie par quatre la taille<br/>
d'un fichier texte standard, alors que UTF-$8$ ne consomme<br/>
qu'un octet pour les mêmes caractères. C'est un gaspillage<br/>
énorme de bande passante et de stockage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'il n'est pas standardisé par l'ISO</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : UTF-$32$ est bien standardisé. Le problème est<br/>
son inefficacité, pas son statut.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q15 : Code ASCII en hexadécimal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la représentation hexadécimale du code ASCII de la<br/>
lettre 'a' minuscule ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour convertir : $97 = 96 + 1 = 6 \cdot 16 + 1$, donc en<br/>
hexadécimal le chiffre des « seizaines » est $6$ et celui<br/>
des unités est $1$, soit <code>0x61</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="0" format="html">
    <text><![CDATA[<p><code>0x65</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $0x65 = 6 \cdot 16 + 5 = 101_{10}$, qui<br/>
correspond à <code>'e'</code> minuscule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>0x97</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre la valeur décimale $97$ et son<br/>
écriture hexadécimale. $97_{10} \neq 0x97$<br/>
(qui vaut $151$).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>0x61</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $\text{ord}('a') = 97 = 6 \cdot 16 + 1 = 0x61$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>0x41</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>0x41</code> correspond à $65 = $ 'A' majuscule, pas<br/>
à 'a' minuscule.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q16 : Parcours d'une chaîne en Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie le code Python suivant ?</p>
<pre><code>sum([ord(c) for c in "BA"])</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La compréhension parcourt la chaîne caractère par caractère et construit la liste des codes <code>[66, 65]</code>, que <code>sum</code> additionne.</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>$131$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $\text{ord}('B') + \text{ord}('A') = 66 + 65 = 131$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La chaîne <code>"BA"</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction <code>sum</code> additionne des nombres, pas<br/>
des chaînes. Et chaque <code>ord(c)</code> renvoie un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$130$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur d'une unité sur un code : A a été compté<br/>
$64$ au lieu de $65$. Avec les codes exacts,<br/>
$66 + 65 = 131$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$66$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est seulement le code de B. La somme inclut<br/>
aussi le code de A.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q17 : Codage des caractères accentués</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En UTF-$8$, sur combien d'octets est codée la lettre 'é' ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>C'est pour cette raison qu'un texte français codé en UTF-$8$<br/>
est légèrement plus volumineux qu'en ASCII : chaque lettre<br/>
accentuée pèse deux octets au lieu d'un.</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$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 'é' a pour point de code Unicode <code>U+00E9</code>.<br/>
En UTF-$8$, les caractères entre <code>U+0080</code> et <code>U+07FF</code> sont<br/>
codés sur deux octets ($0xC3$ $0xA9$).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$4$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : quatre octets sont utilisés pour les points de<br/>
code au-delà de <code>U+FFFF</code> (emojis, certaines écritures<br/>
rares).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : trois octets sont utilisés pour des points de<br/>
code plus élevés (à partir de <code>U+0800</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1$ octet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seules les lettres ASCII sont codées sur un<br/>
octet. Les caractères accentués sortent de la plage ASCII.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q18 : ASCII étendu</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle modification a permis le passage d'ASCII à l'ASCII<br/>
étendu ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Plusieurs variantes d'ASCII étendu existent : Latin-$1$<br/>
(ISO-$8859$-$1$) pour l'Europe occidentale, Latin-$2$ pour<br/>
l'Europe centrale, etc. Cette fragmentation a motivé la<br/>
création d'Unicode comme standard universel.</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'ajout d'un neuvième bit pour le drapeau de signe binaire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il n'y a pas de drapeau de signe dans un codage<br/>
de caractères. Le passage à l'ASCII étendu utilise le<br/>
huitième bit déjà présent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Utiliser le huitième bit pour doubler la table</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ASCII standard n'utilisait que sept bits<br/>
($128$ codes) ; le huitième bit étant disponible, on peut<br/>
en faire un encodage à $256$ codes pour ajouter accents,<br/>
symboles mathématiques, etc.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le passage à un codage en hexadécimal</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la base de représentation (binaire, décimale,<br/>
hexadécimale) n'a aucun impact sur le nombre de codes<br/>
possibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La conversion en UTF-$8$ obligatoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : UTF-$8$ est bien plus tardif que l'ASCII étendu.<br/>
L'extension à $256$ codes a été un premier compromis<br/>
avant la solution Unicode.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q19 : Rôle des balises HTML</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que représentent les balises ouvrantes et fermantes en HTML<br/>
(par exemple <code>&lt;p&gt;...&lt;/p&gt;</code>) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une balise comme <code>&lt;p&gt;</code> ouvre un paragraphe, <code>&lt;/p&gt;</code> le ferme. Les attributs (<code>id</code>, <code>class</code>, <code>href</code>, etc.) précisent le comportement ou le style. Les éléments ainsi délimités s'emboîtent les uns dans les autres pour former la structure de la page.</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>Les noms des fichiers liés au document</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les fichiers liés sont référencés par leur URL,<br/>
dans des attributs comme <code>href</code> ou <code>src</code>, pas par les<br/>
balises elles-mêmes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Des marqueurs qui structurent le contenu de la page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les balises délimitent des éléments<br/>
(paragraphes, titres, liens, images, etc.) que le<br/>
navigateur transforme en éléments visuels.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Des macros pour remplacer du texte</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : HTML n'a pas de système de macros. Une balise ne remplace aucun texte, elle délimite un élément de la page.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Des commandes envoyées directement au serveur web</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les balises HTML structurent le document<br/>
côté <strong>client</strong> (navigateur), pas le serveur. Les<br/>
requêtes au serveur sont gérées par le protocole HTTP.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q21 : Motivation historique d'Unicode</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour quelle raison principale Unicode a-t-il été créé après<br/>
l'ASCII étendu ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avant Unicode, échanger un texte écrit en arabe vers un<br/>
poste configuré pour les langues d'Europe centrale produisait<br/>
des « caractères mojibake » illisibles. Unicode a unifié les<br/>
codes pour permettre une vraie interopérabilité mondiale.</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>Pour réduire la taille des fichiers texte</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un fichier Unicode (UTF-$8$) n'est pas plus<br/>
compact qu'un fichier ASCII pour les langues latines, et<br/>
il l'est moins pour d'autres langues. La motivation<br/>
n'est pas la taille.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Unifier les tables d'ASCII étendu incompatibles</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un même octet (par exemple $0xE9$) avait<br/>
des significations différentes selon la table. Un texte<br/>
écrit en Latin-$1$ s'affichait incorrectement sur une<br/>
machine configurée en Latin-$2$. Unicode résout ce<br/>
problème en attribuant un point de code unique à chaque<br/>
caractère du monde.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour ajouter le support de la couleur dans le texte</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la couleur relève de la mise en forme (HTML/CSS),<br/>
pas du codage de caractères.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour remplacer le format PDF</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Unicode est un codage de caractères, pas un<br/>
format de document. PDF reste un format de mise en page.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q22 : Calcul de la taille d'un texte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien d'octets occupe la chaîne <code>"NSI"</code> lorsqu'elle est<br/>
stockée en UTF-$8$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour un texte purement ASCII, UTF-$8$ donne le même nombre<br/>
d'octets que la longueur de la chaîne. Avec des accents (<code>é</code>,<br/>
<code>à</code>, etc.), il faut compter $2$ octets par caractère accentué.</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$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les $3$ caractères de <code>"NSI"</code> sont des<br/>
caractères ASCII, codés chacun sur $1$ octet en UTF-$8$.<br/>
Total : $3$ octets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1$ octet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un seul octet code un seul caractère ASCII, pas<br/>
une chaîne de $3$ caractères.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$12$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la taille en UTF-$32$ ($4$ octets par<br/>
caractère). En UTF-$8$, un caractère ASCII n'occupe qu'un<br/>
octet, quatre fois moins.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$6$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la taille en UTF-$16$ ($2$ octets par<br/>
caractère du plan de base). En UTF-$8$, c'est plus<br/>
économique.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q25 : Rétrocompatibilité d'UTF-8</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi peut-on dire qu'un fichier ASCII pur est aussi un<br/>
fichier UTF-$8$ valide ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette propriété de UTF-$8$ explique son succès : on peut<br/>
ouvrir tout fichier ASCII existant sans modification dans un<br/>
éditeur UTF-$8$. C'est l'inverse qui n'est pas garanti : un<br/>
fichier UTF-$8$ contenant des accents s'affichera<br/>
incorrectement sur un système ASCII strict.</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>Parce que tous les fichiers texte sont automatiquement convertis en UTF-$8$ par le système</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune conversion automatique n'est appliquée.<br/>
La rétrocompatibilité est une propriété du <strong>format</strong><br/>
UTF-$8$, pas du système.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'ASCII et UTF-$8$ utilisent tous deux des points de code Unicode</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ASCII précède Unicode de plusieurs décennies.<br/>
C'est UTF-$8$ qui a été conçu pour reprendre les codes<br/>
ASCII à l'identique, pas l'inverse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>UTF-$8$ reprend à l'identique le codage des $128$ caractères ASCII</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est un choix volontaire des concepteurs<br/>
d'UTF-$8$ (Ken Thompson, Rob Pike, $1992$). Cette<br/>
compatibilité ascendante a énormément facilité la<br/>
transition d'ASCII vers Unicode sur le web et dans les<br/>
systèmes Unix.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'UTF-$8$ et ASCII sont strictement le même format</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : UTF-$8$ est plus large qu'ASCII. Un fichier<br/>
UTF-$8$ peut contenir des caractères impossibles à<br/>
représenter en ASCII (accents, idéogrammes, etc.).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q26 : Taille d'un caractère accentué en UTF-8</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien d'octets sont nécessaires en UTF-$8$ pour coder le<br/>
caractère <code>é</code> (point de code Unicode U+00E9, soit $233$ en<br/>
décimal) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'UTF-$8$ utilise un nombre variable d'octets selon le point<br/>
de code : $1$ pour $0$ à $127$ (compatibilité ASCII), $2$<br/>
pour $128$ à $2\,047$, $3$ pour $2\,048$ à $65\,535$, $4$<br/>
au-delà. Le seuil à $128$ explique pourquoi <code>é</code>, <code>à</code> ou <code>ç</code><br/>
occupent deux octets sur disque, alors qu'on les perçoit<br/>
comme un seul caractère à l'écran.</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$ octet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seuls les caractères de point de code inférieur<br/>
ou égal à $127$ tiennent sur un seul octet en UTF-$8$<br/>
(zone ASCII pure). Comme $233 &gt; 127$, le caractère <code>é</code><br/>
nécessite un encodage sur plusieurs octets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : trois octets en UTF-$8$ sont réservés aux points<br/>
de code de $2\,048$ à $65\,535$, ce qui couvre la plupart<br/>
des alphabets non latins (cyrillique, grec, hébreu,<br/>
idéogrammes chinois courants). Le <code>é</code> est trop « bas »<br/>
pour cela.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$2$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : en UTF-$8$, les caractères de point de<br/>
code compris entre $128$ et $2\,047$ sont codés sur deux<br/>
octets. Le <code>é</code> (point de code $233$) entre dans cette<br/>
plage et s'écrit, en hexadécimal, $\text{C3 A9}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$4$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : quatre octets sont utilisés pour les points de<br/>
code dépassant $65\,535$, comme la majorité des emojis.<br/>
Le <code>é</code> n'a besoin que de deux octets.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q28 : Caractères de contrôle ASCII</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Les codes ASCII de $0$ à $31$ ne correspondent pas à des<br/>
caractères imprimables. À quoi servent-ils ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les caractères de contrôle ASCII étaient à l'origine conçus pour piloter les terminaux mécaniques (téléimprimeurs). Ils restent essentiels aujourd'hui pour structurer le texte, avec les sauts de ligne et les tabulations.</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>À des caractères de contrôle (saut de ligne, tabulation)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ces codes représentent des actions plutôt<br/>
que des caractères visibles. Exemples connus : <code>\n</code><br/>
(saut de ligne, code $10$), <code>\r</code> (retour chariot, code<br/>
$13$), <code>\t</code> (tabulation, code $9$), <code>\0</code> (caractère nul,<br/>
code $0$).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À coder les chiffres et la ponctuation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les chiffres ASCII commencent au code $48$<br/>
(le caractère <code>'0'</code>) et la ponctuation s'étale de $32$ à<br/>
$47$ et de $58$ à $64$. Les codes strictement inférieurs<br/>
à $32$ sont tous non imprimables.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À aucun usage : ils sont réservés et inutilisés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces codes ont au contraire des usages historiques<br/>
précis dans les terminaux et les protocoles. Ils pilotent<br/>
le comportement d'affichage ou de transmission.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À coder les caractères accentués des langues européennes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ASCII standard ne code pas les accents (la table<br/>
ne dépasse pas $127$). Les caractères accentués sont<br/>
arrivés avec les extensions ASCII (Latin-$1$, etc.), puis<br/>
avec Unicode.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q29 : Longueur d'une chaîne accentuée en Python</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le programme suivant affiche la longueur d'un mot, puis l'enregistre dans un fichier encodé en UTF-8 :</p>
<pre><code>texte = "café"
print(len(texte))
with open("mot.txt", "w", encoding="utf-8") as f:
    f.write(texte)</code></pre>
<p>La valeur affichée est-elle égale à la taille du fichier <code>mot.txt</code>, en octets ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Distinction fondamentale : en Python $3$, une chaîne est une suite de caractères, et <code>len</code> compte ces caractères. La taille d'un fichier dépend de l'encodage : en UTF-8, un caractère non ASCII comme <code>é</code> occupe plusieurs octets, d'où un fichier plus long que la chaîne.</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>Oui, les deux valent $5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>len(texte)</code> compte les caractères, pas les octets. Pour <code>"café"</code>, qui compte $4$ caractères, la valeur affichée est $4$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, les deux valent $4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seule la valeur affichée vaut $4$. Comme <code>é</code> occupe deux octets en UTF-$8$, le fichier contient $5$ octets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Non, $4$ affiché pour un fichier de $5$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>len(texte)</code> compte les <strong>caractères</strong> (ici $4$ : <code>c</code>, <code>a</code>, <code>f</code>, <code>é</code>), tandis que le fichier contient les <strong>octets</strong> de l'encodage UTF-8 (ici $5$, car <code>é</code> occupe deux octets).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Non, $5$ affiché pour un fichier de $4$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse. Un texte ne compte jamais plus de caractères que son écriture en octets, puisque chaque caractère occupe au moins un octet.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q30 : Le code d'une lettre majuscule</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans la table ASCII, <code>'A'</code> a le code $65$ et les lettres majuscules<br/>
se suivent. Quel est le code de <code>'E'</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les majuscules occupent les codes $65$ à $90$ dans l'ordre<br/>
alphabétique, les minuscules $97$ à $122$.</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>$69$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>'E'</code> est la lettre numéro 5 de<br/>
l'alphabet, donc son code est $65 + 5 - 1 = 69$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$70$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : décalage d'une unité. <code>'A'</code> vaut $65$, <code>'B'</code> $66$, et<br/>
ainsi de suite : <code>'E'</code> vaut $65 + 5 - 1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$101$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $101$ est le code de la minuscule <code>'E'</code> en<br/>
minuscule, $32$ de plus que la majuscule.</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 rang de la lettre dans l'alphabet, pas son<br/>
code ASCII, qui commence à $65$ pour <code>'A'</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q31 : Le code du caractère d'un chiffre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le caractère <code>'0'</code> a le code ASCII $48$. Quel est le code du<br/>
caractère <code>'7'</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un fichier texte contenant <code>7</code> ne contient pas le nombre<br/>
$7$ mais le caractère de code $55$ ; c'est pourquoi une<br/>
saisie doit être convertie avec <code>int</code> avant tout calcul.</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>$55$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les chiffres se suivent à partir de $48$, donc<br/>
<code>'7'</code> vaut $48 + 7 = 55$. Le caractère et le nombre<br/>
sont deux choses différentes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$7$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $7$ est la valeur numérique, pas le code du caractère<br/>
qui la représente.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$72$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $65$ est le code de <code>'A'</code>, pas celui de <code>'0'</code>. Les<br/>
chiffres sont rangés avant les lettres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$70$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les codes des chiffres se suivent d'une unité en une<br/>
unité à partir de $48$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q32 : Une majuscule plus petite qu'une minuscule</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En Python, <code>"Z" &lt; "a"</code> vaut <code>True</code>. Pourquoi ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comparer des chaînes revient à comparer les codes des caractères,<br/>
position par position. Trier des noms sans tenir compte de la casse<br/>
demande de les mettre d'abord en minuscules.</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>Parce que les chaînes se comparent par les codes de leurs caractères, et $90 &lt; 97$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>'Z'</code> a le code $90$ et <code>'a'</code> le code $97$. Les<br/>
majuscules précèdent toutes les minuscules dans la table ASCII.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que Python compare les lettres selon l'ordre alphabétique sans tenir compte de la casse</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : dans l'ordre alphabétique, Z viendrait après a. La<br/>
comparaison suit les codes, pas le dictionnaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'une chaîne d'une majuscule est plus courte qu'une chaîne d'une minuscule</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les deux chaînes ont la même longueur, un caractère.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que <code>&lt;</code> compare les positions des touches sur le clavier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le clavier n'intervient pas ; seuls les codes des<br/>
caractères comptent.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q33 : Trois codes à décoder</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un fichier texte contient trois octets dont les valeurs décimales<br/>
sont $48, 49, 50$. Quel texte s'affiche à l'ouverture ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Trois repères suffisent pour lire la table ASCII de tête : <code>'0'</code><br/>
vaut $48$, <code>'A'</code> vaut $65$ et <code>'a'</code> vaut $97$.</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>012</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les chiffres commencent au code $48$, les<br/>
majuscules à $65$, les minuscules à $97$, chaque série se<br/>
poursuivant d'une unité en une unité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>ABC</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette série de caractères commence à un autre code de<br/>
la table.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>abc</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : vérifie à quel code commence chaque série, chiffres,<br/>
majuscules ou minuscules.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>123</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : décalage d'une unité. Le premier code donné correspond<br/>
au premier caractère de sa série.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q34 : Le code d'une minuscule avec ord</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>ord("a")</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>ord</code> donne le code d'un caractère, <code>chr</code> fait l'inverse.</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>97</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>ord</code> renvoie le code du caractère, et les<br/>
minuscules occupent les codes $97$ à $122$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>65</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 65 est le code de la majuscule correspondante, $32$ de<br/>
moins que la minuscule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 1 est le rang de la lettre dans l'alphabet, pas son<br/>
code.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>96</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : décalage d'une unité, <code>'a'</code> vaut $97$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q35 : Une lettre obtenue par calcul</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>chr(ord("A") + 2)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Combiner <code>ord</code> et <code>chr</code> permet de décaler des lettres, principe du<br/>
chiffrement de César.</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>'C'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>ord("A")</code> vaut $65$, plus 2 donne $67$,<br/>
et <code>chr(67)</code> est la lettre <code>'C'</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'B'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : décalage d'une unité ; $65 + 2 = 67$, qui est le<br/>
code de <code>'C'</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>67</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $67$ est le code calculé, mais <code>chr</code> le transforme<br/>
en caractère.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'A2'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'addition porte sur le code, un entier, pas sur la<br/>
chaîne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q36 : La taille d'un mot accentué en UTF-8</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>len("été".encode("utf-8"))</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>len</code> d'une chaîne compte des caractères ; <code>len</code> de son encodage<br/>
compte des octets. En UTF-8 les deux diffèrent dès qu'un accent<br/>
apparaît.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>encode</code> produit les octets du texte. Chaque<br/>
lettre non accentuée occupe un octet et chaque lettre accentuée<br/>
deux, d'où 4 octets pour 3 caractères.</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 de caractères, donné par<br/>
<code>len("été")</code>. En UTF-8, un caractère accentué occupe deux<br/>
octets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>6</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seuls les caractères hors ASCII occupent deux octets,<br/>
pas tous.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : compte un octet par lettre ordinaire et deux par lettre<br/>
accentuée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q37 : Le rang d'une lettre dans l'alphabet</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La variable <code>c</code> contient une lettre minuscule. Quelle expression<br/>
donne son rang dans l'alphabet, $1$ pour <code>'a'</code> et $26$ pour<br/>
<code>'z'</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les lettres ayant des codes consécutifs, le rang d'une lettre est<br/>
l'écart entre son code et celui de <code>'a'</code>, décalé d'une unité.</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>ord(c) - ord("a") + 1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la différence des codes donne $0$ pour <code>'a'</code>,<br/>
$1$ pour <code>'b'</code>, et le <code>+ 1</code> ramène au rang attendu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>ord(c) - ord("a") - 1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette expression vaut $-1$ pour <code>'a'</code> ; il faut ajouter<br/>
une unité, pas la retrancher.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>ord(c) - 96 + 1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $97 - 96 + 1 = 2$ pour <code>'a'</code>, une unité de trop ;<br/>
l'écart se calcule avec <code>ord("a")</code>, qui vaut $97$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>chr(c) - ord("a") + 1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>chr</code> attend un entier, pas un caractère, et cette<br/>
expression provoque une erreur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q38 : Une majuscule obtenue par soustraction</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>chr(ord("e") - 32)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Passer de minuscule en majuscule revient à retrancher $32$ au code,<br/>
ce qu'illustre la différence <code>'a'</code> moins <code>'A'</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>'E'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : une minuscule a un code supérieur de $32$ à<br/>
celui de sa majuscule. Retrancher $32$ donne $69$, code de<br/>
<code>'E'</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'e'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le code change, donc le caractère aussi.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>69</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>chr</code> convertit le code $69$ en caractère.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, un code ne pouvant être diminué</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>ord</code> renvoie un entier ordinaire, auquel on peut<br/>
retrancher $32$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q39 : La taille d'un émoji en UTF-8</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un émoji a pour point de code Unicode $1F600_{16}$, bien au-delà de<br/>
$FFFF_{16}$. Sur combien d'octets est-il codé en UTF-8 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>UTF-8 est un codage à longueur variable : plus le point de code est<br/>
grand, plus il occupe d'octets, jusqu'à quatre.</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$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : UTF-8 utilise $1$ octet jusqu'à $7F_{16}$, $2$<br/>
jusqu'à $7FF_{16}$, $3$ jusqu'à $FFFF_{16}$ et $4$ au-delà, ce<br/>
qui est le cas des émojis.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1$ octet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un seul octet ne couvre que les $128$ caractères ASCII.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : deux octets couvrent les caractères accentués européens,<br/>
pas les émojis.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$ octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : trois octets s'arrêtent à $FFFF_{16}$ ; les émojis sont<br/>
au-delà.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q40 : Un accent devenu deux symboles</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un fichier UTF-8 contenant « été » est ouvert avec un logiciel<br/>
réglé sur un codage à un octet par caractère. Il affiche<br/>
« Ã©tÃ© ». Que s'est-il passé ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un texte n'a de sens qu'avec son codage. Le même fichier lu en<br/>
UTF-8 ou en Latin-1 donne des caractères différents dès qu'un<br/>
accent apparaît.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Chaque <code>é</code>, sur deux octets en UTF-8, a été lu comme deux caractères</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>é</code> s'écrit $C3_{16}$ $A9_{16}$ en UTF-8. Lus<br/>
un par un dans un codage à un octet, ces octets donnent <code>Ã</code> et<br/>
<code>©</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le fichier a été endommagé pendant la copie, deux octets ayant été altérés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les octets sont intacts, c'est leur interprétation qui<br/>
diffère. Le fichier s'affiche correctement en UTF-8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le logiciel a remplacé les accents par des symboles aléatoires</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : rien n'est aléatoire, chaque <code>é</code> donne toujours la<br/>
même paire de symboles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le texte avait été écrit avec des caractères spéciaux par erreur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le texte d'origine est correct ; seul le choix du<br/>
codage à l'ouverture est en cause.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
