\thumb
% QCM1

\begin{qcm}{Vérification des connaissances}{5}
Pour chacune des propositions, choisir la réponse correcte. Aucune justification n'est demandée.

\begin{questions}
\item Dans un tableur, toute formule doit commencer par le signe \og 
$=$\fg{}...

\begin{tabularx}{\linewidth}{@{}XX@{}}
\choix Vrai & 
\choix Faux
\end{tabularx}
\item Dans un tableur, nous avons mis des nombres dans la colonne A, 
de la ligne 1 à la ligne 10. Pour calculer leur somme, on doit entrer 
dans une cellule la formule...\resetchoix

\begin{tabularx}{\linewidth}{@{}XX@{}}
\choix =SOMME(A1\string;A10) & 
\choix =SOMME(A1\string:A10)
\end{tabularx}
  
\item Dans un tableur, quand on souhaite copier une formule vers les cellules adjacentes, on...\resetchoix

\begin{tabularx}{\linewidth}{@{}XX@{}}
\choix étire la formule & 
\choix glisse-colle la formule
\end{tabularx}

\item Dans un algorithme, quand on affecte la valeur \og 5 \fg{} à une variable $x$, on écrit...\resetchoix

\begin{tabularx}{\linewidth}{@{}XX@{}}
\choix $x$ prend la valeur 5 & 
\choix $x$ donne la valeur 5
\end{tabularx}
\end{questions}
\end{qcm}

% QCM1corr

\begin{corrige}
\begin{questions}
\item Réponse \choix[a]. En effet, il faut absolument que toutes les 
formules commencent par le signe \og $=$\fg{} sinon, le tableur ne 
comprend pas que ce que nous écrivons est une formule, et il ne fera 
donc aucun calcul.

\item Réponse \choix[b]. La formule à insérer est : \og SOMME(A1\string:A10) 
\fg. 

\item Réponse \choix[a]. On étire la formule pour la copier dans les 
cellules adjacentes (à côté, en-dessous ou au-dessus). Cette action se 
fait en cliquant sur la cellule où la formule est entrée, puis on 
clique sur le carré noir en bas à droite et on bouge la souris vers 
les cellules où l'on souhaite copier la formule.

\item Réponse \choix[a]. On écrit : \og $x$ prend la valeur 5 \fg. En 
effet, $x$ ne donne pas la valeur 5 car on souhaite qu'elle prenne 
cette valeur.

\end{questions}
\end{corrige}

% VF2
% 
% \begin{vf}{Vérification des connaissances}{5}
% Répondre par \og vrai \fg{} ou \og faux \fg{} aux affirmations suivantes. 
% 
% Aucune justification n'est demandée.
% 
% \begin{questions}
% \item Dans un tableur, toute formule doit commencer par le signe \og = \fg.
% 
% \item Dans un tableur, on souhaite calculer les images de quelques nombres par la fonction définie par $f(x)=-2x+6$. On écrit ces nombres sur la ligne 1, de la colonne A à la colonne F et on souhaite avoir leur image sur la ligne 2.
% 
% La formule à écrire dans la cellule A2 est : \og =$-$2A1+6 \fg{}
% 
% \item L'algorithme suivant permet de calculer $1+2+3+\cdots+49+50$.
% \begin{center}
% \begin{algorithme}
% Variables :
% \quad i est un entier
% \quad s est un entier
% Initialisation :
% \quad s prend la valeur 1
% Traitement :
% \quad Pour i allant de 1 à 50
% \quad\quad s prend la valeur s+i
% \quad Fin du Pour
% Sortie :
% \quad Afficher s
% \end{algorithme}
% \end{center}
% \end{questions}
% \end{vf}
% 
% % VF2corr
% 
% \begin{corrige}
% \begin{questions}
% \item \emph{Vrai}. En effet, il faut absolument que toutes les formules commencent par le signe \og = \fg{} sinon, le tableur ne comprend pas que ce que nous écrivons est une formule, et il ne fera donc aucun calcul.
% 
% \item \emph{Faux}. En effet, la formule à écrire est : \og =$-$2*A1+6 \fg{} Il est nécessaire de mettre l'astérisque entre \og $-2$ \fg{} et \og A1 \fg{} pour indiquer une multiplication, sans quoi le tableur ne comprendra pas.
% 
% \item \emph{Faux}. Nous pouvons suivre pas à pas l'algorithme et écrire les résultats dans un tableau pour comprendre ce qu'il fait pour les premières valeurs de $i$ :
% 
% \Par
% 
% % \begin{center}
% % \begin{tabular}{|L|*6{Sc|}}
% % \hline
% % Valeurs de $i$ & \cellcolor{gray}  & 1 & 2 & 3 & 4 & $\cdots$ \\ 
% % \hline
% % Valeurs de $s$ & 1 & 1+1=2 & 2+2=4 & 4+3=7 & 7+4=11 & $\cdots$ \\ 
% % \hline
% % \end{tabular}
% % \end{center}
% 
% \Par
% 
% On constate que c'est à cause de l'initialisation de $i$ que la boucle ne calcule pas $1+2+3+\cdots+49+50$. En effet, si on avait initialisé $i$ à 0 avant la boucle, on aurait eu :
% 
% \Par
% % 
% % \begin{center}
% % \begin{tabular}{|L|*6{Sc|}}
% % \hline
% % Valeurs de $i$ & \cellcolor{gray}  & 1 & 2 & 3 & 4 & $\cdots$ \\ 
% % \hline
% % Valeurs de $s$ & 0 & 0+1=1 & 1+2=3 & 3+3=6 & 6+4=10 & $\cdots$ \\ 
% % \hline
% % \end{tabular}
% % \end{center}
% 
% \Par
% 
% Alors, la boucle aurait bien calculé $1+2+3+\cdots+49+50$.
% \end{questions}
% \newpage
% \end{corrige}
% 
% \newpage
% 

% EX3

\sectionnn{Tableur}

\begin{exo}{Avec une fonction}{Extrait du DNB 2013, Métropole}{1}{10}
On a utilisé un tableur pour calculer les images de différentes valeurs de $x$ par une fonction affine $f$ et par une autre fonction $g$. Une copie de l'écran obtenu est donnée ci-dessous.
\vspace*{-1em}
\begin{center}
\includegraphics{334_13_17}
\end{center}

\begin{questions}
\item Quelle est l'image de $-3$ par $f$ ?
\item Calculer $f(7)$.
\item Donner l'expression de $f(x)$.
\item On sait que $g(x)=x^2+4$. Une formule a été saisie dans la cellule B3 et recopiée ensuite vers la droite pour compléter la plage de cellules C3\string:H3. Quelle est cette formule ?
\end{questions}
\end{exo}

% EX3corr

\begin{corrige}
\begin{questions}
\item On lit la valeur de $f(-3)$ dans la cellule B2. 

L'image de $-3$ par $f$ vaut~22.

\item Dans la barre de formule, on voit que pour calculer l'image de $-2$ par $f$, on multiplie $-2$ par $-5$ puis on lui ajoute 7. On va donc faire de même pour calculer l'image de 7 :
\begin{align*}
f(7) & = -5\times7+7\\
& = -35+7\\
& = -28.
\end{align*}
\item $f$ est la fonction définie par :
\[ f(x)=-5x+7.\]
\item Pour calculer l'image de $-3$ (contenue dans la cellule B1) par la fonction $g$, il faut taper dans la cellule B3 la formule : \og = B1\verb+^+2 + 4 \fg.

