\documentclass[a4paper,10pt]{article} \usepackage{/media/documents/Cours/Prof/TD_maple/2012_2013/style} % Title Page \title{TD2: Les boucles} \author{} \begin{document} \maketitle Pensez à \begin{itemize} \item Sauvegarder régulièrement votre travail! \textbf{Ctrl + S} ou \textbf{File $>$ Save as}. \item Faire un \texttt{restart;} au début de chaque exercice. \end{itemize} \section{Boucles} \label{sec:Boucles} \indent \begin{Exo}(Introduction aux boucles)\\ Tapez les lignes suivantes (pour passer à la ligne sans déclencher son interprétation, au lieu d'utiliser \textbf{Entrée}, utilisez \textbf{Maj + Entrée}) \begin{verbatim} > for i from 1 to 4 do # Maj+Entrée pipo; # Maj+Entrée od; # Entrée \end{verbatim} \begin{itemize} \item Commentez. \end{itemize} Tapez maintenant le code suivant. \begin{verbatim} > for i form 1 to 5 do i^2; od; \end{verbatim} \begin{itemize} \item Commentez. \item Que ce passe-t-il si on remplace \texttt{od;} par \texttt{od:}? \end{itemize} Enfin essayez le code suivant. \begin{verbatim} > x := 1; > for i from 1 to 5 do x := x*2; od; > x; \end{verbatim} \begin{itemize} \item Commentez. \item Que ce passe-t-il si on remplace \texttt{od;} par \texttt{od:}? \item Évaluez \texttt{i}. Que remarquez vous? \end{itemize} \end{Exo} \begin{Exo}(Calcul de sommes et de produit)\\ En utilisant les boucles calculez la somme suivante \begin{eqnarray*} \sum_{k = 0}^{10} 2^k \end{eqnarray*} En utilisant les boucles, calculez \texttt{10!}. \end{Exo} \begin{Exo} (Suites récurrentes d'ordre 1)\\ On se donne la suite $(u_n)_{n \in \N}$ définit par \begin{eqnarray*} u_{n+1} & = & 2u_n + 1 \quad \forall n \in \N \\ u_0 & = & 0 \end{eqnarray*} Calculer $u_{100}$. On se donne la suite $(v_n)_{n \in \N}$ définit par \begin{eqnarray*} v_{n+1} & = & \frac{v_n}{2} + \frac{1}{v_n} \quad \forall n \in \N \\ v_0 & = & 1 \end{eqnarray*} Calculer $v_{100}$. \end{Exo} \begin{Exo}(Suites récurrentes d'ordre 2)\\ On se donne la suite $(v_n)_{n \in \N}$ définit par \begin{eqnarray*} v_{n+2} & = & v_{n+1} + v_n \quad \forall n \in \N \\ v_0 & = & 1 \\ v_1 & = & 1 \end{eqnarray*} Calculer $v_{100}$. \begin{hint} Vous pouvez vous ramener à un récurrence d'ordre 1 en considérant $(v_n,u_n)$ avec $u_n = v_{n+1}$. \end{hint} \end{Exo} \section{Séquences et listes} \label{sec:Sequences et listes} \indent \begin{Exo}(Séquences) Tapez les commandes suivantes. \begin{verbatim} > S := a,b,c,d,e; > S[1]; S[3]; > S[10]; > S[1..3]; > T := S[1..3], x, S[4..5]; > T; \end{verbatim} On dit que \texttt{S} et \texttt{T} sont des \textit{séquences}. \begin{itemize} \item Comment accède-t-on à une valeur particulière d'une séquence? Que se passe-t-il si l'on fait \texttt{S[1] := z}? \item Que signifie \texttt{S[1..3]}? \item Quelle transformation a-t-on fait à \texttt{S} pour obtenir \texttt{T}? \end{itemize} \end{Exo} \begin{Exo}(Puissances de 2)\\ En utilisant les boucles, construisez une séquence contenant les puissance de 2 jusqu'à 35. \begin{eqnarray*} 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024\cdots \end{eqnarray*} Donnez les puissances de 2 de 25 à 30. Maple dispose d'une fonction qui permet de faire la même chose plus rapidement: \texttt{seq}. Refaite l'exercice en utilisant \texttt{seq}. Donner la séquence, pour $n$ variant de 5 à 10 de \begin{eqnarray*} u_n = \frac{x^n}{n!} \end{eqnarray*} \end{Exo} \begin{Exo}(Retour aux suites)\\ On se donne la suite $(u_n)_{n \in \N}$ définit par \begin{eqnarray*} u_{n+1} & = & 2u_n + 1 \quad \forall n \in \N \\ u_0 & = & 0 \end{eqnarray*} Donnez la séquence des 10 premières valeurs de la suite. \end{Exo} \begin{Exo}(Séquence de séquence: utilisation de listes)\\ Dans cet exercice on voudrai faire une séquence de séquences. C'est à dire qu'on voudrai avoir accès à une séquence quand on appel \texttt{S[1]}. Essayez. \begin{verbatim} > A := a,b,c,d,e; > Z := z,y,x,w,v; # On voudrai construire S tel que S[1] = A et S[2] = Z. # La première idée serai > S := A,Z; # La deuxième serai > S[1] := A; > S[2] := Z; \end{verbatim} \begin{itemize} \item Est-ce que la première idée marche? Que ce passe-t-il? \item Est-ce que la deuxième idée marche? Que ce passe-t-il? \item Une autre idée? \end{itemize} L'astuce est de mettre la séquence entre crochets. Essayez. \begin{verbatim} > A := [A]; > Z := [Z]; > S := A, Z; \end{verbatim} \begin{itemize} \item Est-ce que ça marche? \item Essayez à partir de \texttt{S} d'atteindre la première valeur de \texttt{A}. Et la troisième valeur de Z? \end{itemize} \end{Exo} \begin{Exo}(Produit de matrices)\\ On se donne de matrices $A$ et $B$ telles que \begin{eqnarray*} A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix}; \quad B = \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} \end{eqnarray*} \begin{itemize} \item Comment stocker ces matrices dans Maple? \item Écrivez une boucle(double!) pour faire le produit de $A$ par $B$. \end{itemize} \end{Exo} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: "master" %%% End: