\documentclass[11pt,a4paper]{article}

% Langue et encodage
\usepackage[T1]{fontenc}%gestion des accents (pour les pdf)
\usepackage[utf8]{inputenc}% encodage du fichier source
\usepackage{lmodern}% nouvelle fonte
\usepackage[frenchb]{babel}
\frenchbsetup{StandardLists=true} % à inclure si on utilise \usepackage[french]{babel}
\usepackage{enumitem}% modification des listes

%symbole et notation mathématique
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{microtype}% améliorations typographiques

%Couleur
\usepackage{xcolor}
\definecolor{geoKeyword}{RGB}{153,0,51}
\definecolor{geoCommand}{RGB}{0,0,123}
\definecolor{geoProc}{RGB}{153,0,153}
\definecolor{geoNumbercolor}{RGB}{181,181,181}
\definecolor{geoText}{RGB}{255,0,192}

%Graphique Tikz
\usepackage{graphicx}% pour inclure des images
\usepackage{tikz} 
\usetikzlibrary{calc}

%graphiques pstricks
\usepackage{pstricks}  % permet de faire des dessins
\usepackage{pstricks-add} % avec des possibilités élargies
\usepackage{pst-eucl}  % permet de faire des dessins de géométrie simplement

%Algorithmique
\usepackage{scratch}
	\setscratch{print=true}
\usepackage[linesnumbered, french, boxed]{algorithm2e}
\usepackage{listings}

\lstdefinelanguage{Geotortue}{
morekeywords={rep, remplis, si, tant_que, boucle, écris, à, aff, def, eff, init, pause, mg, photo, retiens, retourne, pour, fin, dis},
morekeywords=[2]{av, re, td, tg, vg, ct, mt, lc, bc, crayon, palette, pvd, pvg, pvh, pvb, miroir, tlp, boussole, vise, imite, pvxy, pvxz, pvyz},
morestring=[b][\color{geoText}]",
}
\renewcommand*\thelstnumber{\the\value{lstnumber}>}
\lstdefinestyle{numbers}{
    numbers=left, 
    stepnumber=1, 
    numberstyle=\tiny\ttfamily\color{geoNumbercolor},
    xleftmargin=2em,
    numbersep=2pt,
}
\lstdefinestyle{mygeotortue}{
	language=Geotortue,
	basicstyle=\ttfamily,
	keywordstyle={\color{geoKeyword}\bfseries}, 
	keywordstyle=[2]{\color{geoCommand}\bfseries},
}

%tableau
\usepackage{tabularx}

%exercices
\usepackage{exercise}
\def\listexercisename{Liste des exercices}%
\def\ExerciseName{Exercice}%
\def\AnswerName{Solution de l’exercice}%
\def\ExerciseListName{Ex.}%
\def\AnswerListName{Solution}%
\def\ExePartName{Partie}%

%mise en page
\usepackage{geometry}
\geometry{a4paper,left=1.5cm,right=1.5cm,top=2cm,bottom=1.5cm}
\usepackage{lastpage}%accès au numéro de la dernière page
\usepackage{fancyhdr}% pour en-tête et pied de page
\pagestyle{fancy}
\lhead{Exercices Scratch}
\chead{}
\rhead{Cycle 4}
\lfoot{}
\cfoot{page \thepage\ sur \pageref{LastPage}}
\rfoot{}

% Définition des nouvelles options xmin, xmax, ymin, ymax
% Valeurs par défaut : -3, 3, -3, 3
\tikzset{
xmin/.store in=\xmin, xmin/.default=-3, xmin=-3,
xmax/.store in=\xmax, xmax/.default=3, xmax=3,
ymin/.store in=\ymin, ymin/.default=-3, ymin=-3,
ymax/.store in=\ymax, ymax/.default=3, ymax=3,
}
% Commande qui trace la grille entre (xmin,ymin) et (xmax,ymax)
\newcommand {\grille}
{\draw[help lines] (\xmin,\ymin) grid (\xmax,\ymax);}
% Commande \axes
\newcommand {\axes} {
\draw[->] (\xmin,0) -- (\xmax,0);
\draw[->] (0,\ymin) -- (0,\ymax);
}
% Commande qui limite l’affichage à (xmin,ymin) et (xmax,ymax)
\newcommand {\fenetre}
{\clip (\xmin,\ymin) rectangle (\xmax,\ymax);}


%meta
\title{Exercices d'algorithmique} 
\author{E. Duplessy}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\thispagestyle{empty}
\maketitle

\begin{center}
\Large{Scratch, Geotortue, pseudo-code, ...}
\end{center}

\begin{center}
\begin{tikzpicture}
\node[inner sep=0pt] (lutin) at (0,0) 
{\includegraphics[width=8 cm]{reseau.png}};
\end{tikzpicture}
\end{center}

\listofexercises 
\newpage

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}[label=ex1]
Les carreaux font 40 unités de large.
A l'aide du script ci-dessous à gauche, dessiner à droite le chemin du lutin-chat. La position initiale du lutin-chat est à l'intersection des segments qu'il cache.

\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockmove{avancer de \ovalnum{40} }
\blockmove{tourner à \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{80} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{40} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{80} }
\blockmove{tourner à \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{40} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{tikzpicture}[scale = 0.7, xmin=-2,xmax=5,ymin=-2,ymax=5]
	\grille
	\node[inner sep=0pt] (lutin) at (-1,-1)
    {\includegraphics[width=1cm]{lutin.png}};
\end{tikzpicture}
\end{center}
\end{minipage}
\hfill
\end{Exercise}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}[label=ex2]
Les carreaux font 40 unités de large.
A l'aide du script ci-dessous à gauche, dessiner à droite le chemin du lutin-chat. La position initiale du lutin-chat est à l'intersection des segments qu'il cache.

\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockrepeat{répéter \ovalnum{3} fois}
{
\blockmove{avancer de \ovalnum{40} }
\blockmove{tourner de \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{40} }
\blockmove{tourner de \turnright{} de \ovalnum{90} degrés}
}
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{tikzpicture}[scale = 0.7, xmin=-2,xmax=5,ymin=-2,ymax=5]
	\grille
	\node[inner sep=0pt] (lutin) at (-1,-1)
    {\includegraphics[width=1cm]{lutin.png}};
\end{tikzpicture}
\end{center}
\end{minipage}
\hfill
\end{Exercise}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}[label=ex3]
Les carreaux font 40 unités de large.
A l'aide du script ci-dessous à gauche, dessiner à droite le chemin du lutin-chat. La position initiale du lutin-chat est à l'intersection des segments qu'il cache.

\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockvariable{mettre \selectmenu{longueur} à \ovalnum{80}}
\blockmove{avancer de \ovalvariable{longueur} }
\blockmove{tourner de \turnleft{} de \ovalnum{90} degrés}
\blockvariable{ajouter \ovalnum{120} à \selectmenu{longueur}}
\blockmove{avancer de \ovalvariable{longueur} }
\blockmove{tourner de \turnright{} de \ovalnum{90} degrés}
\blockvariable{mettre \selectmenu{longueur} à \ovalnum{40}}
\blockmove{avancer de \ovalvariable{longueur} }
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{tikzpicture}[scale = 0.7, xmin=-2,xmax=5,ymin=-2,ymax=5]
	\grille
	\node[inner sep=0pt] (lutin) at (-1,-1)
    {\includegraphics[width=1cm]{lutin.png}};
\end{tikzpicture}
\end{center}
\end{minipage}
\hfill
\end{Exercise}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}[label=ex4]
Les carreaux font 40 unités de large.
A l'aide du script ci-dessous à gauche, dessiner à droite le chemin du lutin-chat. La position initiale du lutin-chat est à l'intersection des segments qu'il cache.

\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockvariable{mettre \selectmenu{longueur} à \ovalnum{80}}
\blockmove{avancer de \ovalvariable{longueur} }
\blockmove{tourner de \turnleft{} de \ovalnum{90} degrés}
\blockvariable{ajouter \ovalnum{120} à \selectmenu{longueur}}
\blockmove{avancer de \ovalvariable{longueur} }
\blockmove{tourner de \turnright{} de \ovalnum{90} degrés}
\blockvariable{mettre \selectmenu{longueur} à \ovalnum{40}}
\blockmove{avancer de \ovalvariable{longueur} }
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}{0.45\linewidth}
\begin{center}
\begin{tikzpicture}[scale = 0.7, xmin=-2,xmax=5,ymin=-2,ymax=5]
	\grille
	\node[inner sep=0pt] (lutin) at (-1,-1)
    {\includegraphics[width=1cm]{lutin.png}};