\begin{attention}
N'oubliez pas le signe \og $=$ \fg{} au tout début de la formule  (sinon le tableur n'effectuera pas le calcul et considérera la suite de caractères tapée comme du texte qui apparaîtra dans la cellule tel quel). 
\end{attention}

\begin{methode}
Pour élever un nombre à une certaine puissance à l'aide d'un tableur, il faut utiliser le signe \og \verb+^+ \fg{} et pour multiplier deux nombres, il faut utiliser le signe \og * \fg.
\end{methode}
\end{questions}
\end{corrige}

% EX4

\begin{exo}{En statistiques}{Extrait du DNB 2016, Amérique du nord}{1}{10}
Une station de ski a relevé le nombre de forfaits « journée » vendus lors de la saison écoulée (de décembre à avril).

Les résultats sont donnés ci-dessous dans la feuille de calcul d'un tableur.

\Par\enlargethispage*{3em}

 \scalebox{0.95}{%
 \begin{tabular}{|L|m{1.5cm}|*6{Zc|}}
 \hline\tabulartitle
   & \centering\arraybackslash A & B & C & D & E & F & G\\
 \hline
 1 & \centering\arraybackslash mois & décembre & janvier & février & mars & avril & total\\
 \hline
 2 & nombre de forfaits journées vendus & \numprint{60457} & \numprint{60457} & \numprint{148901} & \numprint{100058} & \numprint{10035} & \\
 \hline
 \end{tabular}}

\begin{questions}
\item
\begin{questions}
\item Quel est le mois durant lequel la station a vendu le plus de forfaits « journée » ?
\item Ninon dit que la station vend plus du tiers des forfaits durant le mois de février.

A-t-elle raison ? Justifier.
\end{questions}

\item Quelle formule doit-on saisir dans la cellule G2 pour obtenir le total des forfaits « journée » vendus durant la saison considérée
?

\item Calculer le nombre moyen de forfaits « journée » vendus par la station en un mois. On arrondira le résultat à l'unité.
\end{questions}
\end{exo}

% EX4corr

\begin{corrige}
\begin{questions}
\item
\begin{questions}
\item Le mois durant lequel la station a vendu le plus de forfaits \mbox{«~journée~»} est le mois de février. En effet, elle a vendu \numprint{148901} forfaits, nombre supérieur à tous les autres du tableau.

\item Pour savoir si la station vend plus du tiers des forfaits en février, il faut connaître le nombre total de forfaits vendus :
\[
\numprint{60457} + \numprint{60457} + \numprint{148901} + \numprint{100058} + \numprint{10035}=\numprint{379908}.
\]
De plus, $\dfrac{\numprint{148901}}{\numprint{379908}}\approx0,39$ et $\dfrac{1}{3}\approx0,33$.

Ainsi, Ninon a raison : la station vend bien plus du tiers des forfaits en février.
\end{questions}

\item La cellule G2 doit contenir la somme des nombres de forfaits; on doit donc y mettre la formule :
\begin{center}
=SOMME(B2\string:F2)
\end{center}

