\begin{exercise}[subtitle={QCM}, step={1}, origin={Annales}, topics={  }, tags={  }]
    \begin{enumerate}
        \item On considère les codes ASCII en écriture hexadécimale (en base 16).

        Le code ASCII de la lettre a est 0x61, celui de la lettre b est 0x62, celui de la lettre c est 0x63, etc.

        Quel est le code ASCII, en hexadécimal, de la lettre r (c'est la 17e lettre de l'alphabet usuel).
        \begin{tasks}(4)
            \task 0x78
            \task 0x72
            \task 0x7A
            \task 0x6A
        \end{tasks}

    \item Parmi les caractères ci-dessous, lequel ne fait pas partie de la table ASCII?
        \begin{tasks}(4)
            \task 3
            \task ^
            \task ç
            \task B
        \end{tasks}

    \item Parmi les tables suivantes, laquelle contient le plus de caractères?
        \begin{tasks}(4)
            \task Word
            \task ASCII
            \task ISO-8859-1
            \task Unicode UTF-8
        \end{tasks}

    \item Parmi les encodages suivants, lequel stocke les caractères avec le moins de bits.
        \begin{tasks}(4)
            \task Word
            \task ASCII
            \task ISO-8859-1
            \task Unicode UTF-8
        \end{tasks}

        \item Laquelle des quatre expressions suivantes a-t-elle pour valeur la liste [1, 2, 5, 10] ?
            \begin{tasks}(2)
                \task \mintinline{python}{[i for i in range(4) if i<2] }
                \task \mintinline{python}{[i for i in range(4)] }
                \task \mintinline{python}{[i*i + 1 for i in range(4)] }
                \task \mintinline{python}{[i*i - 2*i + 2 for i in range(4)] }
            \end{tasks}

        \item  Que vaut l'expression \mintinline{python}{[ 2*k for k in range(5) ]} ?
            \begin{tasks}(4)
                \task \mintinline{python}{[0,2,4,6,8] }
                \task \mintinline{python}{[2,4,6,8,10] }
                \task \mintinline{python}{[1,2,4,8,16] }
                \task \mintinline{python}{[2,4,8,16,32] }
            \end{tasks}

        \item  On définit ainsi une liste M par

            \mintinline{python}{M = [['A','B','C','D'], ['E','F','G','H'], ['I','J','K','L']] }

            Que vaut l'expression \mintinline{python}{M[2][1]}?
            \begin{tasks}(4)
                \task \mintinline{python}{'G'}
                \task \mintinline{python}{'J'}
                \task \mintinline{python}{'E'}
                \task \mintinline{python}{'B'}
            \end{tasks}

        \item On définit : \mintinline{python}{t = [2, 8, 9, 2] }

            Quelle est la valeur de l'expression \mintinline{python}{[ x*x for x in t ]} ?
            \begin{tasks}(2)
                \task
                \task une erreur
                \task \mintinline{python}{[[2, 8, 9, 2], [2, 8, 9, 2]] }
                \task \mintinline{python}{[2, 8, 8, 9, 9, 9, 2, 2, 2, 2]}
                \task \mintinline{python}{[4, 64, 81, 4]}
            \end{tasks}

        \item Quelle méthode est utilisée via une requête HTTP pour envoyer une image via un formulaire HTML ?
            \begin{tasks}(4)
                \task HEAD
                \task PUT
                \task POST
                \task GET
            \end{tasks}

        \item Quel code d'erreur renvoie un serveur Web, lorsque la ressource demandée par une requête n'existe pas ?
            \begin{tasks}(4)
                \task 100
                \task 200
                \task 404
                \task 504
            \end{tasks}


    \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Listes et Tuples}, step={1}, origin={Annales}, topics={  }, tags={  }]
    Les questions suivantes sont indépendantes, elles peuvent être traitées dans l'ordre que vous voulez.

    La réponse à chaque question sera mise dans un fichier séparé nommé \texttt{ex2\_question....py} et contiendra la fonction, des tests.
    \begin{enumerate}
        \item Écrire une fonction, \mintinline{python}{moyenne}, qui prend en argument une liste de valeurs et qui renvoie la moyenne des valeurs.
        \item Écrire une fonction, \mintinline{python}{supprime_doublons}, qui prend en argument une liste et qui renvoie où les éléments en double ont été enlevé (on en gardera un seul).
        \item Écrire une fonction, \mintinline{python}{minimum}, qui prend en argument une liste de nombre et qui renvoie la valeur du minimum de la liste.
        \item Écrire une fonction, \mintinline{python}{moyenne_pondéré} qui prend arguments deux listes de même longueur (une liste \texttt{valeurs} et une liste \texttt{poids}) et qui renvoie la moyenne pondérée de ces valeurs.

            Par exemple si \mintinline{python}{valeurs = [1, 2, 3]} et \mintinline{python}{poids = [0, 10, 30]} on fera le calcul
            \[
                \frac{1\times 0 + 2\times10 + 3\times20}{0+10+20} = 2.75
            \]
    \end{enumerate}
\end{exercise}


\begin{exercise}[subtitle={str et unicode}, step={1}, origin={Annales}, topics={  }, tags={  }]
    Les questions suivantes sont indépendantes, elles peuvent être traitées dans l'ordre que vous voulez.


    La réponse à chaque question sera mise dans un fichier séparé nommé \texttt{ex3\_question....py}. Les fonctions devront être accompagnées de tests.
    \begin{enumerate}
        \item Afficher les 60 caractères après le caractère numéro 128514 sous forme d'un tableau à 6 lignes et 10 colonnes.
        \item Écrire une fonction, \mintinline{python}{compte_e}, qui prend en argument une chaine de caractères et qui renvoie le nombre de e.
        \item Écrire une fonction, \mintinline{python}{enleve}, qui prend en argument un caractère et une chaine de caractères et qui la chaine de caractères sans le caractère en question.
    \end{enumerate}

\end{exercise}