\end{tikzpicture}
\end{center}
\end{minipage}
\hfill
\end{Exercise}

\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}[label=ex5]
Pour chacun des quatre scripts ci-dessous, donner les coordonnées de la position finale du lutin-chat sachant que sa position de départ est donné par les coordonnées $(0;0)$.

\bigskip
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script A}

\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockmove{aller à x: \ovalnum{0} y: \ovalnum{0}}
\blockmove{avancer de \ovalnum{40} }
\blockmove{tourner à \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{80} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{40} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{80} }
\blockmove{tourner à \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{40} }
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script B}

\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockmove{aller à x: \ovalnum{0} y: \ovalnum{0}}
\blockvariable{mettre \selectmenu{longueur} à \ovalnum{80}}
\blockmove{avancer de \ovalvariable{longueur} }
\blockmove{tourner de \turnleft{} de \ovalnum{90} degrés}
\blockvariable{ajouter \ovalnum{120} à \selectmenu{longueur}}
\blockmove{avancer de \ovalvariable{longueur} }
\blockmove{tourner de \turnright{} de \ovalnum{90} degrés}
\blockvariable{mettre \selectmenu{longueur} à  \ovaloperator{\ovalvariable{longueur} + \ovalnum{20}}}
\blockmove{avancer de \ovalvariable{longueur} }
\end{scratch}
\end{center}
\end{minipage}
\hfill

\bigskip
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script C}

\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockmove{aller à x: \ovalnum{0} y: \ovalnum{0}}
\blockrepeat{répéter \ovalnum{3} fois}
{
\blockmove{avancer de \ovalnum{15} }
\blockmove{tourner à \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{20} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
}
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script D}

\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockmove{aller à x: \ovalnum{0} y: \ovalnum{0}}
\blockrepeat{répéter \ovalnum{3} fois}
{
\blockmove{avancer de \ovalnum{10} }
\blockmove{tourner à \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{20} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{30} }
\blockmove{tourner à \turnright{} de \ovalnum{90} degrés}
}
\end{scratch}
\end{center}
\end{minipage}
\hfill
\end{Exercise}
\newpage

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}
Voici un programme de calcul : 
\begin{itemize}[label=\textbullet]
\item choisir un nombre ;
\item lui ajouter 2 ;
\item puis multiplier par 3 ;
\end{itemize}

Parmi les script Scratch suivants, lequel permet d'utiliser le programme de calcul ?

