\documentclass[10pt,a4paper]{article} \usepackage{/media/documents/Cours/Prof/TD_maple/2012_2013/style} \usepackage{eurosym} \usepackage{url} % Title Page \title{Révision} \author{} \date{} \begin{document} \maketitle \thispagestyle{fancy} \section{Conseils} \begin{itemize} \item Pensez à Sauvegarder! \item Commencez par écrire le squelette de ce que vous voulez faire. Complétez ensuite.\\ \textbf{Exemple} Pour une procédure \begin{verbatim} > MaProc := proc(LesArguments) return(ValeurARetourner); end; \end{verbatim} Pour les boucles \begin{verbatim} for i from 1 to n do od; \end{verbatim} \item Sauvegardez! \item Si vous n'avez pas d'idées pour écrire une procédure, commencez par traiter à la main un cas particulier puis essayez de généraliser. \item Sauvegardez! \item Donnez des noms de variables compréhensibles et parlant. \item Sauvegardez! \end{itemize} \section{Examen 2011/2012} \begin{Exo}(Jour et date)\\ Écrire une procédure \texttt{date} prenant en argument un entier $j$ compris entre $1$ et $365$ et retournant pour résultat un couple $(n,m)$ représentant le numéro du mois (les mois sont numérotés de $1$ à $12$ par ordre chronologique en commençant en janvier) et la date dans le mois correspondant au $j$e jour de l'année. Ainsi \texttt{date(1)} retourne la valeur $(1,1)$ (premier janvier), \texttt{date(365)} retourne la valeur $(31,12)$ (31 décembre). Note~: On se placera uniquement dans le cas d'une année non bissextile. \end{Exo} \begin{Exo}(Algorithme de Babylone) \begin{align*} p_0 & = 1\\ q_0 & = 1\\ \forall n\in\N\ p_{n+1} &= p_n^2 + 2 q_n^2\\ \forall n\in\N\ q_{n+1} &= 2 p_n q_n \end{align*} On remarquera que $p$ et $q$ sont à valeurs entières. \begin{itemize} \item Écrire des procédures maple $p$ et $q$ prenant chacune un entier $n$ en paramètre et retournant respectivement $p_{n}$ et $q_{n}$. Calculez $p_{10}$ et $q_{10}$. \item Quelle conjecture peut-on émettre sur la convergence de la suite des $\dfrac{p_{n}}{q_{n}}$ pour $n\in\N$~? \end{itemize} NB~: Pour mémoire $p_{3}=577$, $q_{3}=408$. \end{Exo} \begin{Exo}(Minimum)\\ Écrire une procédure \texttt{mini} prenant en argument une liste (non-vide) de nombres et rendant en résultat le plus petit de ces nombres. On s'interdit évidemment tout usage des procédures Maple \texttt{max} et \texttt{min}. \end{Exo} \begin{Exo}(Étude d'une suite)\\ \begin{align*} u_{0}&= 2,8\\ \forall n\in\N\quad u_{n+1}&= u_{n} -1 + \ln u_{n} \end{align*} On admettra que cette suite est strictement croissante et non bornée. \begin{itemize} \item Écrire une procédure \texttt{valeuru} prenant en paramètre un entier naturel $n$ et retournant la valeur de $u_{n}$. \item Écrire une procédure \texttt{depasse} prenant en argument un flottant $x$ et retournant le plus petit entier $n$ vérifiant $u_{n} \geq x$. \item Que vaut \verb+depasse(100)+~? \item Que vaut \verb+depasse(100000)+~? \end{itemize} \end{Exo} \section{Exercices} \begin{Exo}(Compter Shadoks)\\ Les \textbf{Shadoks} ne connaissent que 4 mots différents: \begin{eqnarray*} \mbox{ GA, BU, ZO, MEU} \end{eqnarray*} \begin{itemize} \item Trouvez leur une façon de compter utilisant leurs 4 mots. \item Écrire un programme \texttt{ShadokToHuman} qui convertit un nombre Shadok en nombre ``humain'' (en base 10). \item Écrire un programme \texttt{HumanToShadok} qui fait l'opération inverse. \end{itemize} \paragraph{Indication:} \url{http://www.youtube.com/watch?v=nm0cw6b1PMA} \end{Exo} \begin{Exo}(Dénombrement)\\ Écrire une procédure \texttt{DenSomme} qui prend en argument \texttt{n} et qui renvoie les couples $(i,j) \in \N^2$ tel que $i+2j = n$. De combien de façon peut on payer 10\euro{ } avec uniquement des pièces de 1 et 2 euros? \end{Exo} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: "master" %%% End: