\documentclass[a4paper,11pt]{article}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}

\usepackage{textcomp}

\usepackage{graphicx}
\usepackage{array}

\usepackage{caption}
\usepackage{fancyhdr}

\usepackage[colorlinks,citecolor=blue,urlcolor=blue,linkcolor=blue,pagebackref=true]{hyperref}


\usepackage{enumerate}
\usepackage{pgf}

\usepackage{times}

\usepackage{pict2e,xcolor}
\usepackage{framed}

\setlength{\oddsidemargin}{-0.2cm}
\setlength{\textwidth}{16.3cm}
\setlength{\topmargin}{-2.cm}
\setlength{\textheight}{25.3cm}
\parindent 0.8cm

%création des ensembles de nombres
\font\bbw=msbm10
\def\R{\hbox{\bbw R}}
\def\N{\hbox{\bbw N}}
\def\Z{\hbox{\bbw Z}}
\def\D{\hbox{\bbw D}}
\def\Q{\hbox{\bbw Q}}

\newcommand {\cdisp} {\setlength\unitlength{2pt} %creation du disp de casio
\begin{picture}(0,0)
\linethickness{.5mm}
\polygon*(0,0.3)(1,0.3)(1,1.3)
\color{black}
\polygon(0,0.3)(1,0.3)(1,1.3)
\end{picture}}

\definecolor{fond}{gray}{0.95}
\newenvironment{cadrecode}{%
  \def\FrameCommand{{\color[HTML]{888888}\vrule width 3pt}\colorbox{fond}}%
  \MakeFramed {\advance\hsize-\width \FrameRestore}}%
{\endMakeFramed}

\begin{document}

\pagestyle{fancy}
\fancyhead{}
\fancyfoot{}
\lfoot{\small{Bernelas-Bays}}
\rfoot{\small{Lycée Les Eucalyptus}}
\fancyfoot[C]{\thepage}
\renewcommand \headrulewidth{0pt}
\renewcommand \footrulewidth{.2pt}

\begin{center} \Large \textbf{\fbox{\begin{minipage}{0.6\textwidth}
  \begin{center} Algorithmique et suites\end{center} 
\end{minipage}}} 
  \end{center}

\vspace{6ex}


\section{Instruction conditionnelle, boucle et itérateur}

\subsection{Instruction conditionnelle} 

On utilise l'instruction "Si \ldots alors \ldots" , (If \ldots then \ldots),

 ou bien l'instruction "Si \ldots alors \ldots Sinon" (If \ldots Then \ldots Else).

\begin{cadrecode}
\begin{small}
\begin{verbatim}
Si <condition> alors
    ... Instructions A ...
Sinon
    ... Instructions B ...
\end{verbatim}
\end{small}
\end{cadrecode}

\subsection{Boucles itératives}

On utilise l'instruction "Pour" (For). Cette instruction s'emploie pour répéter n fois une suite d'instructions, lorsque n est connu à l'avance (par exemple pour déterminer un tableau de n valeurs d'une fonction, pour le calcul de n termes d'une suite) 

\begin{cadrecode}
\begin{small}
\begin{verbatim}
Entier i
Pour i = 1 à 100
    Début
    ... Instructions ...
    Fin
    
\end{verbatim}
\end{small}
\end{cadrecode}

\subsection{Boucles itératives conditionnelle}

On utilise l'instruction "Tant que" (While). Cette instruction s'emploie pour répéter une suite d'instructions lorsque le nombre de répétitions est inconnu. La suite d'instructions est répétée tant qu'une certaine condition est vraie.

\begin{cadrecode}
\begin{small}
\begin{verbatim}
Variable X
X= ...
Début Tant que <condition sur X>    
    ... Instructions ...
Fin Tant que    
\end{verbatim}
\end{small}
\end{cadrecode}

Attention à toujours vérifier que la boucle ne va pas se répéter sans fin.

~

\textbf{Exemple de programme avec une calculatrice :}


\begin{figure}[htbp]
\begin{minipage}{0.45\textwidth}
Programme Casio

\begin{cadrecode}
\begin{small}
1 $\rightarrow$ A

2 $\rightarrow $ B

While B $-$ A $=$ 1

10 $\times$ A $\rightarrow$ A

A + 1 $\rightarrow$ B

WhileEnd

A \cdisp 
\end{small}
\end{cadrecode} 
\end{minipage}
\begin{minipage}{0.45\textwidth}
Programme Texas

\begin{cadrecode}
\begin{small}
1 $\rightarrow$ A

2 $\rightarrow $ B

While B $-$ A $=$ 1

10 $\times$ A $\rightarrow$ A

A + 1 $\rightarrow$ B

End

Disp A 
\end{small}
\end{cadrecode} 
\end{minipage}
\end{figure}

le programme qui suit va bien se terminer car dans une calculatrice, la taille des nombres est limitée et donc il existe un grand nombre  $K$, par exemple $K=10^{14}$, tel que $1$ soit
négligable par rapport à $K$ et alors $K + 1$ est égal à $K$ (pour la calculatrice !), donc le programme s'arrête. 


\section{Exemples d'algorithmes}

\subsection{Calcul des termes d'une suite}

 \textbf{Approximation d'un réel}

On considère la suite $(u_n)$ définie par $u_0=3$ \,  et \, $u_{n+1}=\frac{1}{2}(u_n+\frac{2}{u_n})$. On démontre que cette suite est décroissante et minorée, donc convergente. Ecrire un algorithme qui permet de calculer les termes de $u_1$ jusqu'à $u_{20}$.
Ecrire le programme sur une calculatrice et émettre une conjecture sur la limite de cette suite.

\subsection{Rang à partir duquel un terme est supérieur à un réel donné}

On considère l'algorithme suivant :

\begin{cadrecode}
\begin{small}
\begin{verbatim}
Variables et Initialisation
   u prend la valeur 2000
   n prend la valeur 0
Traitement
   Tant que u < 2500
      Remplacer u par u * 1,025
      Augmenter n de 1
      Fin du Tant Que
Sortie
   Afficher u et n
\end{verbatim}
\end{small}
\end{cadrecode}

1. Ecrire la suite des cinq premiers affichages.

2. Déterminer les valeurs finales de  u et de n.

3. Donner un problème dont la solution est donnée par cet algorithme.

\subsection{Limite d'une suite arithmético-géométrique}

On considère la suite $(u_n)$ définie par $u_1=\frac{3}{4}$ \, et \, $u_{n+1}=\frac{1}{2}u_n+\frac{1}{4}$\, .
On peut démontrer que la suite $(u_n)$ est décroissante et convergente de limite $\frac{1}{2}$.
Expliquer ce que fait l'algorithme suivant et écrire le programme sur une calculatrice.

\begin{cadrecode}
\begin{small}
\begin{verbatim}
Variables et Initialisation
   u prend la valeur 0,75
   n prend la valeur 1
Traitement
   Tant que u - 0,5 > 0,0001
      Remplacer u par 0,5*u+0.25
      Augmenter n de 1
      Fin du Tant Que
Sortie
   Afficher u et n
\end{verbatim}
\end{small}
\end{cadrecode}


 \end{document}    

  