\medskip
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script A} \\
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blocksensing{demander \txtbox{Choisis un nombre}}
\blockvariable{mettre \selectmenu{x} à \ovalsensing{réponse}}
\blocklook{dire \txtbox{J'obtiens finalement :} \ovaloperator{ \ovaloperator{2+{\ovalvariable{x}}}*3}}
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script B}\\
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blocksensing{demander \txtbox{Choisis un nombre}}
\blockvariable{mettre \selectmenu{x} à \ovalsensing{réponse}}
\blocklook{dire \txtbox{J'obtiens finalement :} \ovaloperator{ \ovaloperator{3*{\ovalvariable{x}}}+2}}
\end{scratch}
\end{center}
\end{minipage}

\medskip
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script C}\\
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blocksensing{demander \txtbox{Choisis un nombre}}
\blockvariable{mettre \selectmenu{x} à \ovalsensing{réponse}}
\blocklook{dire \txtbox{J'obtiens finalement :} \ovaloperator{\ovalvariable{x}+\ovaloperator{2*3}}}
\end{scratch}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\textsc{Script D}\\
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blocksensing{demander \txtbox{Choisis un nombre}}
\blockvariable{mettre \selectmenu{x} à \ovalsensing{réponse}}
\blocklook{dire \txtbox{J'obtiens finalement :} \ovaloperator{2+\ovalvariable{x}*3}}
\end{scratch}
\end{center}
\end{minipage}
\end{Exercise}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}

\begin{minipage}{0.40\linewidth}
Dessine, avec les outils de géométrie, la figure décrite par l'algorithme ci-contre.

\bigskip
Dictionnaire : 
\begin{itemize}
\item rep : répète
\item av : avance
\item td : tourne à droite
\end{itemize}
\end{minipage}
\hfill
\begin{minipage}{0.55\linewidth}
\begin{lstlisting}[language=Geotortue, style=mygeotortue, style=numbers]
pour figure
rep 2 [av 5 ; td 90 ; av 8 ; td 90]
fin
\end{lstlisting}
\end{minipage}

\end{Exercise}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{Exercise}
Trois dessins ont été réalisés à l'aide de différents langages. Associe chaque dessin aux algorithmes Geotortue et Scratch correspondants.

\bigskip
\begin{minipage}[t]{0.3\linewidth}
\textsc{Algorithme Geotortue 1}
\begin{lstlisting}[language=Geotortue, style=mygeotortue, style=numbers]
pour figure
rep 4 [
av 10 ; 
td 90
]
fin
\end{lstlisting}
\end{minipage}
\hfill
\begin{minipage}[t]{0.3\linewidth}
\textsc{Algorithme Geotortue 2}
\begin{lstlisting}[language=Geotortue, style=mygeotortue, style=numbers]
pour figure
rep 2 [
av 10 ; 
td 30 ;
av 10 ; 
td 150
]
fin
\end{lstlisting}
\end{minipage}
\hfill
\begin{minipage}[t]{0.3\linewidth}
\textsc{Algorithme Geotortue 3}
\begin{lstlisting}[language=Geotortue, style=mygeotortue, style=numbers]
pour figure
rep 6 [
av 10 ; 
td 60
]
fin
\end{lstlisting}
\end{minipage}

\vspace{2em}

\small
\begin{minipage}[t]{0.3\linewidth}
\textsc{Algorithme Scratch 1}

\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockrepeat{répéter \ovalnum{4} fois}
{
\blockmove{avancer de \ovalnum{10} }
\blockmove{tourner de \turnright{} de \ovalnum{90} degrés}
}
\end{scratch}
\end{minipage}
\hfill
\begin{minipage}[t]{0.3\linewidth}
\textsc{Algorithme Scratch 2}

\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockrepeat{répéter \ovalnum{2} fois}
{
\blockmove{avancer de \ovalnum{10} }
\blockmove{tourner de \turnright{} de \ovalnum{30} degrés}
\blockmove{avancer de \ovalnum{10} }
\blockmove{tourner de \turnright{} de \ovalnum{150} degrés}
}
\end{scratch}
\end{minipage}
\hfill
\begin{minipage}[t]{0.3\linewidth}
\textsc{Algorithme Scratch 3}

\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blockrepeat{répéter \ovalnum{6} fois}
{
\blockmove{avancer de \ovalnum{10} }
\blockmove{tourner de \turnright{} de \ovalnum{60} degrés}
}
\end{scratch}
\end{minipage}
\normalsize

\vspace{2em}

\begin{minipage}[t]{0.3\linewidth}
\begin{center}
\textsc{Figure 1}\\
\medskip
\begin{tikzpicture}
\draw (0,0) -- (0,1) -- (1,1) -- (1,0) -- (0,0);
\end{tikzpicture}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.3\linewidth}
\begin{center}
\textsc{Figure 2}\\
\medskip
\begin{tikzpicture}
\draw (60:1) -- (120:1) -- (180:1) -- (240:1) -- (300:1) -- (360:1) -- (60:1);
\end{tikzpicture}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.3\linewidth}
\begin{center}
\textsc{Figure 3}\\
\medskip
\begin{tikzpicture}
\draw (0,0) -- (1,0) -- ++(-30:1) -- ++(-180:1) -- ++(-210:1) ;
\end{tikzpicture}
\end{center}
\end{minipage}

\begin{tikzpicture}

\end{tikzpicture}

\end{Exercise}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{Exercise}

\begin{minipage}[t]{0.45\linewidth}
\begin{enumerate}
\item On utilise l'algorithme A.
\begin{enumerate}
\item Qu'affiche l'ordinateur si on choisit 5 au départ ?
\item Qu'affiche l'ordinateur si on choisit 6 au départ ?
\item Qu'affiche l'ordinateur si on choisit 7 au départ ?
\item Qu'affiche l'ordinateur si on choisit 8 au départ ?
\end{enumerate}
\end{enumerate}
\end{minipage} 
\hfill
\begin{minipage}[t]{0.45\linewidth}
\textsc{Algorithme A}\\
\begin{algorithm}[H]
\SetAlgoLined
\Donnees{un nombre entier naturel}
\Sortie{un nombre entier}
Demander un nombre $x$\;
\eSi{$x$ est pair}{
Afficher $\frac{x}{2}$\;
}{
Afficher $3 \times x +1 $\;
}
\end{algorithm}
\end{minipage}
\bigskip

\begin{minipage}[t]{0.45\linewidth}
\begin{enumerate}[resume]
\item On utilise l'algorithme B.
\begin{enumerate}
\item Qu'affiche l'ordinateur si on choisit 5 au départ ?
\item Qu'affiche l'ordinateur si on choisit 6 au départ ?
\item Qu'affiche l'ordinateur si on choisit 7 au départ ?
\item Qu'affiche l'ordinateur si on choisit 8 au départ ?
\end{enumerate}
\end{enumerate}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\linewidth}
\textsc{Algorithme B}\\
\begin{algorithm}[H]
\SetKwFor{nRepeter}{répéter}{ }{fin}
\SetAlgoLined
\Donnees{un nombre entier naturel}
\Sortie{un nombre entier}
Demander un nombre $x$\;
\nRepeter{4 fois}{
\eSi{$x$ est pair}{
Mettre $\frac{x}{2}$ dans $x$\;
}{
Mettre $3 \times x +1 $ dans $x$\;
}
}
Afficher $x$\;
\end{algorithm}
\end{minipage}
\bigskip

\begin{minipage}[t]{0.45\linewidth}
\begin{enumerate}[resume]
\item On utilise l'algorithme C.
\begin{enumerate}
\item Qu'affiche l'ordinateur si on choisit 5 au départ ?
\item Qu'affiche l'ordinateur si on choisit 6 au départ ?
\item Qu'affiche l'ordinateur si on choisit 7 au départ ?
\item Qu'affiche l'ordinateur si on choisit 8 au départ ?
\end{enumerate}
\end{enumerate}
\end{minipage} 
\hfill
\begin{minipage}[t]{0.45\linewidth}
\textsc{Algorithme C}\\
\begin{algorithm}[H]
\SetAlgoLined
\Donnees{un nombre entier naturel}
\Sortie{un nombre entier}
Demander un nombre $x$\;
\Repeter{$x=1$}{
\eSi{$x$ est pair}{
Mettre $\frac{x}{2}$ dans $x$\;
}{
Mettre $3 \times x +1 $ dans $x$\;
}
}
Afficher $x$ \;
\end{algorithm}
\end{minipage}
\end{Exercise}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{Exercise}[origin={Brevet Pondichery 2017}]
%source du code LaTeX : APMEP


On considère le programme de calcul ci-dessous dans lequel \ovalvariable{x}, \ovalvariable{Étape 1}, \ovalvariable{Étape 2} et \ovalvariable{Résultat} sont quatre variables.

\begin{center}
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blocksensing{demander \txtbox{Choisis un nombre} et attendre}
\blockvariable{mettre \selectmenu{x} à \ovalsensing{réponse}}
\blocklook{dire \txtbox{Je multiplie le nombre par 6.} pendant \ovalnum{2} secondes}
\blockvariable{mettre \selectmenu{Étape 1} à \ovaloperator{6*{\ovalvariable{x}}}}
\blocklook{dire \txtbox{J'ajoute 10 au résultat.} pendant \ovalnum{2} secondes}
\blockvariable{mettre \selectmenu{Étape 2} à \ovaloperator{{\ovalvariable{Étape 1}+10}}}
\blocklook{dire \txtbox{Je divise le résultat par 2.} pendant \ovalnum{2} secondes}
\blockvariable{mettre \selectmenu{Résultat} à \ovaloperator{{\ovalvariable{Étape 2}/2}}}
\blocklook{dire \ovaloperator{regroupe \txtbox{J'obtiens finalement : } \ovalvariable{Résultat}}}
\end{scratch}
\end{center}


\medskip
\begin{enumerate}
\item 
	\begin{enumerate}
		\item Julie a fait fonctionner ce programme en choisissant le nombre 5. Vérifier que
ce qui est dit à la fin est: \og J'obtiens finalement 20 \fg.
		\item Que dit le programme si Julie le fait fonctionner
en choisissant au départ le nombre 7 ?
	\end{enumerate}
\item Julie fait fonctionner le programme, et ce qui est dit à
la fin est: \og J'obtiens finalement 8 \fg.
Quel nombre Julie a-t-elle choisi au départ ?
\item Si l'on appelle x le nombre choisi au départ, écrire en
fonction de x l' expression obtenue à la fin du programme, puis réduire cette expression autant que
possible.
\item Maxime utilise le programme de calcul ci-dessous :
\begin{center}	
\begin{tabularx}{0.5\linewidth}{|l X|}\hline
$\bullet~~$&Choisir un nombre.\\
$\bullet~~$&Lui ajouter 2\\
$\bullet~~$&Multiplier le résultat par 5\\\hline
\end{tabularx}
\end{center}

Peut-on choisir un nombre pour lequel le résultat obtenu par Maxime est le même que celui obtenu par
Julie ?	
\end{enumerate}
\end{Exercise}
\newpage

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{Exercise}[origin={Brevet Etranger 2017}]
%source du code LaTeX : APMEP
Pour tracer une \og rue \fg, on a défini le tracé d'une \og maison \fg . \\
\medskip
\hfill
\begin{minipage}[t]{0.30\linewidth}
\begin{center}
\textsc{Tracé d'une maison}
\begin{scratch}[print]
\initmoreblocks{définir \namemoreblocks{maison}}
\blockmove{tourner \turnleft{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{50}}
\blockmove{tourner \turnright{} de \ovalnum{45} degrés}
\blockmove{avancer de \ovalnum{50}}
\blockmove{tourner \turnright{} de \ovalnum{90} degrés}
\blockmove{avancer de \ovalnum{50}}
\blockmove{tourner \turnright{} de \ovalnum{45} degrés}
\blockmove{avancer de \ovalnum{50}}
\blockmove{tourner \turnleft{} de \ovalnum{90} degrés}
\end{scratch}
%\includegraphics[width=65mm]{brevet-CE-17-fig1.eps}
\end{center}
\end{minipage}\hfill
\begin{minipage}[t]{0.30\linewidth}
\begin{center}
\textsc{tracé de la \og maison \fg}
\begin{tikzpicture}[scale=2]
\draw (0,0) -- (0,1) -- ++(0.7,.7) -- ++(0.7,-0.7) -- ++(0,-1);
\draw[<->] (0,0.5) -- (1.4,0.5) node[midway,above] {$d$} ;	
\end{tikzpicture}
\end{center}
\end{minipage} \hfill
\begin{minipage}[t]{0.30\linewidth}
\begin{center}
\textsc{Programme principal}
\begin{scratch}[print]
\blockinit{Quand \greenflag est cliqué}
\blocklook{cacher}
\blockpen{mettre la taille du stylo à \ovalnum{1}}
\blockmove{aller à x:\ovalnum{-240} y: \ovalnum{0}}
\blockpen{effacer tout}
\blockpen{stylo en position écriture}
\blockmove{s'orienter à  \ovalnum{90\selectarrownum}}
\blockrepeat{répéter \ovalnum{$n$} fois}
{
\blockmoreblocks{maison}
\blockmove{avancer de \ovalnum{20} }
}
\end{scratch}
\end{center}
\end{minipage}\hfill\\
\begin{enumerate}
\item  Vérifier que $d$ est environ égal à 71 à l'unité près. 

\item  Un point dans une fenêtre d'exécution de votre programme a son abscisse qui peut varier de $-240$ à $240$ et son ordonnée qui peut varier de $-180$ à $180$. \\ \medskip
\noindent \begin{minipage}{0.61\linewidth}
Quel est le plus grand, nombre entier $n$ que l'on peut utiliser dans le programme principal pour que le tracé de la \og rue \fg{} tienne dans la fenêtre de votre ordinateur où s'exécute le programme ?
\end{minipage}\hfill
\begin{minipage}{0.35\linewidth}
\begin{tikzpicture}[scale=1]
\foreach \k in {0,1.7,3.4}{
\draw (\k,0) -- ++(0,1) -- ++(0.7,.7) -- ++(0.7,-0.7) -- ++(0,-1) -- ++(0.3,0);}
\end{tikzpicture}
\end{minipage}\\ \medskip
\textit{Vous pourrez tracer sur votre copie tous les schémas (à main levée ou non) qui auront permis de répondre à la question précédente et ajouter toutes les informations utiles (valeurs, codages, traits supplémentaires, noms de points ...) }
\end{enumerate}
\end{Exercise}

\end{document}
