\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:

