\input{aaa_fichier_source_bis.tex}


\renewcommand{\familydefault}{\sfdefault}


\definecolor{LightGray}{gray}{0.9}
\usepackage{minted}

\def\colorminted{gray!10!white}

\setlength{\topmargin}{-2cm} %marge en haut sans en tete
\oddsidemargin=-0.25cm %marge a gauche
\evensidemargin=10cm
\textwidth=16cm %largeur sur laquelle on crit
\textheight=25.5cm %longeur sur laquelle on crit


% \oddsidemargin=-0.5cm %marge a gauche

% \leqslant infrieur ou gal
% \geqslant suprieur ou gal
% \guillemotright
% \guillemotleft

%comment inserer une image ?

%\unitlength=1cm
%\begin{picture}(0,0)
%     \put(14,-1.5){\includegraphics[scale=0.6]{EAP_2009_23_06_09.pdf}}
% \end{picture}

%\textbackslash pour crire \
%\displaystyle{texte mathematique a agrandir}
%\pagestyle{empty}
%\addtocounter{numeroexo}{-2}
%\everymath{\displaystyle}
%$\mathcal{ABC}$
%\textbackslash
%\textbf{Partie A} : \textit{Rsolution graphique}


%
%\dbend virage dangereux
%\begin{multicols}{2}
%\end{multicols}

%\linespread{1.2} interligne
%\scriptstyle (rduire texte mathematiques)



%\usepackage{pstricks-add}


%\pagestyle{fancy}
\newenvironment{Figure}
  {\par\medskip\noindent\minipage{\linewidth}}
  {\endminipage\par\medskip}
\usepackage{caption}

\begin{document}


\begin{center}
{\LARGE
Entrainement épreuve pratique NSI
}
\end{center}



\exercice
Le codage de César transforme un message en changeant chaque lettre en la décalant
dans l'alphabet.\\
Par exemple, avec un décalage de 3, le A se transforme en D, le B en E, ..., le X en A,
le Y en B et le Z en C. Les autres caractères (?!?,? ??...) ne sont pas codés.
La fonction \textbf{position$\_$alphabet} ci-dessous prend en paramètre un caractère \textbf{lettre}
et renvoie la position de lettre dans la chaîne de caractères ALPHABET s'il s'y trouve
et -1 sinon.\\
La fonction \textbf{cesar} prend en paramètre une chaîne de caractères \textbf{message} et un nombre
entier \textbf{decalage} et renvoie le nouveau message codé avec le codage de César utilisant
le  \textbf{decalage}.

\begin{enumerate}
\item Compléter la fonction \textbf{cesar}.

\begin{minipage}{0.8\linewidth} 
\begin{minted}[linenos=true,bgcolor=\colorminted]{python} 
ALPHABET='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

def position_alphabet(lettre):
	return ALPHABET.find(lettre)
	
def cesar(message, decalage):
	resultat = ''
	for ... in message :
		if lettre in ALPHABET :
			indice = ( ... )%26
			resultat = resultat + ALPHABET[...]
		else:
			resultat = ...
	return resultat

\end{minted}
\end{minipage}

\item Sachant que le décalage est de 5, déchiffrer : 

\begin{center}
WJIEJPM V OJPN. QDQZ GV HVODZMZ IND !
\end{center}


\item Décrypter  le message suivant :
\begin{center}
FJTA CDB EDGIT AP ITRWCXFJT FJT KDJH KTCTO S'JIXAXHTG ?
\end{center}

\item Décrypter  le message suivant :
\begin{center}
I'kyz vgy sgr. HXGBU !  Buay vuabkf vgyykx ga tobkga YAOBGTZ...
\end{center}


\item Le nouvel indice n'est plus un simple décalage mais il est obtenu de cette façon :

La clé de chiffrement n'est pas un simple décalage mais un couple de deux nombres $a$ et $b$ compris entre 1 et 26. On obtient le nouvel indice avec :
\begin{minted}[linenos=true,bgcolor=\colorminted]{python} 
indice = (position_alphabet(lettre)*a +b) %26
\end{minted}

Décrypter  le message suivant :
\begin{center}
Qmnyd, ydvp gdvyzk gzvs-êsmz zaylpnfzm wz smnynluuzm za THQZMpétvmlsé.
\end{center}
\end{enumerate}


\newpage


\exercice

Écrire une fonction \textbf{RechercheMinMax} qui prend en paramètre un tableau de nombres
non triés \textbf{tab}, et qui renvoie la plus petite et la plus grande valeur du tableau sous la
forme d'un dictionnaire à deux clés '\textbf{min}' et '\textbf{max}'. Les tableaux seront représentés sous
forme de liste Python.

Exemples : 

\begin{minipage}{0.75\linewidth} 
\begin{minted}[linenos=true,bgcolor=\colorminted]{python} 
>>> tableau = [0, 1, 4, 2, -2, 9, 3, 1, 7, 1]
>>> resultat = rechercheMinMax(tableau)
>>> resultat
    {'min': -2, 'max': 9}
>>> tableau = []
>>> resultat = rechercheMinMax(tableau)
>>> resultat
    {'min': None, 'max': None}
\end{minted}
\end{minipage}
\end{document}
