

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}          % les bons codes pour les bonnes lettres
\usepackage{listings}% pour les listings informatiques
\usepackage[frenchb]{babel}
\usepackage{keystroke}% pour les touches du clavier
\usepackage{amsmath,amsfonts,amsthm,geometry,pst-all}
\usepackage{amssymb}
\geometry{a4paper,left=1cm,right=1cm,top=1cm,bottom=1cm,noheadfoot}
\usepackage{pifont}
\usepackage{graphicx}
%\usepackage{yhmath} %pour faire un arc de cercle $\wideparen{AB}$ 
\usepackage{eurosym} % pour avoir le symbole euro \euro
\pagestyle{empty}
\setlength{\parindent}{0cm}
\usepackage{multicol}
\usepackage{slashbox} %pour barrer une cellule d'un tableau
\usepackage{color}
\usepackage{mathrsfs, wasysym} % mathscfs donne accès aux lettres curvilignes
\usepackage{pstricks,pstricks-add,pst-math,pst-xkey} % packages utiles pour le pstricks
\usepackage{multirow,colortbl,tabularx} % packages utilisés dans un tableau (tabular)
\usepackage{array}
\usepackage{calc,fp}

\makeatletter
\define@key[psset]{}{transpalpha}{\pst@checknum{#1}\pstranspalpha}
\psset{transpalpha=1}
\def\psfs@transp{%
  \addto@pscode{/Normal .setblendmode \pstranspalpha .setshapealpha }%
  \psfs@solid}
%%%%%%%%%%%%%%%%%%%%%%%%%% Ceci sert lorsqu'on remplit une figure géométrique

\newcounter{numero}
\newcommand{\partie}{
\addtocounter{numero}{1}%
\textbf{\psframebox*[fillcolor=black!60]{\textbf{\white Partie \arabic{numero}:}}}\quad}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% incrémente le numéro de la partie

\setlength\leftmargini{0.73cm}
\renewcommand{\labelenumi}{\psframebox*[fillcolor=black!25]{\textbf{\white{\arabic{enumi}.}}}}
\setlength\leftmarginii{0.40cm}
\renewcommand{\labelenumii}{\textbf{\alph{enumii}.}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% définition des items

\newcounter{degradecadre}
\newcounter{ptinit}
\newcounter{ptfin}
\newcounter{ycadreinit}
\newcounter{ycadrefin}
\newcommand{\cadre}[2]{\begin{pspicture}(0,0)(19,1.4)
	\multido{\i=1+1}{16}{
		\multido{\n=1+1}{2}{
			\FPeval{\degradecadre}{90-\i*4}
			\FPeval{\ptinit}{1.1875*(\i-1)}
			\FPeval{\ptfin}{1.1875*(\i-1)+1.1875}
			\FPeval{\ycadreinit}{(\n-1)*1.4}
			\FPeval{\ycadrefin}{(\n-1)*1.4+0.1}
			\psframe[fillstyle=solid,fillcolor=black!\degradecadre,linestyle=none](\ptinit,\ycadreinit)(\ptfin,\ycadrefin)}}
	\psframe[fillstyle=solid,fillcolor=black!90,linestyle=none](0,0)(0.1,1.4)
	\psframe[fillstyle=solid,fillcolor=black!26,linestyle=none](18.9,0)(19,1.4)
	\rput(9.5,1){#1} \rput(9.5,0.4){#2}
\end{pspicture}\par}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cadre et titre

\newcounter{degrade}
\newcounter{ptdepart}
\newcounter{ptfinal}
\def\lignetirets{\begin{pspicture}(0,0)(19,0.2)
	\multido{\i=1+1}{16}{
		\FPeval{\degrade}{90-\i*4}
		\FPeval{\ptdepart}{1.2*(\i-1)}
		\FPeval{\ptfinal}{1.2*(\i-1)+1}
		\psframe[fillstyle=solid,fillcolor=black!\degrade,linestyle=none](\ptdepart,0)(\ptfinal,0.2)}
\end{pspicture}\par}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ligne tirets

\renewcommand\rmdefault{phv}

\newcommand{\procedure}[3]{
	\setlength{\arrayrulewidth}{1.8pt}
	\begin{tabularx}{#1}[t]{|X}
		\rowcolor[gray]{0.6}
		\textcolor{white}{#2}\\ 
		\cellcolor{gray!20}
		#3\\
	 \hline
	\end{tabularx}
	\setlength{\arrayrulewidth}{0.6pt}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% crée les cadres pour Procédure; en paramètre, on met le texte

\def\R{{\mathbb R}} % les réels
\def\Q{{\mathbb Q}} % les rationnels
\def\Z{{\mathbb Z}} % les entiers relatifs
\def\D{{\mathbb D}} % les décimaux
\def\N{{\mathbb N}} % les entiers naturels
\def\C{{\mathbb C}} % les complexes
\def\c{{\mathscr C}} % pour les courbes
\def\Pl{\mathscr{P}} % pour les plans
\def\Oij{$\left(O;~\vec{i},~\vec{j}\right)$} % pour nommer un repère (O;i,j)
\def\cad{c'est-à-dire}
\def\e{\mathrm{e}} %pour écrire correctement le nombre e
\def\i{\mathrm{i}} %pour écrire correctement le nombre i
\def\d{\,\text{d}} % pour avoir un d droit dans l'intégrale

\newcommand{\ve}[1]{\overrightarrow{#1}} %pour les vecteurs
\newcommand{\Cnp}[2]{\displaystyle{{#1 \choose #2}}} % pour les p parmi n
\newcommand{\systeme}[2]{\left\{\begin{array}{l}
	#1\\
	#2\\
\end{array}\right.} % pour créer un système de deux équations

\makeatletter
\newlength{\@longarc}
\newcommand{\arc}[1]{\settowidth{\@longarc}{$#1$}
	\addtolength{\@longarc}{-0.2em}
	\unitlength \@longarc
	\ensuremath{
		\stackrel{\begin{picture}(1,0.2)
			\qbezier(0,0)(0.5,0.2)(1,0)
		\end{picture}}
		{#1}
	}}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%   Pour les listings de code et les réponses du logiciel


\usepackage{bold-extra,fancyvrb}
\usepackage[scaled=0.85]{luximono}
\DefineVerbatimEnvironment{boxedverbatim}{Verbatim}{gobble=2,frame=single,framesep=4mm,label=\textit{\small
    Réponse du logiciel}}

\definecolor{0.9white}{rgb}{0.9,0.9,0.9}
\definecolor{0.2white}{rgb}{0.2,0.2,0.2}


\lstloadlanguages{XCAS}
\lstset{numbers=none,language=XCAS,xleftmargin=10pt,%
keywordstyle =\color{0.2white}\bfseries\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,commentstyle=\normalfont\scriptsize\itshape,%\small,
    backgroundcolor=\color{0.9white},breaklines=true}
   

\newcommand\Prog[1]{{\bfseries\ttfamily #1}}

\newcommand{\code}[1]{\texttt{#1}}

% %%% un ; avec un peu d'espace autour pour les intervalles
\newcommand{\pv}{\ensuremath{\: ; \,}}

%%%%%%%%%%%%%%%%%%%%% pour créer un arc de cercle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Début du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\begin{document}
\setlength{\unitlength}{1mm}

\cadre{\LARGE \emph{FRACTIONS CONTINUES }}{\Large \emph{Une autre manière d'écrire les nombres }}



\textbf{Compétences mathématiques\::}\par
	\hspace{1cm} $\bullet$  Algorithme d'Euclide, PGCD, calcul fractionnaire, nombre d'Or.

\textbf{Compétences informatiques\::}\par
	\hspace{1cm} $\bullet$  Boucles «~TANT QUE~», manipulation de listes.

\textbf{Prérequis\::}\par
	\hspace{1cm} $\bullet$  Familiarité avec la programmation.

\lignetirets


\partie \textbf{Un exemple «~à la main~»}\\
\procedure{\linewidth}{Le problème}{Écrire un nombre rationnel sous la forme d'une fraction faisant
  apparaître les quotients successifs de l'algorithme d'Euclide.  }

\begin{enumerate}
\item \textbf{ Algorithme d'Euclide}\\

  \begin{enumerate}
  
\item Observez l'algorithme suivant~:

\begin{eqnarray}
172&=&3\times\textcolor{gray}{51}+\textcolor{0.2white}{19}\\
\textcolor{gray}{51}&=&2\times\textcolor{0.2white}{19}+13\\
19&=&1\times13+6\\
13&=&2\times 6+1\\
6&=&6\times 1+0
\end{eqnarray}

\item Complétez alors la suite d'égalité suivante~:

\[\frac{172}{51}=3+\frac{19}{51}=3+\frac{1}{\frac{51}{19}}=3+\frac{1}{2+\frac{13}{19}}=\dots     \]

\end{enumerate}

\item \textbf{ Pratique du développement}\\
\begin{enumerate}

\item Quand tous les numérateurs sont égaux à 1, on dit qu'on a développé $\frac{172}{51}$ en
  fraction continue, et pour simplifier l'écriture on note~:
\[\frac{172}{51}=[3\pv 2\pv \dots ]\]

\item Développez de même $\frac{453}{54}$ en fraction continue.

\item Écrire $[2\pv 5\pv 4]$ sous la forme d'une fraction irréductible.

  \end{enumerate}



\end{enumerate}


\partie \textbf{Exploration à l'aide de XCAS}\\


\begin{enumerate}
\item \textbf{Fin de l'algorithme d'Euclide}\\

Quand est-ce que s'arrête l'algorithme d'Euclide~? Est-on sûr qu'il va effectivement s'arrêter~? 

\item \textbf{Nouveaux outils XCAS}\\

Explorez les fonctions \code{reste(n,p)} et \code{quotient(n,p)} puis dîtes en quoi elles vont nous
être utiles.

On aura aussi besoin de savoir que \code{NULL} désigne une liste vide.

\item \textbf{Écriture de la procédure}

Voici le début et la fin de la procédure, à vous d'en découvrir le c\oe ur\dots

\begin{lstlisting}
frac_cont(a,b):={
local num,den,res,Liste;
num:=a;
den:=b;
res:=reste(num,den);
Liste:=NULL;
tantque...
.
.
.
ftantque
return([Liste,quotient(num,den)]);
}:;
\end{lstlisting}


\item \textbf{Inverses et fractions continues}

Comparez les développements en fractions continues de $\frac{172}{51}$ et
$\frac{51}{172}$. Commentez.


\end{enumerate}

\partie \textbf{Observation d'une procédure}\\

À votre avis, que fait cette procédure~:

\begin{lstlisting}
frac2nombre(Liste):={
dernier:=size(Liste)-1;
temp:=Liste[dernier]
pour k de dernier-1 jusque 0 pas -1 faire
  temp:=Liste[k]+1/temp;
fpour
}:;
\end{lstlisting}


\partie \textbf{Le nombre d'Or}\\

On appelle \textsl{Nombre d'Or} et on note $\Phi$ le nombre $\dfrac{\sqrt{5}+1}{2}$.

Sur \Prog{XCAS}, cela donne~:

\begin{lstlisting}
Phi:=(sqrt(5)+1)/2
\end{lstlisting}

\begin{enumerate}
\item Calculez $\frac{1}{\Phi}$ puis $1+\frac{1}{\Phi}$ sans racines au dénominateur.
\item Retrouvez ce résultat à l'aide de \Prog{XCAS}. On pourra utiliser la fonction \code{normal}
  qui renvoie entre autre ce genre de fractions avec un dénominateur entier.
\item Donnez une approximation de $\Phi$ à l'aide de \Prog{XCAS}. On utilisera la commande
  \code{evalf(x)} qui renvoie une valeur approchée de $x$.
\item  Le code \code{1\$50} permet d'écrire 50 1 séparés par une virgule.

Comparez \code{evalf(frac2nombre([1\$50]))} avec le résultat de la question précédente. Commentez.
\end{enumerate}


\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
