\documentclass[10pt,frenchb,pdftex]{beamer}
%
\RequirePackage{ifthen}
\RequirePackage{xargs}
\RequirePackage{tikz}
\RequirePackage{tabularx}
\usetikzlibrary{shapes,arrows,automata,shadows,calc}
\RequirePackage{texgraph}
\RequirePackage[frenchb]{babel}
%
\RequirePackage[french,ruled,boxed,slide]{algorithm2e}
\SetKwInput{Init}{Initialisation}
\SetKwInput{Entrees}{Entr\'ees}
\SetKwInput{Entree}{Entr\'ee}
\SetKwInput{Sortie}{Sortie}
\SetKwInput{Sorties}{Sorties}
\SetKwIF{Si}{SinonSi}{Sinon}{Si}{alors}{SinonSi}{Sinon}{FinSi}
\SetKwBlock{Trait}{Traitement}{FinTraitement}
\SetKwBlock{TraitSortie}{Traitement et Sortie}{FinTraitement}
\SetKwFor{Pour}{Pour}{faire}{FinPour}
\SetKwFor{Tq}{Tant que}{faire}{FinTantque}
%
\usetheme{Warsaw}
\usecolortheme{crane}
\setbeamertemplate{headline}{%
\begin{beamercolorbox}[ht=0ex,dp=0ex,
leftskip=.3cm,rightskip=.3cm plus1fil]%
{section in head/foot}%
\raisebox{1.125ex}%
{\tiny\bfseries\insertframenumber/\inserttotalframenumber}%
\hfill%
\end{beamercolorbox}}
\setbeamertemplate{blocks}[rounded][shadow=false]
\addtobeamertemplate{headline}
{}
{%
  \vskip-0.2pt
  \pgfuseshading{beamer@topshade}
  \vskip-2pt
}
\usepackage[utf8]{inputenc}
\usepackage[charter]{mathdesign}
\usepackage[T1]{fontenc}
\renewcommand{\ttdefault}{lmtt} 
\usefonttheme[onlymath]{serif}
% contenu de la page de titre
\title{\textbf{ALGORITHMIQUE}}
\subtitle{Les boucles -- Série 6}
\author{\small{Calcul mental et automatismes -- IREM de Clermont-Ferrand}}
\institute{\texttt{}}
\date{}
\hypersetup{
	%pdfpagemode = FullScreen,					% afficher le pdf en plein écran     
	pdfauthor   = {Joffrey Cottin},					%
	%pdftitle    = {Titre ...},					%
	%pdfsubject  = {Sujet ...},					%
	%pdfkeywords = {Mots clés séparés par des virgules}	%
	%pdfcreator  = {PDFLaTeX},					%
	%pdfproducer = {PDFLaTeX}					%
}
\newcommand{\beameronly}[1]{#1} % permet de mettre des pause dans beamer pas dans poly
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}  % tiré du fichier beamerouterinfolines.sty
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
    \usebeamerfont{section in head/foot}{\bf\insertshorttitle}
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
    \usebeamerfont{section in head/foot}{\bf\insertshortsubtitle} % pour avoir le nom du diapo au centre
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
    \insertframenumber{} / \inserttotalframenumber\hspace*{2ex} 
  \end{beamercolorbox}}%
  \vskip0pt%
}
\setlength{\parindent}{0cm}
% background beamer
\definecolor{couleurhaut}{rgb}{0.85,0.9,1}  % creme
\definecolor{couleurmilieu}{rgb}{1,1,1}  % vert pale
\definecolor{couleurbas}{rgb}{0.85,0.9,1}  % blanc
\setbeamertemplate{background canvas}[bg=white]%
%
\def\R{\mathbb{R}}
\let\ds\displaystyle
\let\Sup\geqslant
\let\Inf\leqslant
\newcommand{\Oij}{\ensuremath{\left(O~;\Vi{i},\Vi{j}\right)}}  	% repère plan
\newcommand{\OIJ}{\ensuremath{\left(O~;~I,~J\right)}}  		% repère plan (O;I,J)
\newcommand{\ag}[1]{\ensuremath{\widehat{\text{#1}}}}		 		% angle géométrique
\newcommand{\courbe}[1]{\ensuremath{\mathscr{C}_{#1}}}		% pour les courbes
\newcommand{\Iff}[2]{\ensuremath{\left[#1~;~#2\right]}}	% Intervalles du type [a ; b]
\newcommand{\Iof}[2]{\ensuremath{\left]#1~;~#2\right]}}	% Intervalles du type ]a ; b]
\newcommand{\Ifo}[2]{\ensuremath{\left[#1~;~#2\right[}}	% Intervalles du type [a ; b[
\newcommand{\Ioo}[2]{\ensuremath{\left]#1~;~#2\right[}}	% Intervalles du type ]a ; b[
\newcommand{\coord}[2]{\ensuremath{\left(#1~;~#2\right)}}	% coordonnées plan

\begin{document}

\begin{frame}
\titlepage 
\end{frame}

%%%%%%%%%%%%%%%%%%%%
%%% Question (1) %%%
%%%%%%%%%%%%%%%%%%%%
\section{Question (1)}

\begin{frame}
\frametitle{\textbf{Question (1)}}

On considère l'algorithme suivant :

\begin{center}
	\begin{minipage}{0.5\linewidth} 
		\begin{algorithm}[H]
			\Init{$u$ prend la valeur $1$.}
			\Trait{
				\Tq{$u\Inf10$}
					{$u$ prend la valeur $2\times u+1$.}
			}
			\Sortie{Afficher $u$.}
		\end{algorithm}
	\end{minipage}
\end{center}

\begin{block}{{\bf Vrai ou Faux ?}}
La valeur affichée en sortie par cet algorithme est 15.
\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%
%%% Question (2) %%%
%%%%%%%%%%%%%%%%%%%%
\section{Question (2)}

\begin{frame}
\frametitle{\textbf{Question (2)}}

On considère l'algorithme suivant :

\begin{center}
	\begin{minipage}{0.5\linewidth} 
		\begin{algorithm}[H]
			\Init{$u$ prend la valeur $0$.}
			\Trait{
				\Tq{$u\Inf100$}
					{$u$ prend la valeur $u\times10+3$.}
			}
			\Sortie{Afficher $u$.}
		\end{algorithm}
	\end{minipage}
\end{center}

\begin{block}{}
Quelle est la valeur affichée en sortie par cet algorithme ?
\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%
%%% Question (3) %%%
%%%%%%%%%%%%%%%%%%%%
\section{Question (3)}

\begin{frame}
\frametitle{\textbf{Question (3)}}

On considère l'algorithme suivant :

\begin{center}
	\begin{minipage}{0.5\linewidth} 
		\begin{algorithm}[H]
			\Entree{Saisir un nombre entier $a$.}
			\Init{$n$ prend la valeur $0$.}
			\Trait{
				\Tq{$2^n\Inf a$}
					{$n$ prend la valeur $n+1$.}
			}
			\Sorties{Afficher $n$.}
		\end{algorithm}
	\end{minipage}
\end{center}

\begin{block}{{\bf Vrai ou Faux ?}}
En saisissant $10$ en entrée, la valeur affichée en sortie est $4$.
\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%
%%% Question (4) %%%
%%%%%%%%%%%%%%%%%%%%
\section{Question (4)}

\begin{frame}
\frametitle{\textbf{Question (4)}}

On considère l'algorithme suivant :

\begin{center}
	\begin{minipage}{0.5\linewidth} 
		\begin{algorithm}[H]
			\Entree{Saisir un nombre entier $a$.}
			\Init{$n$ prend la valeur $0$.}
			\Trait{
				\Tq{$2^n\Inf a$}
					{$n$ prend la valeur $n+1$.}
			}
			\Sorties{Afficher $n$.}
		\end{algorithm}
	\end{minipage}
\end{center}

\begin{block}{}
Quelle est la valeur affichée en sortie, en saisissant $100$ en entrée ?
\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%
%%% Question (5) %%%
%%%%%%%%%%%%%%%%%%%%
\section{Question (5)}

\begin{frame}
\frametitle{\textbf{Question (5)}}

On considère l'algorithme suivant :

\begin{center}
	\begin{minipage}{0.5\linewidth} 
		\begin{algorithm}[H]
			\Entree{Saisir un nombre entier $n$.}
			\TraitSortie{
				\Tq{$n\neq1$}
					{
					\eSi{$n$ est pair}
						{$n$ prend la valeur $\dfrac{n}{2}$ ;}
						{$n$ prend la valeur $3n+1$.}
					Afficher $n$.
				}
			}
		\end{algorithm}
	\end{minipage}
\end{center}

\begin{block}{}
Quelles sont les valeurs affichées en sortie, en saisissant $64$ en entrée ?
\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%
%%% Question (6) %%%
%%%%%%%%%%%%%%%%%%%%
\section{Question (6)}

\begin{frame}
\frametitle{\textbf{Question (6)}}

On considère l'algorithme suivant :

\begin{center}
	\begin{minipage}{0.5\linewidth} 
		\begin{algorithm}[H]
			\Entree{Saisir un nombre entier $n$.}
			\TraitSortie{
				\Tq{$n\neq1$}
					{
					\eSi{$n$ est pair}
						{$n$ prend la valeur $\dfrac{n}{2}$ ;}
						{$n$ prend la valeur $3n+1$.}
					Afficher $n$.
				}
			}
		\end{algorithm}
	\end{minipage}
\end{center}

\begin{block}{}
Quelles sont les valeurs affichées en sortie, en saisissant $10$ en entrée ?
\end{block}
\end{frame}


%%%%%%%%%%%%%%%%%%%%
%%% Question (7) %%%
%%%%%%%%%%%%%%%%%%%%

\begin{texgraph}[name=echiquier,export=pgf,preload="draw2d.mod",auto=false]
Fenetre(-0.5+5*i,5-0.75*i,0.45*(1+i)),
Marges(0,0,0,0),
draw("line",[0,6,6+6*i,6*i],[close:=1]),
for u in [0,1+i,2*i,1+3*i,4*i] do
for k from 0 to 4 step 2 do
draw("line",[k+u,k+1+u,k+1+i+u,k+i+u],[close:=1,FillStyle:=full,FillColor:=black]),
od,
od,
draw("label","$a$",[anchor:=0.5-0.5*i]
            ,"$b$",[anchor:=1.5-0.4*i]
            ,"$c$",[anchor:=2.5-0.5*i]
            ,"$d$",[anchor:=3.5-0.4*i]
            ,"$e$",[anchor:=4.5-0.5*i]
            ,"$f$",[anchor:=5.5-0.5*i]
            ,"$1$",[anchor:=0.5*i,labeldir:=West,labelsep:=0.15]
            ,"$2$",[anchor:=1.5*i,labeldir:=West]
            ,"$3$",[anchor:=2.5*i,labeldir:=West]
            ,"$4$",[anchor:=3.5*i,labeldir:=West]
            ,"$5$",[anchor:=4.5*i,labeldir:=West]),
draw("label","{\bf R}",[anchor:=2.5+.5*i,Color:=white]), 
\end{texgraph}

\section{Question (7)}

\begin{frame}
\frametitle{\textbf{Question (7)}}

On considère l'algorithme et l'échiquier suivants :

\noindent \begin{minipage}{0.6\linewidth}{
{\footnotesize
%\begin{center}
%	\begin{minipage}{0.85\linewidth} 
		\begin{algorithm}[H]
			\Init{Le robot R est en \coord{c}{1}.}
			\Trait{
				\Pour{$i$ allant de 1 à 3}
					{Choisir un nombre aléatoire $A$ de $\Ifo{0}{1}$.\\
					\eSi{$A<0,5$}
						{R monte de 2 cases ;\\
						 R avance de 1 case.}
						{R recule de 1 case.}
					}
			}
			\Sortie{Afficher la position de R.}
		\end{algorithm}
%	\end{minipage} 
%\end{center}
}
}\end{minipage}\hfill
\noindent \begin{minipage}{0.37\linewidth}{
\begin{center} \input{echiquier.pgf} \end {center}
}\end{minipage}

\begin{block}{}
Les 3 nombres aléatoires successifs sont : 0,9 ; 0,3 ; 0,5.

\medskip

Quelles seront les coordonnées finales du robot sur cet échiquier ?
\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%
%%% Question (8) %%%
%%%%%%%%%%%%%%%%%%%%

\begin{texgraph}[name=parcours,export=pgf,preload="draw2d.mod",auto=false]
Fenetre(-0.5+1*i,8.5-0.5*i,1.2*(1+i)),
Marges(0,0,0,0),
draw("line",[-1,9,jump,-1+i,9+i],[LineStyle:=userdash]),
u:=2,
for k from 0 to 3 do
draw("line",[0+k*u,1+i+k*u,2+k*u]),
draw("dot",[8],[DotStyle:=dot,DotScale:=1.5])
od,
draw("label","Départ : {\bf R}",[anchor:=0,labeldir:=South]
            ,"Arriv\'ee",[anchor:=8,labeldir:=South]),
draw("seg",[0,1+i],[legend:="{\scriptsize 50 pas}"]),
markseg(1+i,0,2,0.1,0.2),
markseg(1+i,2,2,0.1,0.2,-45),
angleD(0,1+i,2,0.25), angleD(1+i,2,3+i,0.25),
LabelArc(2,0,1+i,0.5,1,"~~{\scriptsize 45\degre}"),
draw("line",[0,0.1*(1+i)],[marker:=[1,CParrow'],scale:=1.5,Color:=red]),
\end{texgraph}

\section{Question (8)}

\begin{frame}
\frametitle{\textbf{Question (8)}}

On considère l'algorithme et le motif suivants :

{\footnotesize
\begin{center}
\input{parcours.pgf}

	\begin{minipage}{0.5\linewidth} 
		\begin{algorithm}[H]
			\Init{Le robot R est au départ.}
			\Trait{
				\Pour{$i$ allant  de 0 à $\dots\dots$}
					{
						R avance de 50 pas ;\\
						R tourne à droite de 90\up{°} ;\\
						R avance de 50 pas ;\\
						$\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots$\\
					}
			}
		\end{algorithm}
	\end{minipage} 
\end{center}}

\begin{block}{}
Compléter cet algorithme permettant de déplacer le robot jusqu'à l'arrivée.
\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%
%%% Question (9) %%%
%%%%%%%%%%%%%%%%%%%%%

\begin{texgraph}[name=axe,export=pgf,preload="grid.mod",auto=false]
Fenetre(-6+i,7-0.5*i,0.75+0.75*i),
Marges(0,0,0,0),
draw("axeX",[0,1],[limits:=[-6+7*i],Arrows:=1]),
NewMac("puce","[
    SaveAttr(),
    FillStyle:=full, FillColor:=black,
    r:=%2,
    Cercle(%1,r),
    Path([%1,%1+r*exp(i*pi/4), r,r/4, 45,ellipse],0),
    Path([%1,%1+r*exp(3*i*pi/4), r,r/4, -45,ellipse],0),
    FillStyle:=none,
    for k in [-pi/3, -pi/6] do
        A:=%1+r*exp(i*k), $B:=%1+2*r*exp(i*k), $C:=rot(A,B,pi/2),
        P1:=[A,B,C], P2:=sym(P1,%1,%1+i),
        Ligne([P1, jump, P2],0) od,
    RestoreAttr()
    ]"),
puce(0.5*i,0.25) 
\end{texgraph}

\section{Question (9)}

\begin{frame}
\frametitle{\textbf{Question (9)}}

{\small Une puce se déplace sur un axe gradué ; à chaque saut, elle se déplace d'une unité de manière aléatoire, vers la gauche ou vers la droite.\\
Elle part de l’origine et effectue une \og marche aléatoire \fg de 5 sauts.\\
On considère l'algorithme et l'axe suivants :}

\begin{center} \input{axe.pgf} \end{center}

\noindent \begin{minipage}{0.6\linewidth}{
{\footnotesize
%\begin{center}
%	\begin{minipage}{0.65\linewidth} 
		\begin{algorithm}[H]
			\Init{$X$ prend la valeur 0.}
			\Trait{
				\Pour{$i$ allant de 1 à 5}
					{Choisir un nombre aléatoire $A$ de $\Ifo{0}{1}$.\\
					\eSi{$A<0,5$}
						{$X$ prend la valeur $X+1$ ;}
						{$X$ prend la valeur $X-1$.}
					}
			}
			\Sortie{Afficher $X$}
		\end{algorithm}
%	\end{minipage} 
%\end{center}
}
}\end{minipage}\hfill
\noindent \begin{minipage}{0.35\linewidth}{
\begin{block}{}
Les 5 nombres aléatoires successifs sont :\\ 0,7 ; 0,4 ; 0,3 ; 0,1 ; 0,1.

\medskip

Quelle sera la position finale de la puce ?
\end{block}
}\end{minipage}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%
%%% Question (10) %%%
%%%%%%%%%%%%%%%%%%%%%

\section{Question (10)}

\begin{frame}
\frametitle{\textbf{Question (10)}}

{\small Une puce se déplace sur un axe gradué ; à chaque saut, elle se déplace d'une unité de manière aléatoire, vers la gauche ou vers la droite.\\
Elle part de l’origine et effectue une \og marche aléatoire \fg de 5 sauts.\\
On considère l'algorithme et l'axe suivants :}

\begin{center} \input{axe.pgf} \end{center}

\noindent \begin{minipage}{0.6\linewidth}{
{\footnotesize
%\begin{center}
%	\begin{minipage}{0.65\linewidth} 
		\begin{algorithm}[H]
			\Init{$X$ prend la valeur 0.}
			\Trait{
				\Pour{$i$ allant de 1 à 5}
					{Choisir un nombre aléatoire $A$ de $\Ifo{0}{1}$.\\
					\eSi{$A<0,5$}
						{$X$ prend la valeur $X+1$ ;}
						{$X$ prend la valeur $X-1$.}
					}
			}
			\Sortie{Afficher $X$}
		\end{algorithm}
%	\end{minipage} 
%\end{center}
}
}\end{minipage}\hfill
\noindent \begin{minipage}{0.38\linewidth}{
\begin{block}{}
Est-il possible d'obtenir 2 comme affichage de $X$ ?
\end{block}
}\end{minipage}
\end{frame}

\begin{texgraph}[preload="ornaments.mod", name=fin, export=pgf, auto=false]
Fenetre(-3+0.5*i,3-0.5*i,1+i),
Marges(0,0,0,0),
S:=Loadvectorian(72),
Drawvectorian(-2, S, [width:=2]),
S:=Loadvectorian(73),
Drawvectorian(2, S, [width:=2]),
LabelSize:=Huge, Label(0, "FIN") 
\end{texgraph}

\begin{frame}
\begin{center} {\Huge 
\input{fin.pgf}
} \end{center}
\end{frame}

\end{document} 