\item Le nombre moyen de forfaits est obtenu en divisant le nombre total de forfaits et en divisant ce total par le nombre de mois considérés : 
\[
\dfrac{\numprint{379908}}{5}=\numprint{75981,6}.
\]
Le nombre moyen de forfaits vendus est donc \numprint{75982} (arrondi à l'unité).
\end{questions}
\end{corrige}

% EX5

\begin{exo}{Soldes}{Extrait du DNB 2016, Métropole}{2}{15}
Lors des soldes, un commerçant décide d'appliquer une réduction de 30\;\% sur l'ensemble des articles de son magasin.
\begin{questions}
\item L'un des articles coûte 54 \euro{} avant la réduction. Calculer son prix après la réduction.
\item Le commerçant utilise la feuille de calcul ci-dessous pour calculer les prix des articles soldés.

 \hspace*{-1em}
 \begin{tabular}{|C|Z{m{15mm}}|*5{Zc|}}
 \hline
 \tabulartitle
  & \centering\arraybackslash A & 
    \centering\arraybackslash B & 
    \centering\arraybackslash C & 
    \centering\arraybackslash D & 
    \centering\arraybackslash E & 
    \centering\arraybackslash F \\
  \hline
 1 & prix avant réduction & 12,00 \euro & 14,80 \euro & 33,00 \euro & 44,20 \euro & 85,50 \euro\\
 \hline
 2 & réduction de 30\;\% & 3,60 \euro & 4,44 \euro & 9,90 \euro & 13,26 \euro & 25,65 \euro\\
 \hline
 3 & prix soldé & & & & &  \\
 \hline
 \end{tabular}

\begin{questions}
\item Pour calculer la réduction, quelle formule a-t-il pu saisir dans la cellule B2 avant de l'étirer sur la ligne 2 ?
\item Pour obtenir le prix soldé, quelle formule peut-il saisir dans 
la cellule B3 avant de l'étirer sur la ligne 3 ?
\end{questions}
\item Le prix soldé d'un article est 42,00 \euro. Quel était son prix initial ?
\end{questions}
\end{exo}

% EX5corr

\begin{corrige}
\begin{questions}
\item \begin{aretenir}
Lorsqu'une quantité subit une réduction de $t\;\%$, il faut la multiplier par $\left(1-\dfrac{t}{100}\right)$ pour avoir le résultat final.
\end{aretenir}
\[
54\times\left(1-\dfrac{30}{100}\right)=54\times0,7=37,8.
\]
Ainsi, un article qui coûte 54 \euro{} avant réduction coûtera 37,80 
\euro{} après la réduction de 30\;\%.

\enlargethispage{2em}

\item 
\begin{questions}
\item La ligne 2 contient la réduction en euros qui équivaut à 30\;\% des prix indiqués dans la ligne 1. Pour obtenir cette valeur en euro, on multiplie les prix par $\dfrac{30}{100}$, donc dans la cellule B2, on entre la formule :
\begin{center}
$\rm =B1*30/100$\qquad ou \qquad $\rm =B1*0,3$
\end{center}

\item Pour obtenir le prix soldé, on soustrait au prix initial la réduction de la ligne 2 ; on peut donc entrer dans la cellule B3 la formule :
\begin{center}
$\rm =B1-B2$\qquad ou bien\qquad $\rm =B1*0,7$
\end{center} 
\end{questions}

\item Posons $x$ le prix initial d'un article qui coûte 42,00 \euro{} après réduction de 30\;\%, c'est-à-dire après avoir multiplié par $1-0,3=0,7$. Alors :
\[
x\times0,7=42\qquad\text{soit :}\qquad x=\dfrac{42}{0,7}=60.
\]
Le prix initial était donc 60 \euro.
\end{questions}
\end{corrige}

%% EX5
\newpage

\sectionnn{Programmation sous Scratch}


\begin{exo}{En arithmétique (cf. chapitre \ref{chap:nombres-premiers})}{Collège Captal, Paris}{2}{5}
\textit{Vous pouvez retrouver ce programme en tapant:}
\begin{center}
\texttt{https://scratch.mit.edu/projects/491903203}
\end{center} 

\qrset{height=1.1cm,version=5}
\rput(-1,0){\psframebox{\qrcode{https://scratch.mit.edu/projects/491903203}}}
\begin{scratch}[scale=0.8]
    \blockinit{quand \greenflag est cliqué}
    \blockvariable{mettre \selectmenu{n} à \ovalnum{1}}
    \blockvariable{mettre \selectmenu{s} à \ovalnum{1}}
    \blockrepeat{répéter \ovalnum{20} fois}
    {
    \blockvariable{mettre \selectmenu{n} à 
\ovaloperator{\ovalvariable{n} * \ovalnum{0.5}}}
    \blockvariable{ajouter \ovalvariable{n} à \selectmenu{s}}
    }
    \blocklook{dire \ovalvariable{s}}
 \end{scratch}\begin{minipage}[t]{7cm}

Interpréter le résultat du programme ci-contre.

\Par

\hspace{1cm} \fbox{\hspace{1cm}\includegraphics[trim={0cm 1cm 44mm 
0cm},clip]{336_13_18}\hspace{1cm}}
\end{minipage}\hfill

% \end{multicols}
%\begin{minipage}[t]{7cm}
% \NathanLiveProg[\normalfont\selectfont \textit{Pour accéder à ce 
%programme en ligne :}]{En 
%arithmétique}{scratch.mit.edu/projects/491903203}
%\end{minipage}
\end{exo}

\begin{corrige}
Ce programme est constitué d'une boucle qui répète 20 fois la même 
instruction. À chaque passage dans la boucle, la variable $n$ est 
multipliée par 0,5 et on ajoute le résultat obtenu à $s$. On obtient 
pour les premières valeurs ;
\begin{itemize}
\item 1\ier{} passage dans la boucle : 
$n=1\times0,5=\textcolor{DR}{0,5}$ et $s=1+\textcolor{DR}{0,5}$;
\item 2\ieme{} passage dans la boucle : 
$n=0,5\times0,5=\textcolor{DR}{0,5^2}$ et 
$s=1+0,5+\textcolor{DR}{0,5^2}$;
\item 3\ieme{} passage : $n=0,5^2\times0,5=\textcolor{DR}{0,5^3}$ et 
$s=1+0,5+0,5^2+\textcolor{DR}{0,5^3}$;
\item etc.
\end{itemize}
On comprend alors que ce programme calcule la somme :
\[
1+0,5+0,5^2+\cdots+0,5^{20}.
\]
Le lutin nous donne une valeur approchée de cette somme.

\end{corrige}


%% EX6

\enlargethispage*{4em}
\begin{exo}{En probabilités (cf. chapitre \ref{chap:probabilites})}{Collège Jule Ferry, Paris}{2}{5}
On considère le programme ci-dessous, que vous pouvez retrouver sur:
\begin{center}
\texttt{https://scratch.mit.edu/projects/491908535}
\end{center}

\qrset{height=1.1cm,version=5}
\rput(-1,0){\psframebox{\qrcode{https://scratch.mit.edu/projects/491908535}}}
\begin{scratch}[scale=0.8]
  \blockinit{quand \greenflag est cliqué}
  \blockvariable{mettre \selectmenu{n} à \ovalnum{0}}
  \blockrepeat{répéter \ovalnum{100} fois}{
  \blockvariable{mettre \selectmenu{Dé1} à \ovaloperator{nombre 
aléatoire entre \ovalnum{1} et \ovalnum{6}}}
  \blockvariable{mettre \selectmenu{Dé2} à \ovaloperator{nombre 
aléatoire entre \ovalnum{1} et \ovalnum{6}}}
  \blockif{si \booloperator{\ovaloperator{\ovalvariable{Dé1}+
\ovalvariable{Dé2}}=\ovalnum{7}} alors}{\blockvariable{mettre 
\selectmenu{n} à \ovaloperator{\ovalvariable{n}+\ovalnum{1}}}}
  }
  \blocklook{dire \ovaloperator{\ovalvariable{n}/\ovalnum{100}}}
\end{scratch}

\newpage

\begin{questions}
\item Quand on l'exécute une première fois, le lutin nous dit que 
l'on obtient 0,25. Qu'est-ce que cela veut dire ?
\item On change tous les \og 100 \fg{}  en \og 500 \fg. En exécutant 
ce programme plusieurs fois de suite, on obtient les résultats 
suivants : 
\[
0,18 \quad;\quad 0,16 \quad;\quad 0,18 \quad;\quad 0,17 \quad;\quad 
0,16 \quad;\quad 0,16 \quad;\quad 0,15
\]
Que peut-on déduire de ces résultats ?
\end{questions}
\end{exo}

% EX12corr

\begin{corrige}
\begin{questions}
\item Le programme est constitué d'une boucle qui exécute des 
instructions 100 fois. Ces instructions consistent à choisir deux 
nombres entiers au hasard entre 1 et 6 et à les placer dans  \og Dé1 \fg{} et \og Dé2 \fg{}. 
On peut imaginer ici que cela simule le lancer de deux dés cubiques.

Ensuite, on effectue un test : si la somme de ces nombres est égale 
à 7, on incrémente la variable $n$ (on lui ajoute 1). On peut donc 
voir que $n$ représente le nombre de \og 7 \fg{} obtenus en faisant la 
somme de \og Dé1 \fg{} et \og Dé2 \fg.

Enfin, après être sorti de la boucle, on divise $n$ par 100, ce qui 
revient à calculer la fréquence de \og 7 \fg{} obtenus sur les 100 
simulations.

Ainsi, \og 0,25 \fg{} signifie que l'on a obtenu 25\;\% de \og 7 
\fg{} en faisant la somme des deux dés (soit un quart des lancers).

\item En changeant tous les \og 100 \fg{} par \og 500 \fg, on 
augmente le nombre de simulations et on peut supposer que la fréquence 
obtenue est plus proche de la probabilité d'obtenir un 7.

Tous les résultats sont assez proches (entre $0,15$ et $0,18$) ; on 
peut alors conclure que la probabilité d'obtenir un 7 en faisant la 
somme de deux dés lancés est comprise entre $0,15$ et $0,18$.
\end{questions}
\end{corrige}

\begin{exo}{Nombres premiers (cf. chapitre \ref{chap:nombres-premiers})}{Collège Hoche, Versailles}{2}{10}
Expliquer le fonctionnement du programme qui suit, à retrouver sur:
\begin{center}
\texttt{https://scratch.mit.edu/projects/491911895}
\end{center} 

\qrset{height=1.1cm,version=5}
\rput(-1,0){\psframebox{\qrcode{https://scratch.mit.edu/projects/491911895}}}
\begin{scratch}[scale=0.8]
  \blockinit{quand \greenflag est cliqué}
\blockvariable{mettre \selectmenu{compteur} à \ovalnum{2}}
\blocksensing{demander \ovalnum{Saisir un nombre entier} et attendre}
\blockrepeat{répéter jusqu'à ce que 
\booloperator{\ovalvariable{compteur}>\ovaloperator{
\ovalsensing{réponse} - \ovalnum{1}}}}{
\blockif{si \booloperator{\ovaloperator{arrondi de 
\ovaloperator{\ovalsensing{réponse}/\ovalvariable{compteur}}}= 
\ovaloperator{\ovalsensing{réponse}/\ovalvariable{compteur}}} alors}
{\blocklook{dire \ovaloperator{regrouper 
\ovalsensing{réponse} et \ovalnum{n'est pas un nombre premier.}}}
\blockstop{stop \selectmenu{ce script}}
}
\blockvariable{ajouter \ovalnum{1} à \selectmenu{compteur}}
}
\blocklook{dire \ovaloperator{regrouper 
\ovalsensing{réponse} et \ovalnum{est un nombre premier.}}}
\end{scratch}
\end{exo}

\begin{corrige}
La variable \emph{compteur} est initialisée à 2 et incrémentée dans 
la boucle \og Répéter jusqu'à \fg{} : on va donc parcourir tous les 
entiers naturels de 2 au nombre qui précède celui entré au clavier.

Dans la boucle, il y a un test : 
\begin{center}
\og  si arrondi de réponse/compteur = réponse/compteur \fg{}.
\end{center}
On teste ici si l'arrondi du quotient 
$\dfrac{\text{réponse}}{\text{compteur}}$ est égal au quotient 
lui-même. Si c'est le cas, alors cela signifie que la variable 
\emph{compteur} divise le nombre entré au clavier, et donc que ce dernier n'est pas premier. La boucle est alors arrêtée avec 
l'instruction \og stop ce script \fg.

L'algorithme recherche donc s'il existe un entier inférieur à celui entré au clavier qui divise ce dernier, afin de voir s'il est premier ou non.
\end{corrige}


% EX6
% 
% \begin{exo}{Algorithme en arithmétique}{En lien avec le chapitre \ref{chap:nombres-premiers}}{1}{5}
% Soit l'algorithme suivant :
% 
% \Par
% 
% \begin{algorithme}
% Variables :
% \qquad L est une liste de nombres
% \qquad k est un entier naturel
% Traitement :
% \qquad Pour k allant de 0 à 100
% \qquad\qquad L[k] prend la valeur $7\times\text{k}$
% \qquad Fin du Pour
% Sortie :
% \qquad Afficher L
% \end{algorithme}
% 
% \Par
% 
% Quel est le contenu de la liste L ?
% \end{exo}
% 
% % EX6corr
% 
% \begin{corrige}
% Dans la boucle \og Pour \fg, on effectue les calculs $7\times0$, $7\times1$, $7\times2$, $7\times3$, ... jusqu'à $7\times 100$, et on insère dans la liste L tous les résultats.
% 
% L va donc contenir tous les multiples de 7 de 0 à 700.
% \end{corrige}
% 
% % EX7
% 
% \begin{exo}{Algorithme en géométrie}{En lien avec le chapitre \ref{chap:trigonometrie}}{1}{5}
% On considère l'algorithme suivant :
% 
% \Par
% 
% \begin{algorithme}
% Variables :
% \qquad x, y, z, t, c et s sont six nombres non nuls
% Initialisation :
% \qquad Demander à l'utilisateur les valeurs de x et y
% Traitement :
% \qquad z prend la valeur $\sqrt{\text{x}^\text{2} + \text{y}^\text{2}\strut}$
% \qquad c prend la valeur y/z
% \qquad s prend la valeur x/z
% \qquad t prend la valeur x/y
% Sortie : 
% \qquad Afficher c, s et t
% \end{algorithme}
% 
% \Par
% 
% Si $x$ et $y$ représentent les longueurs des deux côtés perpendiculaires d'un triangle rectangle, que permet d'afficher cet algorithme ?
% \end{exo}
% 
% % EX7corr
% 
% \begin{corrige}
% Notons ABC ce triangle rectangle en A où ${\rm AB}=y$ et ${\rm AC}=x$.
% 
% On reconnaît alors dans l'algorithme le calcul $z=\sqrt{x^2+y^2}$ qui donne la longueur de l'hypoténuse BC.
% 
% De plus, $c=\dfrac{y}{z}=\dfrac{\rm AB}{\rm BC}$ représente $\cos\widehat{\rm ABC}$, $s=\dfrac{x}{z}=\dfrac{\rm AC}{\rm BC}$ représente $\sin\widehat{\rm ABC}$ et $t=\dfrac{x}{y}=\dfrac{\rm AC}{\rm AB}$ représente $\tan\widehat{\rm ABC}$.
% \end{corrige}
% 
% % EX8
% 
% \begin{exo}{En statistiques}{En lien avec le chapitre \ref{chap:statistiques}}{1}{10}
% \enlargethispage*{\baselineskip}
% On considère l'algorithme page ci-dessous.
% \begin{algorithme}
% Variables :
% \qquad X et N sont deux listes de même longueur
% \qquad i est un entier naturel
% \qquad m est un nombre
% Initialisation :
% \qquad Demander à l'utilisateur la valeur de X et de N
% \qquad i, m et s prennent la valeur 0
% Traitement :
% \qquad Tant que X[i] existe 
% \qquad\qquad m prend la valeur m+X[i]*N[i]
% \qquad\qquad s prend la valeur s+N[i]
% \qquad\qquad i prend la valeur i+1
% \qquad Fin du Tant que
% \qquad m prend la valeur m/s
% Sortie :
% \qquad Afficher m
% \end{algorithme}
% \begin{questions}
% \item Exécuter cet algorithme pour X = [5 ; 2 ; 6] et N = [1 ; 2 ; 2].
% \item Que permet de calculer cet algorithme ?
% \end{questions}
% 
% 
% \end{exo}
% 
% % EX8corr
% 
% \begin{corrige}
% \begin{questions}
% \item X = [5 ; 2 ; 6] et N = [1 ; 2 ; 2]. Exécutons pas à pas l'algorithme :
% 
% \begin{itemize}
% \item X[0] existe donc on exécute les instructions de la boucle \og Tant que \fg{} :
% 
% $m$ prend la valeur $0+5\times1$ car à cette étape, $m=0$ (par initialisation), $\rm X[0]=5$ et $\rm N[0]=1$. Donc $m=5$.
% 
% Ensuite, $s$ prend la valeur $0+1$ car à cette étape, $s=0$ et on lui ajoute la valeur de N[0], donc 1.
% 
% De plus, $i=0+1=1$ (l'instruction \og $i$ prend la valeur $i+1$ \fg{} signifie que l'on ajoute 1 à la valeur qui est déjà dans la variable $i$).
% 
% \item X[1] existe donc on exécute les instructions de la boucle :
% 
% $m$ prend la valeur $5+2\times2=9$, $s$ prend la valeur $1+2=3$ et $i$ prend la valeur $1+1$ donc $i=2$.
% 
% \item X[2] existe donc on exécute les instructions de la boucle :
% 
% $m$ prend la valeur $9+6\times2=21$, $s$ prend la valeur $3+2=5$ et $i$ prend la valeur $2+1$ donc $i=3$.
% 
% \item X[3] n'existe pas donc on sort de la boucle. $m$ prend alors la valeur $\dfrac{m}{s}=\dfrac{21}{5}=4,2$.
% 
% \item On affiche alors la valeur de $m$ : $4,2$.
% \end{itemize}
% 
% \item On reconnaît ici le calcul de la moyenne des valeurs mises dans la liste X, et pondérées par les valeurs de la liste N.
% \end{questions}
% \end{corrige}
% 
% % EX9
% 
% \begin{exo}{Vrai ou faux billet ?}{En lien avec le chapitre \ref{chap:nombres-premiers}}{2}{15}
% On appelle \emph{rang} d'une lettre sa position dans l'alphabet :
% 
% 1 pour A, 2 pour B, 3 pour C, etc.
% 
% L'algorithme suivant permet de dire si le numéro de série d'un billet imprimé avant 2013 est vrai ou faux.
% 
% \Par
% 
% \begin{algorithme}
% Variables :
% \qquad A est une liste
% \qquad k, n et x sont des entiers naturels
% Initialisation :
% \qquad Demander à l'utilisateur la valeur de A
% \qquad n est le nombre de valeurs de A
% \qquad x prend la valeur 0
% Traitement :
% \qquad Pour k allant de 0 à n
% \qquad\qquad Si A[k] est une lettre
% \qquad\qquad\qquad A[k] prend la valeur du rang de la lettre
% \qquad\qquad Fin du Si
% \qquad Fin du Pour
% \qquad x prend la valeur du nombre obtenu en mettant de gauche à
% \qquad droite toutes les valeurs de A
% \qquad Si le reste de la division euclidienne de x par 9 est égal à 8
% \qquad\qquad Afficher "Ce numéro est vrai."
% \qquad Sinon
% \qquad\qquad "Afficher "Ce numéro est faux."
% \qquad Fin du Si
% \end{algorithme}
% 
% \begin{questions}
% \item Expliquer comment fonctionne cet algorithme.
% \item Exécuter cet algorithme sur le numéro \og U13056999935 \fg{}  en vous aidant d'une calculatrice pour les calculs.
% \end{questions}
% \end{exo}
% 
% % EX9corr
% 
% \begin{corrige}
% \begin{questions}
% \item L'algorithme parcourt le numéro entré par l'utilisateur.
% 
% À chaque caractère, il teste si c'est une lettre ou un chiffre. Si c'est une lettre, il la remplace par sa position dans notre alphabet.
% 
% Une fois cette action terminée (boucle \og Pour \fg{} finie), on forme un nombre $x$ en mettant \og bout-à-bout \fg{} tous les nombres. On effectue alors la division euclidienne de $x$ par 9 : si le reste est égal à 8, on affiche que le numéro est vrai, sinon on affiche le contraire.
% 
% \item Ici, $n=11$ car il y a 12 caractères dans le numéro donné.
% 
% L'algorithme transforme la première lettre en nombre : 21 pour U (car U est la 21\ieme{} lettre de notre alphabet).
% 
% Ensuite, on obtient en mettant de gauche à droite tous les nombres de A :
% \[
% x=2113056999935.
% \]
% À l'aide de la calculatrice, on trouve le reste de la division euclidienne de ce nombre par 9 : il est égal à 8.
% 
% L'algorithme affiche alors : \og Ce numéro est vrai. \fg{} 
% \end{questions}
% \end{corrige}
% 
% % EX10
% 
% \begin{exo}{Cryptage affine}{En lien avec les chapitres \ref{chap:nombres-premiers} et \ref{chap:fonctions}}{3}{45}
% À chaque lettre de l'alphabet, on associe un nombre $x$ suivant la règle suivante :\enlargethispage*{2em}
% \[
% \rm A\rightarrow 0\quad;\quad B\rightarrow 1\quad;\quad C\rightarrow 2\quad;\quad\cdots\quad;\quad Y\rightarrow24\quad;\quad Z\rightarrow25
% \]
% On considère la fonction affine $f$ définie par $f(x)=2x+7$. Le cryptage affine d'une lettre associé à la fonction $f$ consiste à :
% \begin{itemize}
% \item regarder le nombre $x$ associé à cette lettre;
% \item calculer $f(x)$;
% \item prendre le reste de la division euclidienne de $f(x)$ par 26;
% \item d'associer au résultat une lettre de l'alphabet.
% \end{itemize}
% 
% Par exemple, pour coder la lettre \og M \fg, 
% \begin{itemize}
% \item on considère le nombre qui est associé à M, c'est-à-dire 12 (car M est la 13\ieme{} lettre de l'alphabet);
% \item on calcule $f(12)=2\times12+7=31$;
% \item on écrit la division euclidienne de 31 par 26 : $31=1\times26+5$;
% \item on associe au reste 5 la lettre F.
% \end{itemize}
% 
% Ainsi, \og M \fg{}  est codée en \og F \fg.
% 
% Pour coder un mot, on code toutes ces lettres de cette façon.
% \begin{questions}
% \item Coder le mot \og MOUTON \fg{} avec ce cryptage et la même fonction $f$.
% \item Crypter le mot \og RE \fg. À la vue de ce résultat, que peut-on conclure quant à la possibilité de décrypter les messages ?
% \item On considère maintenant la fonction affine $g(x)=3x+7$.
% 
% Montrer par l'absurde que le message crypté, quel qu'il soit, peut-être décrypté.
% 
% \emph{Indication : on pourra supposer qu'il existe deux lettres différentes qui sont cryptées en une même lettre.}
% 
% \item Décrypter alors le mot KGHSX.
% 
% \item En utilisant la fonction \og MOD($x$;\;26) \fg{} qui donne le reste de la division euclidienne de $x$ par 26, écrire un algorithme permettant de coder un mot par cryptage affine avec la fonction $g$.
% 
% \emph{Indication : on pourra noter M[i] la $(i-1)$\ieme{} lettre dans le mot M.\\Par exemple, M[0] est la première lettre.}
% \end{questions}
% \end{exo}
% 
% % EX10corr
% 
% \begin{corrige}
% \begin{questions}
% \item La lettre M a été cryptée dans l'exemple donné dans l'énoncé. Il ne reste plus qu'à coder les lettres O, U, T et N.
% \begin{itemize}
% \item $\rm O \rightarrow 14$; $f(14)=2\times14+7=35$ ; $35=1\times26+9$ ; $\rm 11 \rightarrow J$.
% \item $\rm U \rightarrow 20$; $f(20)=2\times20+7=47$ ; $47=1\times26+21$ ; $\rm 21 \rightarrow V$.
% \item $\rm T \rightarrow 19$; $f(19)=2\times19+7=45$ ; $45=1\times26+19$ ; $\rm 19 \rightarrow T$.
% \item $\rm N \rightarrow 13$; $f(13)=2\times13+7=33$ ; $33=1\times26+7$ ; $\rm 7 \rightarrow H$.
% \end{itemize}
% 
% Ainsi, le mot MOUTON est crypté en FJVTJH.
% 
% \item 
% \begin{itemize}
% \item $\rm R \rightarrow 17$; $f(17)=2\times17+7=41$ ; $41=1\times26+15$ ; $\rm 15 \rightarrow P$.
% \item $\rm E \rightarrow 4$; $f(4)=2\times4+7=15$ ; $15=0\times26+15$ ; $\rm 15 \rightarrow P$.
% \end{itemize}
% 
% Ainsi, le mot RE est crypté en PP.
% 
% On s'aperçoit que deux lettres différentes peuvent être cryptées en une lettre identique, donc le décryptage est impossible car il y a plusieurs mots possibles qui donnent le même cryptage : ici par exemple, ER et RE donnent PP.
% 
% \item La question revient à montrer que, contrairement à ce qui s'est passé précédemment avec la fonction $f$, deux lettres différentes ne peuvent pas se crypter par une même lettre. Montrons cela par l'absurde.
% 
% Supposons alors qu'il existe deux nombres $x$ et $x'$ différents et compris entre 0 et 25 tels que les restes des divisions de $3x+7$ et $3x'+7$ par 26 soient égaux : il existe donc deux entiers naturels $k$ et $k'$ tels que :
% \[
% 3x+7=26k+r\quad(1)\qquad\text{et}\qquad 3x'+7=26k'+r\quad(2).
% \]
% $0\leqslant x\leqslant25$ donc $0\leqslant 3x\leqslant75$ et alors $7\leqslant 3x+7\leqslant82$. Ainsi, $0\leqslant k\leqslant 3$ (car $3\times26=72$ et $4\times26=104>82$).
% 
% Il en est de même pour $k'$ : $0\leqslant k'\leqslant 3$.
% 
% \Par
% 
% L'équation $(1)$ donne : $r=3x+7-26k$.
% 
% L'équation $(2)$ donne : $r=3x'+7-26k'$.
% 
% Ainsi, 
% \[
% 3x+7-26k=3x'+7-26k'\qquad\text{soit :}\qquad 3x-3x'=26k-26k'
% \]
% et donc :
% \[
% 3(x-x')=26(k-k')\qquad(3).
% \]
% Supposons que $k\geqslant k'$ (pour que $k-k'\geqslant0$).
% 
% On peut alors conclure que le nombre entier $26(k-k')$ est divisible par 3 (parce qu'il est égal à $3(x-x')$ et que $x-x'$ est un entier naturel). Or, 26 n'est pas un multiple de 3 donc, nécessairement, $k-k'$ est divisible par 3. Or, les entiers $k$ et $k'$ sont compris entre 0 et 3 donc $k-k'$ est aussi compris entre 0 et 3. Il y a donc comme possibilités : $k=k'=0$, $k=k'=3$, $k=3$ et $k'=0$ (car nous avons pris $k\geqslant k'$.
% \begin{itemize}
% \item si $k=k'$ alors l'équation $(3)$ donne : $3(x-x')=0$, soit $x-x'=0$; donc $x=x'$, ce qui est contradictoire avec notre hypothèse de départ qui consistait à prendre $x$ et $x'$ différents.
% 
% \item si $k=3$ et $k'=0$, alors l'équation $(3)$ donne : $3(x-x')=26\times3$, soit $x-x'=26$, ce qui est impossible car $x$ et $x'$ sont compris entre 0 et 25.
% \end{itemize}
% 
% Ainsi, l'hypothèse selon laquelle il existe deux valeurs différentes de $x$ et $x'$ qui donnent le même nombre à la fin est fausse.
% 
% On est donc assuré que n'importe quel message crypté pourra être décrypté.
% 
% \begin{anecdote}
% La différence entre $f(x)$ et $g(x)$ est le coefficient de $x$. Dans $f(x)$, le coefficient est 2 et dans $g(x)$, il est égal à 3. On constate que 2 divise 26, mais que 3 ne divise pas 26. Coïncidence ?... Et bien non ! C'est une condition nécessaire et suffisante pour pouvoir décrypter les messages dans un cryptage affine : le coefficient de $x$ ne doit pas diviser 26. On dit que 3 et 26 sont \emph{premiers entre eux}. 
% \end{anecdote}
% 
% \item \enlargethispage*{2em}
% \begin{itemize}
% \item À la lettre K est associé le nombre 10. On cherche donc le nombre $x$ tel que $3x+7=26k+10$ ($k\in\N$) donc $3x=26k+3$. Si $x=1$ et $k=0$, l'égalité est vraie donc $x=1$ et la lettre qui a été cryptée est alors B.
% 
% \item 6 est associé à G. On cherche $x$ tel que $3x+7=26k+6$, donc $3x+1=26k$.
% 
% Si $k=0$, $3x+1=0$, mais cette équation n'admet pas de solution entière.
% 
% Si $k=1$, $3x+1=26$, soit $3x=25$ mais 25 n'est pas divisible par 3, donc il n'y a pas de solution entière à cette équation.
% 
% Si $k=2$, $3x+1=2\times26=52$, soit $3x=51$, et donc $x=\dfrac{51}{3}=17$. Or, 17 est associé à la lettre R. Donc la lettre initiale est R.
% 
% \item 7 est associé à H. On cherche $x$ tel que $3x+7=26k+7$, soit $3x=26k$. Seul $k=0$ est possible et dans ce cas, $x=0$, ce qui correspond à la lettre A.
% 
% \item 18 est associé à S. On cherche $x$ tel que $3x+7=26k+18$, soit $3x=26k+11$.
% 
% $k=0$ n'est pas possible car l'équation devient : $3x=11$ et 11 n'étant pas divisible par 3, il n'y a pas de solution.
% 
% $k=1$ donne : $3x=26+11=37$, et 37 n'est pas divisible par 3 donc l'équation n'a pas de solution.
% 
% $k=2$ donne : $3x=52+11=63$ et donc $x=\dfrac{63}{3}=21$, qui est associé à la lettre V.
% 
% \item 23 est associé à X. On cherche donc $x$ tel que $3x+7=26k+23$, soit $3x=26k+16$. 
% 
% Si $k=0$, $3x=16$ et l'équation n'a pas de solution entière.
% 
% Si $k=1$, $3x=26+16=42$, soit $x=\dfrac{42}{3}=14$, qui correspond à la lettre O.
% \end{itemize}
% 
% Finalement, KGHSX est le cryptage du mot BRAVO par la fonction $g$.
% 
% \item Un algorithme possible est présenté page ci-contre.
% 
% \Par
% 
% Explications : \og Pour i allant de 0 à n-1 \fg{} signifie que l'on va parcourir le mot M entré par l'utilisateur, \og i \fg{} représentant la position de chaque lettre (de 0 à $n-1$), où $n$ est le nombre de lettres dans le mot M.
% 
% Ensuite, dans cette boucle, on parcourt l'alphabet (représenté par la variable A) avec la boucle \og Tant que x=0 \fg{}  : si la lettre de position $j$ est celle du mot M que l'on veux crypter, on attribue à $x$ la valeur $j$ qui représente la position de la lettre dans l'alphabet, sinon on continue en ajoutant 1 à $j$ pour passer à la lettre suivant dans A.
% 
% Une fois $x$ calculé, on attribue à $r$ la valeur du reste de la division euclidienne de $3x+7$ par 26. Puis, la lettre de position $i$ dans M est cryptée en la lettre de position $r$ dans l'alphabet (A).
% 
% \newpage
% 
% \begin{algorithme}
% Variables :
% \qquad M et A sont des chaînes de caractères
% \qquad i, j, n, x et r sont des entiers
% Initialisation :
% \qquad A prend la valeur \og ABCDEFGHIJKLMNOPQRSTUVWXYZ \fg{} 
% \qquad Demander à l'utilisateur la valeur de M
% \qquad n prend la valeur représentant le nombre de caractères 
% \qquad dans M
% Traitement :
% \qquad Pour i allant de 0 à n-1
% \qquad\qquad x prend la valeur 0
% \qquad\qquad j prend la valeur 0
% \qquad\qquad Tant que x = 0
% \qquad\qquad\qquad Si A[j] = M[i]
% \qquad\qquad\qquad\qquad x prend la valeur j
% \qquad\qquad\qquad Sinon
% \qquad\qquad\qquad\qquad j prend la valeur j+1
% \qquad\qquad\qquad Fin du Si
% \qquad\qquad Fin du Tant que
% \qquad\qquad r prend la valeur MOD(3x+7;26)
% \qquad\qquad M[i] prend la valeur A[r]
% \qquad Fin du Pour
% Sortie :
% \qquad Afficher M
% \end{algorithme}
% \end{questions}
% \end{corrige}
% 
% \sectionnn{Programmation sous Scratch}
% 
% % EX11
% 
% \begin{exo}{En arithmétique}{En lien avec le chapitre \ref{chap:puissances}}{1}{5}
% 
% \begin{minipage}{\dimexpr\linewidth-75mm}
% Interpréter le
% 
% résultat du 
% 
% programme ci-contre.
% 
% \vspace*{20mm}~
% \end{minipage}
% \hfill
% \begin{minipage}{70mm}
% \includegraphics{336_13_18}
% \end{minipage}
% \end{exo}
% 
% % EX11corr
% 
% \begin{corrige}
% Ce programme est constitué d'une boucle qui répète 20 fois la même instruction. À chaque passage dans la boucle, la variable $n$ est multipliée par 0,5 et on ajoute le résultat obtenu à $s$. On obtient pour les premières valeurs ;
% \begin{itemize}
% \item 1\ier{} passage dans la boucle : $n=1\times0,5=\textcolor{DR}{0,5}$ et $s=1+\textcolor{DR}{0,5}$;
% \item 2\ieme{} passage dans la boucle : $n=0,5\times0,5=\textcolor{DR}{0,5^2}$ et $s=1+0,5+\textcolor{DR}{0,5^2}$;
% \item 3\ieme{} passage : $n=0,5^2\times0,5=\textcolor{DR}{0,5^3}$ et $s=1+0,5+0,5^2+\textcolor{DR}{0,5^3}$;
% \item etc.
% \end{itemize}
% On comprend alors que ce programme calcule la somme :
% \[
% 1+0,5+0,5^2+\cdots+0,5^{20}.
% \]
% Le lutin nous donne une valeur approchée de cette somme.
% \newpage
% \end{corrige}
% 
% % EX12
% 
% \begin{exo}{En probabilités}{En lien avec les chapitres \ref{chap:statistiques} et \ref{chap:probabilites}}{1}{5}
% On considère le programme ci-dessous.
% \begin{center}
% \includegraphics{13_19}
% \end{center}
% \begin{questions}
% \item Quand on l'exécute une première fois, le lutin nous dit que l'on obtient 0,25. Qu'est-ce que cela veut dire ?
% \item On change tous les \og 100 \fg{}  en \og 500 \fg. En exécutant ce programme plusieurs fois de suite, on obtient les résultats suivants : 
% \[
% 0,18 \quad;\quad 0,16 \quad;\quad 0,18 \quad;\quad 0,17 \quad;\quad 0,16 \quad;\quad 0,16 \quad;\quad 0,15
% \]
% Que peut-on déduire de ces résultats ?
% \end{questions}
% \end{exo}
% 
% % EX12corr
% 
% \begin{corrige}
% \begin{questions}
% \item Le programme est constitué d'une boucle qui exécute des instructions 100 fois. Ces instructions consistent à choisir deux nombres entiers \og Dé1 \fg{} et \og Dé2 \fg{} au hasard entre 1 et 6. On peut imaginer ici que cela simule le lancer de deux dés cubiques.
% 
% Ensuite, on effectue un test : si la somme de ces nombres est égale à 7, on incrémente la variable $n$ (on lui ajoute 1). On peut donc voir que $n$ représente le nombre de \og 7 \fg{} obtenus en faisant la somme de \og Dé1 \fg{} et \og Dé2 \fg.
% 
% Enfin, après être sorti de la boucle, on divise $n$ par 100, ce qui revient à calculer la fréquence de \og 7 \fg{} obtenus sur les 100 simulations.
% 
% Ainsi, \og 0,25 \fg{} signifie que l'on a obtenu 25\;\% de \og 7 \fg{} en faisant la somme des deux dés (soit un quart des lancers).
% 
% \item En changeant tous les \og 100 \fg{} par \og 500 \fg, on augmente le nombre de simulations et on peut supposer que la fréquence obtenue est plus proche de la probabilité d'obtenir un 7.
% 
% Tous les résultats sont assez proches (entre $0,15$ et $0,18$) ; on peut alors conclure que la probabilité d'obtenir un 7 en faisant la somme de deux dés lancés est comprise entre $0,15$ et $0,18$.
% \end{questions}
% \end{corrige}
% 
% % EX13
% 
% \begin{exo}{Avec une liste}{En lien avec le chapitre \ref{chap:nombres-premiers}}{1}{5}
% 
% \begin{minipage}{\dimexpr\linewidth-85mm}
% On considère le programme ci-contre qui a été exécuté pour une valeur saisie égale à 45, où \og $n$ modulo $a$ \fg{} donne le reste de la division euclidienne de $n$ par $a$.
% 
% \vspace*{5mm}~
% \end{minipage}
% \hfill
% \begin{minipage}{80mm}
% \includegraphics{13_20}
% 
% \Par\Par\Par~
% \end{minipage}
% 
% \begin{questions}
% \item Que permet de faire ce programme ?
% \item En décomposant en produit de facteurs premiers le nombre 45, vérifier le résultat de ce programme.
% \end{questions}
% \end{exo}
% 
% % EX13corr
% 
% \begin{corrige}
% \begin{questions}
% \item La variable $a$ est initialisée à 1 avant que la boucle s'exécute. Elle est ensuite incrémentée dans la boucle, donc on parcourt ici tous les nombres premiers de 1 à $n$, $n$ étant le nombre entré au clavier.
% 
% Pour chaque entier, on regarde si le reste de la division euclidienne de $n$ par $a$ est égal à 0, donc on regarde si $a$ est un diviseur de $n$. Si tel est le cas, on ajoute à la liste D la valeur de $a$.
% 
% Cet algorithme permet donc de dresser la liste complète de tous les diviseurs d'un nombre entré au clavier.
% 
% \item $45=5\times3^2$, donc les nombres 1, 3, 5 et 45 sont des diviseurs de 45. Mais il y a aussi $3\times5=15$ et $3^2=9$.
% 
% On retrouve donc bien les résultats obtenus par le programme.
% \end{questions}
% \end{corrige}
% 
% % EX14
% 
% \begin{exo}{Nombres premiers}{En lien avec le chapitre \ref{chap:nombres-premiers}}{2}{10}
% Expliquer le fonctionnement de ce programme :\enlargethispage*{3em}
% \begin{center}
% \includegraphics{13_21}
% \end{center}
% \end{exo}
% 
% % EX14corr
% 
% \begin{corrige}
% La variable \emph{compteur} est initialisée à 2 et incrémentée dans la boucle \og Répéter jusqu'à \fg{} : on va donc parcourir tous les entiers naturels de 2 au nombre qui précède celui entré au clavier.
% 
% Dans la boucle, il y a un test : 
% \begin{center}
% \og  si arrondi de réponse/compteur = arrondi/compteur \fg{}
% \end{center}
% On teste ici si l'arrondi du quotient $\dfrac{\text{réponse}}{\text{compteur}}$ est égal au quotient lui-même. Si c'est le cas alors cela signifie que la variable \emph{compteur} divise le nombre entré au clavier, et donc que ce dernier n'est pas premier. Alors, la boucle est arrêtée avec l'instruction \og stop ce script \fg.
% 
% L'algorithme recherche donc s'il existe un entier inférieur à celui entré au clavier qui divise ce dernier afin de voir s'il est premier ou non.
% \end{corrige}
% 
% % EX15
% 
% \begin{exo}{Programme mystère}{En lien avec le chapitre \ref{chap:nombres-premiers}}{3}{30}
% \enlargethispage*{3em}
% On considère le programme de la page suivante.
% 
% \Par
% 
% On rappelle que \og A modulo B \fg{} représente le reste de la division euclidienne de A par B.
% 
% \begin{questions}
% \item Dans la première partie du programme :
% \begin{questions}
% \item Expliquer l'instruction : \og ajouter 2 à P \fg.
% \item Expliquer la condition : \og si arrondi de n/compteur = n/compteur alors \fg. En déduire ce que peut représenter la variable \og noprem \fg.
% \item Montrer alors que cette partie construit une liste P contenant les nombres premiers inférieurs à 100.
% \end{questions}
% 
% \item Dans la seconde partie du programme :
% \begin{questions}
% \item Expliquer l'instruction : \\
% \og répéter jusqu'à compteur $>$ longueur de P \fg.
% \item Expliquer la condition :\\
% \og si n modulo élément compteur de P = 0 alors \fg.
% \item Expliquer ce que fait la boucle :\\
% \og répéter jusqu'à n modulo élément compteur de P $>$ 0 \fg.
% \end{questions}
% 
% \item On exécute ce programme avec le nombre 64 et les listes D et E suivantes s'affichent : D = [2] et E = [6].
% 
% Avec le nombre 78, on obtient D = [2 ; 3 ; 13] et E = [1 ; 1 ; 1].
% 
% Qu'obtient-on avec le nombre 96 ?
% 
% \item Ce programme fonctionne-t-il avec le nombre 984 ?
% \end{questions}
% 
% \newpage
% 
% \begin{center}
% \includegraphics{13_22}
% \end{center}
% \end{exo}
% 
% % EX14corr
% 
% \begin{corrige}
% \begin{questions}
% \item
% \begin{questions}
% \item L'instruction \og ajouter 2 à P \fg{} signifie que l'on ajoute la valeur \og 2 \fg{} dans la liste P.
% \item La condition : \og si arrondi de n/compteur = n/compteur alors \fg{} signifie que l'on exécute ce qui suit si $\dfrac{\text{n}}{\text{compteur}}$ est un entier. En effet, il y a égalité entre l'arrondi de ce quotient et le quotient lui-même lorsque ce dernier est entier.
% 
% La variable \og noprem \fg{} est initialisée à 0. Elle vaut 1 si $\dfrac{\text{n}}{\text{compteur}}$ est un entier. La variable \og compteur \fg{} est un nombre qui augmente de 1 en 1 d'après l'instruction \og ajouter à compteur 1 \fg; donc on regarde ici si la variable \og n \fg{} est divisible par tous les nombres entiers de 2 à 100. Ainsi, \og noprem \fg{} vaut 1 si la variable \og n \fg{} n'est pas un nombre premier.
% 
% \item Le bloc \og  si noprem = 0 alors ajouter n à P \fg{} signifie que l'on ajoute la variable \og n \fg{} dans la liste P si c'est un nombre premier. Ainsi, à la fin de la première partie de ce programme, L contiendra tous les nombres premiers rencontrés; or, la boucle \og répéter jusqu'à n $>$ 100 \fg{} nous informe que cette partie du programme s'arrête dès que n $>$ 100.
% 
% Par conséquent, L contiendra tous les nombres premiers inférieurs à 100.
% \end{questions}
% 
% \item
% \begin{questions}
% \item L'instruction \og répéter jusqu'à compteur $>$ longueur de P \fg{} est une boucle qui s'exécute jusqu'à ce que la variable \og compteur \fg{} prenne une valeur strictement supérieure au nombre de valeurs dans la liste P.
% 
% \item \og élément compteur de P \fg{} représente la valeur de P qui est à la position \og compteur \fg{} (par exemple, si compteur = 2 alors ce sera la 2\ieme{} valeur de P). Comme P est la liste des nombres premiers inférieurs à 100, il va représenter le nombre premier à la position \og compteur \fg. 
% 
% Ainsi, \og si n modulo élément compteur de P = 0 alors \fg{} signifie que l'on exécute ce qui suit si \og n \fg{} est divisible par le nombre premier à la position \og compteur \fg. En effet, \og n modulo élément compteur de P \fg{} est le reste de la division euclidienne de \og n \fg{} par le nombre premier, et si ce reste est égal à 0, cela signifie que \og n \fg{} est divisible par ce nombre premier.
% 
% \item Dans la boucle \og répéter jusqu'à n modulo élément compteur de P $>$ 0 \fg, on teste d'abord si la variable \og exposant \fg{} est nulle. Si tel est le cas, on ajoute le nombre premier qui divise \og n \fg{} dans la liste D. 
% 
% Ensuite, on divise \og n \fg{} par ce nombre premier et on ajoute 1 à la variable \og exposant \fg, puis on réitère le test sur le reste de la division euclidienne de \og n \fg{} par le même nombre premier. Si ce reste est encore égal à 0, comme la variable \og exposant \fg{} n'est plus égale à 0, on passe directement à la division de \og n \fg{} par le même nombre premier, et ce jusqu'à obtenir un nombre qui n'est plus divisible par ce nombre premier.
% \end{questions}
% 
% \item Si on tient compte de ce que l'on a dit à la question précédente, on remarque que l'on peut diviser 6 fois de suite 64 par 2. Donc $64=2^6$. Or, le programme affiche L = [2] (qui correspond à l'unique diviseur de 64) et D = [6] (l'exposant du diviseur).
% 
% Si on s'inspire de cela, on peut remarquer que $2^1\times3^1\times13^1=78$. Ce programme permet de trouver tous les diviseurs du nombre (avec la liste D) et les exposants qui interviennent dans la décomposition de ce nombre en produit de facteurs premiers.
% 
% Ainsi, comme $96=2^5\times3^1$, le programme va afficher avec 96 les listes D = [2 ; 3] et E = [5 ; 1].
% 
% \item $984 = 2^3\times3\times41$ donc ce programme fonctionne avec le nombre 984. Il ne fonctionne plus dès qu'un facteur premier est supérieur à 97 (dernier nombre premier inférieur à 100). Par exemple, pour le nombre 101, il ne fonctionnerait pas car 101 est un nombre premier.
% \end{questions}
% \end{corrige}

\thumb
\AfficheCorrige
