\thumb

\begin{qcm}{Généralités}{5}
\begin{questions}
\item Le concept de machines universelles est apparu au :

\choix Moyen-Âge

\choix XVII\ieme{} siècle

\choix XIX\ieme{} siècle

\choix XX\ieme{} siècle

\item Le système binaire repose sur les chiffres :\resetchoix

\choix 0 et 1

\choix 1 et 2

\item Le système hexadécimal comporte :\resetchoix

\choix 14 caractères

\choix 15 caractères

\choix 16 caractères

\choix 17 caractères
\end{questions}
\end{qcm}

\begin{corrige}
\begin{questions}
\item Réponse \choix[d]. En 1936 est apparu le concept de machine universelle.
\item Réponse \choix[b]. En binaire, il n'y a que deux caractères : le 0 et le 1.

\item Réponse \choix[c]. En hexadécimal, il y a 16 caractères :
\begin{center}
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F.
 \end{center}
\end{questions}
\end{corrige}


\subsectionnn{Encodages}

%%% 2

\begin{exo}{Taille d'un ficher}{\null}{1}{5} 
\begin{questions}
\item Quel est la taille (en ko) d'un fichier texte contenant \numprint{75000} caractères ?

\item 
\begin{questions}
\item On tape la phrase \og Bonjour à tous. \fg{} dans un fichier créé avec le logiciel Notepad++ sous Windows. Quelle est la taille (en octets) de ce fichier quand on le sauvegarde sur le disque dur ?

\item On tape la même phrase dans un fichier créé avec le logiciel Open Writer de la suite Open Office. La taille du fichier sauvegardé est \numprint{8683} octets.

Comment expliquer cette taille ?
\end{questions}
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item D'après la correspondance \og 1 caractère = 1 octet \fg, la taille d'un fichier texte contenant \numprint{75000} caractères est \numprint{75000} octets, soit 75~ko.

\item
\begin{questions}
\item Il y a 15 caractères dans la phrase (ponctuation et espaces compris), donc la taille du fichier texte est 15 octets.

\item Contrairement à Notepad++, qui sauvegarde le texte en \textit{brut} (c'est-à-dire sans rien de plus que le texte lui-même), les éditeurs de textes plus sophistiqués (comme Open Writer) enregistrent la configuration du fichier (sa mise en forme, la position du curseur...). Ainsi, la taille du fichier sauvegardé est toujours strictement plus grande que celle du texte brut.
\end{questions}
\end{questions}
\end{corrige}

%%% 3

\begin{exo}{Coder en binaire}{\null}{1}{10} 
À l'aide d'une table ASCII (voir page \pageref{table-ascii}), répondre aux questions suivantes.
\begin{questions}
\item Convertir en binaire la phrase suivante :
\begin{center}
\texttt{Bonjour cher ami.}
\end{center}

\item Que se cache-t-il derrière le code binaire suivant ?
\begin{center}
\ttfamily
01101001 01101110 01100110 01101111 00100000 01100110 01101111 01110010 00100000 01100101 01110110 01100101 01110010 00100000 00100001
\end{center}
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item Le caractère \og B \fg{} a pour code binaire 01000010. On fait de même pour les autres caractères, y compris les espaces entre les mots et le point final.

On obtient alors le code suivant :

\begin{center}
\ttfamily 01000010 01101111 01101110 01101010 01101111 01110101 01110010 00100000 01100011 01101000 01100101 01110010 00100000 01100001 01101101 01101001 00101110 
\end{center}

\item Le code binaire donné correspond à la phrase : \og info for ever ! \fg.
\end{questions}

\begin{methode}
\qrset{height=1.1cm,version=5}\rput(-1.4,-0.8){
\psframebox{\qrcode{http://usefulwebtool.com/fr/convertir-texte-en-binaire.php}}}

Pour aller plus vite, on peut utiliser un convertisseur en ligne, par exemple celui de la page :
\begin{center}
\ttfamily\small
http://usefulwebtool.com/fr/convertir-texte-en-binaire.php.
\end{center} 
\end{methode}
\end{corrige}

%%% 4

%\begin{exo}{Un petit calcul}{\null}{1}{10} 
%Quand on est passé de la table ASCII à d'autres tables, les mémoires étant plus fiables qu'avant, de nouvelles techniques plus sûres de contrôle de parité ayant été inventées, le huitième bit a pu servir pour encoder plus de caractères.
%
%Combien a-t-on pu coder de caractères en plus ?
%\end{exo}
%
%\begin{corrige}
%Avec la table ASCII, on pouvait coder $2^7=128$ caractères.
%
%Avec 8 bits, on peut coder $2^8=256$ caractères, soit deux fois plus. \enlargethispage*{2em}
%
%On a donc pu coder 128 caractères supplémentaires avec le huitième bit.
%\end{corrige}

%%% 5

\begin{exo}{Dans les années 1990}{\null}{2}{5} 
Avant l'apparition de l'Unicode, il n'était pas rare de recevoir un courriel comme celui-ci :

\og Bonjour mon ami BarnabÃ©. Jâ€™espÃ¨ que vous allez bien. Moi, pas trop. Jâ€™ai besoin de 100 000 francs pour rentrer chez moi. Si vous pouviez mâ€™envoyer cette somme par virement bancaire, je vous en serez Ã©ternelement reconnaissant. Votre dévouÃ©e JosÃ©phine. \fg

\begin{questions}
\item Expliquer la raison pour laquelle ce message comporte des caractères non désirés.
\item A priori, quel est l'encodage du message original ?
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item La raison pour laquelle des caractères bizarres apparaissent est que le texte original a été encodé avec une norme différente de celle utilisée pour le lire.

\item Nous pouvons constater que les caractères accentués ont été codés sur deux caractères; par exemple, le \og é \fg{} apparaît sous la forme \og Ã© \fg. Ces derniers caractères apparaissant dans la norme UTF-8, on peut supposer que le message original a été tapé sous cette norme, et que le lecteur de courriel l'interprète comme étant sous la norme ISO 8859-1.
\end{questions}
\end{corrige}

%%% 

\begin{exo}{Précisions sur l'UTF-8}{\null}{3}{30} 
L'encodage UTF-8 utilise 1, 2, 3 ou 4 octets en respectant certaines règles :
\begin{itemize}
\item Un texte en ASCII de base (appelé aussi US-ASCII) est codé de manière identique en UTF-8. On utilise un octet commençant par un bit 0 à gauche (bit de poids fort).

Par exemple, le caractère \og A \fg{} est codé par le nombre décimal 65, ce qui correspond au nombre binaire 1000001 (7 bits). En utilisant le codage \mbox{UTF-8}, le binaire devient 01000001 (8 bits).

\item Les octets ne sont pas remplis entièrement. Les bits de poids fort du premier octet forment une suite de 1 indiquant le nombre d'octets utilisés pour coder le caractère. Les octets suivants commencent tous par le bloc binaire 10.

\begin{center}
\begin{tabular}{|Zc|Zc|}
\hline\tabulartitle
Représentation binaire UTF-8 & Signification\\
\hline
0xxxxxxx & 1 octet codant 1 à 7 bits\\
\hline
110xxxxx 10xxxxxx & 2 octets codant 8 à 11 bits\\
\hline
1110xxxx 10xxxxxx 10xxxxxx & 3 octets codant 12 à 16 bits\\
\hline
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx & 4 octets codant 17 à 21 bits\\
\hline
\end{tabular}
\end{center}
\end{itemize}

Le symbole \euro correspond à la valeur décimale 8364.
\begin{questions}
\item Convertir 8364 en binaire.
\item Donner le codage UTF-8 de ce caractère.
\item \'Etant donné un caractère codé en binaire sur $n$ bits, combien d'octets sont nécessaires pour le coder en UTF-8 ?
\item \'Ecrire un algorithme qui permet, à partir de la valeur décimale d'un caractère, de trouver le nombre d'octets nécessaires pour coder ce caractère en UTF-8.
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item $\base{8364}{10}=\base{10000010101100}{2}$. On pourra regarder l'exercice \ref{exo-conversion-decimal-binaire} pour voir la méthode à utiliser.

\item Pour obtenir le codage UTF-8 du caractère \og \euro \fg, on part de la droite de sa représentation binaire et on compte 6 bits; on a alors :
\begin{center}
101100.
\end{center}
Ensuite, on met \og 10 \fg{} devant ces 6 bits :
\begin{center}
10101100.
\end{center}
On prend ensuite les 6 bits précédents, à savoir \og 000010 \fg, devant lesquels on met \og 10 \fg.

Il ne reste plus que \og 10 \fg, que nous mettons à la fin du premier octet, celui qui commence nécessairement par \og 1110 \fg{} car nous venons d'obtenir 3 octets.

\Par

Au final, on obtient que le codage UTF-8 du caractère \og \euro \fg{} est : \begin{center}
11100010 10000010  10101100.
\end{center}

\item À travers l'exemple de la question précédente, on peut voir que l'on regroupe les bits par 6 pour former les octets, et que l'on ajoute un octet pour indiquer le nombre total d'octets.

Ainsi, dans l'exemple précédent, $n=14$ et le nombre d'octets nécessaires en UTF-8 est :
\[
E\left(\frac{14}{6}\right)+1,
\]
où $E(x)$ désigne la partie entière de $x$ (par exemple, $E(\pi)=3$).

\Par

On peut donc dire que le nombre d'octets nécessaires, dans un cas général, est $E\left(\dfrac{n}{6}\right)+1$.

\item Pour avoir le nombre de bits du nombre binaire correspondant à la valeur décimale $D$ du caractère, il faut connaître le nombre $n$ tel que :
\[
2^{n-1} < D \leqslant 2^{n}.
\]
Par exemple, $2^{13} < \numprint{8364} \leqslant 2^{14}$ donc le nombre de bits nécessaires en binaire est 14. 

Une fois que l'on a ce nombre, on utilise la formule de la question précédente. Cela donne :

\begin{algorithme}{Algorithme}
D est un entier naturel
n $\leftarrow$ 0
Tant que 2\^ \kern-2ex n $\leqslant$ D+1 faire
   n $\leftarrow$ n+1
Fin du Tant que
Afficher E(n/6)+1
\end{algorithme}

\Par

\begin{listing}{En Python}{01-06.py}%\nathanliveProgWithoutText
\end{listing}
\end{questions}
\end{corrige}

\subsectionnn{Conversions}

%%% 

\begin{exo}{Du décimal au binaire}{\null}{1}{10} 
\label{exo-conversion-decimal-binaire}
Convertir en binaire les nombres suivants, donnés en base 10.
\begin{questions}
\item $\base{458}{10}$
\item $\base{133}{10}$
\item $\base{47}{10}$
\item $\base{\numprint{1024}}{10}$
\item $\base{65}{10}$
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item \begin{multicols}{2}
Convertissons $\base{458}{10}$.

\opidiv{458}{2}

\Par\Par

\opidiv{229}{2}

\Par\Par

\opidiv{114}{2}

\Par\Par

\opidiv{57}{2}

\Par\Par

\opidiv{28}{2}

\Par\Par

\opidiv{14}{2}

\Par\Par

\opidiv{7}{2}

\Par\Par

\opidiv{3}{2}

\Par\Par

\opidiv{1}{2}

\Par\Par

Donc $\base{458}{10}=\base{111001010}{2}$.
\end{multicols}

\newpage

\item
\begin{multicols}{2}
Convertissons $\base{133}{10}$.

\opidiv{133}{2}

\Par\Par

\opidiv{66}{2}

\Par\Par

\opidiv{33}{2}

\Par\Par

\opidiv{16}{2}

\Par\Par

\opidiv{8}{2}

\Par\Par

\opidiv{4}{2}

\Par\Par

\opidiv{2}{2}

\Par\Par

\opidiv{1}{2}

\Par\Par

Donc $\base{133}{10}=\base{10000101}{2}$.
\end{multicols}

\item Convertissons $\base{47}{10}$.

%\raisebox{-2.2em}{
\begin{tabular}[t]{Zc@{\,$\rightarrow$\,}Zc@{\,$\rightarrow$\,}Zc@{\,$\rightarrow$\,}Zc@{\,$\rightarrow$\,}Zc@{\,$\rightarrow$\,}Zc}
\opidiv{47}{2}
&
\opidiv{23}{2}
&
\opidiv{11}{2}
&
\opidiv{5}{2}
&
\opidiv{2}{2}
&
\opidiv{1}{2}
\end{tabular}
%}

\Par

Donc $\base{47}{10}=\base{101111}{2}$.

\item On sait que $\numprint{1024}=2^{10}$ donc $\base{\numprint{1024}}{10}=\base{10000000000}{2}$.

\item $65=64+1=2^6+1$ donc $\base{65}{10}=\base{1000001}{2}$.
\end{questions}
\end{corrige}

%%% 8

\begin{exo}{Du binaire au décimal}{\null}{1}{10} 
Convertir les nombres suivants (écrits en binaire) en décimal.

\begin{questions}
\item $\base{101010101}{2}$
\item $\base{111000}{2}$
\item $\base{00110011}{2}$
\item $\base{1010010001}{2}$
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item $\base{101010101}{2}=1\times2^8+1\times2^6+1\times2^4+1\times2^2+1\times2^0=341$.
\item $\base{111000}{2}=1\times2^5+1\times2^4+1\times2^3=56$.
\item $\base{00110011}{2}=2^5+2^4+2^1+2^0=51$.
\item $\base{1010010001}{2}=2^9+2^7+2^4+2^0=657$.
\end{questions}
\end{corrige}

%%% 9

\begin{exo}{Du binaire à l'hexadécimal}{\null}{1}{10} 
Convertir les nombres binaires suivants en hexadécimal.
\begin{questions}
\item $\base{10000000011001}{2}$
\item $\base{1000100010001}{2}$
\item $\base{100110000111}{2}$
\item $\base{101110101100}{2}$
\item $\base{11001010111111100010}{2}$
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item On regroupe par groupes de 4 bits:
\[
\begin{array}{|L|c|c|c|c|}
\hline
\text{Binaire} & 10 & 0000 & 0001 & 1001 \\\hline
\text{Pseudo-décimal} & 2 & 0 & 1 & 9 \\\hline
\text{Hexadécimal} & 2 & 0 & 1 & 9\\\hline
\end{array}
\]
Ainsi, $\base{10000000011001}{2}=\base{2019}{16}$.

\item On regroupe par groupes de 4 bits:
\[
\begin{array}{|L|c|c|c|c|}
\hline
\text{Binaire} & 1 & 0001 & 0001 & 0001 \\\hline
\text{Pseudo-décimal} & 1 & 1 & 1 & 1 \\\hline
\text{Hexadécimal} & 1 & 1 & 1 & 1\\\hline
\end{array}
\]
Ainsi, $\base{1000100010001}{2}=\base{1111}{16}$.

\item On regroupe par groupes de 4 bits:
\[
\begin{array}{|L|c|c|c|}
\hline
\text{Binaire} & 1001 & 1000 & 0111 \\\hline
\text{Pseudo-décimal} & 9 & 8 & 7  \\\hline
\text{Hexadécimal} & 9 & 8 & 7\\\hline
\end{array}
\]
Ainsi, $\base{100110000111}{2}=\base{987}{16}$.

\item On regroupe par groupes de 4 bits:
\[
\begin{array}{|L|c|c|c|}
\hline
\text{Binaire} & 1011&1010&1100 \\\hline
\text{Pseudo-décimal} & 11 & 10 & 13  \\\hline
\text{Hexadécimal} & B & A & C\\\hline
\end{array}
\]
Ainsi, $\base{101110101100}{2}=\base{BAC}{16}$.

\item On regroupe par groupes de 4 bits:
\[
\begin{array}{|L|c|c|c|c|c|}
\hline
\text{Binaire} & 1100 & 1010 & 1111 & 1110 & 0010 \\\hline
\text{Pseudo-décimal} & 13 & 10 & 16 & 15 & 2  \\\hline
\text{Hexadécimal} & C & A & F & E & 2\\\hline
\end{array}
\]
Ainsi, $\base{11001010111111100010}{2}=\base{CAFE2}{16}$.
\end{questions}
\end{corrige}

%%% 10

\begin{exo}{Du décimal à l'hexadécimal}{\null}{1}{10} 
Convertir en hexadécimal les nombres suivants, exprimés en base 10.
\begin{questions}
\item $\base{2020}{10}$
\item $\base{1234}{10}$
\item $\base{56026}{10}$
\item $\base{64218}{10}$
\end{questions}
\end{exo}

\begin{corrige}
\begin{multicols}{2}
\begin{questions}
\item Convertissons  $\base{2020}{10}$.

\opidiv{2020}{16}

\Par\Par

\opidiv{126}{16}

\Par\Par

\opidiv{7}{16}

\Par\Par

Donc $\base{2020}{10}=\base{7E4}{16}$.

\columnbreak

\item Convertissons $\base{1234}{10}$.

\opidiv{1234}{16}

\Par\Par

\opidiv{77}{16}

\Par\Par

\opidiv{4}{16}

\Par\Par

Ainsi, $\base{1234}{10}=\base{4D2}{16}$.
\end{questions}
\end{multicols}

\begin{multicols}{2}
\begin{questions}\setcounter{enumi}{2}
\item Convertissons $\base{56026}{10}$.

\opidiv{56026}{16}

\Par\Par

\opidiv{3501}{16}

\Par\Par

\opidiv{218}{16}

\Par\Par

\opidiv{13}{16}

\Par\Par

Donc  $\base{56026}{10}=\base{DADA}{16}$.

\columnbreak

\item Convertissons $\base{64218}{10}$.

\opidiv{64218}{16}

\Par\Par

\opidiv{4013}{16}

\Par\Par

\opidiv{250}{16}

\Par\Par

\opidiv{15}{16}

\Par\Par

Donc  $\base{64218}{10}=\base{FADA}{16}$.
\end{questions}
\end{multicols}
\end{corrige}

%%% 11

\begin{exo}{De l'hexadécimal au binaire}{\null}{1}{10} 
Convertir en binaire les nombres suivants, écrits en hexadécimal.
\begin{questions}
\item $\base{A320}{16}$
\item $\base{FABE51}{16}$
\item $\base{101010}{16}$
\item $\base{59A75}{16}$
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item \raisebox{-0.4\totalheight}{$\begin{array}{|L|c|c|c|c|}
\hline
\text{Hexadécimal} & A & 3 & 2 & 0\\\hline
\text{Pseudo-décimal} & 10 & 3 & 2 & 0  \\\hline
\text{Binaire} & 1010 & 0011 & 0010 & 0000 \\\hline
\end{array}$}

Donc $\base{A320}{16}=\base{1010001100100000}{2}$.

\item \raisebox{-0.4\totalheight}{$\begin{array}{|L|c|c|c|c|c|c|}
\hline
\text{Hexadécimal} & F & A & B & E & 5 & 1\\\hline
\text{Pseudo-décimal} & 15 & 10 & 11 & 14 & 5 & 1  \\\hline
\text{Binaire} & 1111 & 1010 & 1011 & 1110 & 0101 & 0001 \\\hline
\end{array}$}

Donc $\base{FABE}{16}=\base{111110101011111001010001}{2}$.

\item \raisebox{-0.4\totalheight}{$\begin{array}{|L|c|c|c|c|c|c|}
\hline
\text{Hexadécimal} & 1&0&1&0&1&0\\\hline
\text{Pseudo-décimal} & 1&0&1&0&1&0  \\\hline
\text{Binaire} & 0001 & 0000 & 0001 & 0000 & 0001 & 0000 \\\hline
\end{array}$}

Donc $\base{101010}{16}=\base{100000001000000010000}{2}$.

\item \raisebox{-0.4\totalheight}{$\begin{array}{|L|c|c|c|c|c|}
\hline
\text{Hexadécimal} & 5 & 9 & A & 7 & 5\\\hline
\text{Pseudo-décimal} & 5 & 9 & 10 & 7 & 5  \\\hline
\text{Binaire} & 0101 & 1001 & 1010 & 0111 & 0101 \\\hline
\end{array}$}

Donc $\base{101010}{16}=\base{1011001101001110101}{2}$.
\end{questions}
\end{corrige}

% NEW 2025

\begin{exo}{Codes transpondeur et base octale}{Lycée Augustin Fresnel, Caen}{2}{10} 
En aéronautique, un transpondeur est un dispositif électronique embarqué dans un aéronef qui émet une message radio (codé) quand il reçoit une interrogation par radio émise par un faisceau radar. Les avions possèdent des transpondeurs pour permettre aux radars de les identifier et de faciliter leur suivi. Afin de bien identifier les avions dont ils ont la charge sur leurs écrans, les contrôleurs aériens demandent aux pilotes, par radio, de régler un code de 4 chiffres sur leurs transpondeurs.
Les codes transpondeur sont toujours constitués de \textit{4 chiffres en base 8}, par exemple \og 7040 \fg.
\begin{questions}
\item Donner la séquence de chiffres utilisée pour exprimer un nombre en base~8.
\item Quel est le nombre de bits nécessaires à l'écriture en base 2 du plus grand chiffre cité à la question précédente ?
\item En déduire le nombre de bits total nécessaires pour représenter en base 2 un code transpondeur complet.
\item Quel est le nombre total de codes transpondeur disponibles avec ce système ?
\end{questions}
\end{exo}

\begin{corrige}
\begin{questions}
\item En base 8, on utilise les chiffres 0, 1, 2, 4, 5, 6 et 7.
\item Il faut 3 bits pour coder 7 en binaire : $\base{7}{8} = \base{111}{2}$.
\item Il faut $4 \times 3 = 12$ bits pour encoder un code transpondeur en binaire.
\item On dispose au total de $8^4 = 2^12 = 4096$ codes différents, ce qui est largement suffisant pour attribuer un code unique à chaque avion d'un même secteur.
\end{questions}
\end{corrige}


%%% 12

\begin{exo}{Algorithme de conversion}{\null}{2}{10} 
\label{algo-conversion-decimal-binaire}
\NathanLiveVideo[\PictoVideo\ Retrouvez le corrigé de cet exercice en vidéo.]{algorithme de conversion}{https://media.prepamath.fr/IL1NSIch01exAlgoConv}

\qrset{height=1.1cm,version=5}\rput(-1,0.2){
\psframebox{\qrcode{https://media.prepamath.fr/IL1NSIch01exAlgoConv}}}
\vspace*{-10pt}

\'Ecrire un algorithme permettant de saisir un nombre décimal et de le convertir en binaire.
\end{exo}

\begin{corrige}
\begin{algorithme}{Algorithme}
n prend une valeur entière entrée par l'utilisateur
b est une chaîne de caractères vide

Tant que n $\neq$ 0:
   q $\leftarrow$ partie entière de n/2
   reste $\leftarrow$ n-2*q
   On convertit reste en chaîne de caractères
   b $\leftarrow$ reste + b
   n $\leftarrow$ q
Fin du Tant que

Afficher b
\end{algorithme}

\Par\enlargethispage*{\baselineskip}

Notre objectif est de construire une chaîne de caractères, composée de 0 et de 1, en partant de la fin car pour convertir un nombre décimal en binaire, on prend les restes des divisions euclidiennes en partant de la fin. On initialise donc une chaîne de caractères vide (ici, \texttt{b}). Nous voyons sur les conversions faites dans l'exercice \ref{exo-conversion-decimal-binaire} que l'on s'arrête quand le quotient est nul. Notre objectif sera de créer une boucle qui transformera \texttt{n} en le quotient de la division euclidienne de $n$ par 2. La condition pour exécuter les instructions de la boucle est donc \og $n\neq0$ \fg. 

%Dans la boucle, on commence par calculer le quotient : c'est la partie entière de $\dfrac{n}{2}$. On affecte le résultat à la variable \texttt{q};
%\item la variable \texttt{reste} représente le reste de la division euclidienne, donc est égale à $n-2q$;
%\item dans la logique utilisée ici, on est obligé de convertir ce résultat (ce nombre) en chaîne de caractères pour pouvoir construire la chaîne de caractères \texttt{b} en mettant bout-à-bout les chaînes \texttt{reste} et \texttt{b} (ce qu'il y avait avant dans \texttt{b}).
%\end{itemize}

\Par

\begin{listing}{En Python}{01-12-01.py}%\nathanliveProgWithoutText
\end{listing}
\end{corrige}

\thumb
\AfficheCorrige
