<?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 ord et chr, 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⁶, 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⁷ = 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 ord('A') ?</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 ord 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 chr(66) en Python ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les fonctions ord et chr sont inverses l'une de l'autre :<br/>
chr(ord(c)) == c et ord(chr(n)) == n pour tout caractère<br/>
c et tout code valide n.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>'B'</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>66</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chr renvoie un caractère (chaîne de longueur<br/>
1), pas un entier. C'est ord qui fait la conversion<br/>
inverse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>'b'</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 'b' correspond à chr(98), pas 66.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>'A'</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 'A' correspond à chr(65), pas 66.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q05 : Point de code Unicode</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment écrit-on conventionnellement un point de code Unicode ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La notation U+xxxx s'écrit toujours en hexadécimal et<br/>
fonctionne pour des points de code de 4 à 6 chiffres<br/>
(de U+0000 à U+10FFFF).</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>U+0041</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la notation officielle est U+xxxx avec<br/>
un code hexadécimal de 4 à 6 chiffres. Par exemple<br/>
U+0041 désigne la lettre A majuscule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\u0041</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la <strong>séquence d'échappement</strong> utilisée dans<br/>
certains langages de programmation, pas la notation<br/>
standard du Consortium Unicode.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0x41</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la notation hexadécimale Python pour<br/>
l'entier 65, mais ce n'est pas la convention Unicode.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>UC-0041</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce préfixe n'existe pas. La convention Unicode<br/>
est U+.</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+007F), 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 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>Parce qu'il est rétro-compatible avec ASCII et de taille variable selon les caractères</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¹⁶). 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>Plus d'un million</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Unicode peut référencer jusqu'à<br/>
1\ 114\ 112 points de code (de U+0000 à U+10FFFF).<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é est utilisée dans certains algorithmes pour<br/>
basculer la casse efficacement : code ^= 32 change la casse<br/>
en un coup grâce au XOR. C'est aussi pour ça que les codes<br/>
sont contigus et organisés par casse.</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⁵). 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 contient en plus des informations de mise en forme (police, taille, couleur, etc.)</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 codé en Unicode obligatoirement</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 : Signification du sigle HTML</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que signifie l'acronyme HTML ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>HTML est l'un des trois piliers du Web (avec CSS et<br/>
JavaScript). Son rôle : décrire la <strong>structure</strong> d'un<br/>
document (titres, paragraphes, liens, images), tandis que CSS<br/>
gère l'apparence et JavaScript gère l'interactivité.</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>High-level Text Manipulation Language</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sigle inventé. HTML n'est pas un langage de<br/>
manipulation de texte mais un langage de balisage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Hypothetical Text Macro Library</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sigle inventé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Hyper Type Modern Language</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sigle inventé. La vraie signification commence<br/>
par « HyperText ».</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>HyperText Markup Language</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est le langage à balises pour les pages<br/>
web, créé par Tim Berners-Lee en 1989 au CERN. Le mot<br/>
<em>hypertext</em> renvoie aux <strong>liens</strong> entre documents.</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₂. 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, qui correspond à un caractère<br/>
de contrôle (SOH), pas à 'A'.</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 = 64 + 32 + 1, 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₂ 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ᵉ 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>NSI</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : N vaut 78, S vaut 83, I vaut 73.<br/>
La spécialité s'écrit donc bien NSI.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>nsi</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>123</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre les codes ASCII et les chiffres<br/>
eux-mêmes. Les chiffres '1', '2', '3' ont les codes<br/>
ASCII 49, 50, 51.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>abc</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : a vaut 97 et non 78. Vérifier la table<br/>
ASCII : les majuscules sont vers 65, les minuscules<br/>
vers 97.</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 (é, à, ü, 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 peut pas représenter 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 supporte tous les caractères Unicode,<br/>
emojis compris (et même mieux qu'UTF-16 qui doit gérer<br/>
les paires de substitution).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce qu'il consomme quatre octets par caractère, même pour les caractères ASCII très fréquents</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 · 16 + 1, donc en<br/>
hexadécimal le chiffre des « seizaines » est 6 et celui<br/>
des unités est 1, soit 0x61.</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>0x65</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 0x65 = 6 · 16 + 5 = 101₁₀, qui<br/>
correspond à 'e' minuscule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0x97</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion entre la valeur décimale 97 et son<br/>
écriture hexadécimale. 97₁₀ ≠ 0x97<br/>
(qui vaut 151).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>0x61</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>0x41</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 0x41 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>
<p>`<code><br/>
sum(ord(c) for c in "BA")<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette construction est très utile pour calculer des sommes ou<br/>
des hash sur des chaînes : on parcourt caractère par<br/>
caractère et on combine leurs codes 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="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 "BA"</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction sum additionne des nombres, pas<br/>
des chaînes. Et chaque ord(c) 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 : on a peut-être confondu A et @ (64). A a<br/>
pour code 65, donc 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 U+00E9.<br/>
En UTF-8, les caractères entre U+0080 et U+07FF 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 U+FFFF (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 U+0800).</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</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>L'utilisation du huitième bit (mis à 0 dans l'ASCII standard) 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 &lt;p&gt;...&lt;/p&gt;) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une balise comme &lt;p&gt; ouvre un paragraphe, &lt;/p&gt; le ferme.<br/>
Les attributs (id, class, href, etc.) précisent le<br/>
comportement ou le style. La structure complète forme l'arbre<br/>
DOM (Document Object Model).</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 href ou src, 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 et indiquent au navigateur comment afficher le texte</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. Pour la<br/>
réutilisation, il faut passer par CSS, JavaScript ou un<br/>
moteur de templates.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Des commandes envoyées 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 — Q20 : Particularité de TeX/LaTeX</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le <strong>point fort</strong> de TeX/LaTeX, créé par Donald Knuth<br/>
en 1977, par rapport aux traitements de texte WYSIWYG ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>LaTeX (la couche la plus utilisée au-dessus de TeX) reste<br/>
irremplaçable pour les documents scientifiques, les thèses,<br/>
les cours, les présentations Beamer, etc. Sa philosophie<br/>
« écrire le contenu, laisser la mise en forme à l'outil »<br/>
garantit une excellente qualité typographique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il produit une mise en page typographique de très haute qualité, particulièrement pour les équations mathématiques</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : TeX a été créé pour résoudre les<br/>
problèmes de qualité d'impression des publications<br/>
scientifiques. Il reste le standard de l'édition<br/>
scientifique aujourd'hui encore.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il génère du HTML directement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : TeX produit principalement du PDF (via DVI ou<br/>
directement). Des outils tiers existent pour convertir,<br/>
mais ce n'est pas la finalité de TeX.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il est compatible avec Microsoft Word</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : TeX et Word sont des écosystèmes très différents.<br/>
La conversion entre les deux est généralement complexe et<br/>
incomplète.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il permet de modifier le texte directement à l'écran</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est précisément le contraire. TeX repose sur<br/>
un langage de balisage compilé : on écrit le code source<br/>
puis on le compile pour obtenir le PDF. C'est le mode<br/>
opposé du WYSIWYG.</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>Pour unifier les nombreuses tables d'ASCII étendu (Latin-1, Latin-2, etc.) qui rendaient l'échange international de fichiers difficile</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 "NSI" 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 (é,<br/>
à, 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 : 'N', 'S' et 'I' sont des caractères ASCII,<br/>
codés chacun sur 1 octet en UTF-8. 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 trois 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, on est trois fois plus économique<br/>
pour cette chaîne.</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 — Q23 : Différence entre HTML et OpenDocument</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la principale différence entre <strong>HTML</strong> et<br/>
<strong>OpenDocument</strong> (le format .odt de LibreOffice) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les deux formats sont structurés en balises XML. HTML est<br/>
adapté à des contenus dynamiques (liens, scripts, vidéos),<br/>
OpenDocument à des documents imprimables (mise en page<br/>
figée, pagination, marges). Ils ne sont pas interchangeables.</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>HTML est propriétaire, OpenDocument est libre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : HTML est un standard ouvert (W3C), pas<br/>
propriétaire. OpenDocument est aussi un standard ouvert.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>HTML est un format binaire, OpenDocument est textuel</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : HTML et OpenDocument sont tous deux des formats<br/>
textuels. OpenDocument est en réalité un fichier ZIP<br/>
contenant des fichiers XML.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>HTML est destiné à l'affichage web ; OpenDocument est conçu pour les documents bureautiques</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les deux utilisent des balises XML, mais<br/>
leurs finalités diffèrent. HTML décrit des pages web<br/>
interactives ; OpenDocument décrit des documents<br/>
imprimables (texte, tableur, présentation), avec une<br/>
gestion fine de la pagination.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>OpenDocument est rétro-compatible avec ASCII, pas HTML</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la rétrocompatibilité ASCII concerne l'encodage<br/>
de caractères (UTF-8), pas le format de document.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q24 : Mojibake et erreurs de décodage</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Vous ouvrez un fichier texte.txt qui contient le mot français<br/>
« café », mais vous voyez s'afficher « cafÃ© ». Quelle est la<br/>
cause la plus probable ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le mojibake est l'erreur d'affichage la plus classique en<br/>
gestion de l'encodage. Les outils modernes détectent de mieux<br/>
en mieux le bon encodage, mais en cas de doute il faut<br/>
explicitement préciser l'encodage à l'ouverture (en Python :<br/>
open(fichier, encoding="utf-8")).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le fichier utilise un mauvais saut de ligne (Windows vs Unix)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les sauts de ligne n'affectent pas l'affichage<br/>
des caractères, seulement la disposition en lignes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le fichier est en UTF-8 mais affiché comme s'il était en Latin-1 (ISO-8859-1)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est le scénario typique de <em>mojibake</em>.<br/>
En UTF-8, 'é' est codé 0xC3 0xA9. Lus comme du<br/>
Latin-1, ces deux octets affichent 'Ã' suivi de '©'.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le fichier est corrompu</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la corruption produirait des caractères vraiment<br/>
aléatoires. Ici l'altération est systématique sur les<br/>
accents, ce qui est typique d'une mauvaise interprétation<br/>
du codage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le fichier est en ASCII pur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un fichier ASCII pur ne contient pas d'accents.<br/>
Le 'é' nécessite déjà un encodage qui sort de l'ASCII.</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>Parce qu'UTF-8 a été conçu pour reproduire à l'identique le codage des 128 caractères ASCII (un seul octet, bit de poids fort à 0)</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 é (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 é, à ou ç<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 é<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 é 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 é (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 é n'a besoin que de deux octets.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Représentation du texte — Q27 : Marqueur d'un octet de continuation en UTF-8</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>En UTF-8, dans une séquence multi-octets, quels sont les<br/>
bits de tête qui marquent un <strong>octet de continuation</strong><br/>
(deuxième, troisième ou quatrième octet d'un caractère) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Grammaire UTF-8 : un octet ASCII commence par 0, un<br/>
premier octet multi-octets commence par autant de 1 que<br/>
d'octets dans la séquence (110, 1110, 11110), puis<br/>
tous les octets suivants commencent par 10. Cette<br/>
structure auto-synchronisante permet de reconnaître la<br/>
position d'un octet sans relire le flux depuis le début.</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>1110xxxx</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce schéma marque le premier octet d'un caractère<br/>
codé sur trois octets. Les octets de continuation qui le<br/>
suivent commencent quant à eux par 10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>0xxxxxxx</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce schéma désigne un caractère ASCII codé sur un<br/>
seul octet (point de code de 0 à 127), pas un octet<br/>
de continuation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>10xxxxxx</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : tout octet de continuation commence par<br/>
les bits 10, suivis de six bits utiles. Cette signature<br/>
permet de repérer immédiatement un octet « du milieu »<br/>
dans une séquence UTF-8.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>110xxxxx</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce schéma marque le <strong>premier</strong> octet d'un<br/>
caractère codé sur deux octets, pas un octet de<br/>
continuation.</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<br/>
pour piloter les terminaux mécaniques (téléimprimeurs). Ils<br/>
restent essentiels aujourd'hui pour structurer le texte<br/>
(sauts de ligne, tabulations) et signaler la fin d'une<br/>
chaîne en C (caractère nul \0).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À des caractères de contrôle (saut de ligne, retour chariot, tabulation, etc.) qui pilotent le terminal ou la transmission</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 : \n<br/>
(saut de ligne, code 10), \r (retour chariot, code<br/>
13), \t (tabulation, code 9), \0 (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 '0') 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>En Python 3, les deux instructions du code suivant<br/>
affichent-elles la même valeur ?</p>
<p>`<code>python<br/>
texte = "café"<br/>
print(len(texte))<br/>
print(len(texte.encode("utf-8")))<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Distinction fondamentale : un objet str en Python 3 est<br/>
une suite de <strong>points de code Unicode</strong>, pas d'octets. La<br/>
méthode encode produit un objet bytes qui peut être plus<br/>
long si le texte contient des caractères non ASCII. Cette<br/>
séparation entre texte et octets évite la plupart des bugs<br/>
de manipulation rencontrés en Python 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>Oui, les deux affichent 5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : len(texte) compte les caractères Unicode, pas<br/>
les octets. Pour "café" (quatre caractères), cela<br/>
affiche 4.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, les deux affichent 4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seule la première instruction affiche 4.<br/>
Comme é occupe deux octets en UTF-8, l'encodage<br/>
binaire de "café" fait 5 octets, pas 4.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Non, 4 pour la première et 5 pour la seconde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : len(texte) compte les <strong>caractères<br/>
Unicode</strong> (ici 4 : c, a, f, é), tandis que<br/>
len(texte.encode("utf-8")) compte les <strong>octets</strong> après<br/>
encodage (ici 5, car é occupe deux octets).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Non, 5 pour la première et 4 pour la seconde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse. Une chaîne Unicode est toujours<br/>
au moins aussi courte (en caractères) que sa version<br/>
encodée (en octets), jamais plus longue.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
