\documentclass[a4paper,10pt]{book}
\textwidth 10,5 cm
%\textwidth 11,8 cm
\textheight 17 cm
%\documentclass[twocolumn,10pt]{book}
%dvips -t landscape -O 0,-0.9 jean2.dvi 
\if@twoside \oddsidemargin 44pt \evensidemargin 82pt \marginparwidth 107pt
\else \oddsidemargin -0.29cm \evensidemargin -0.29cm
 \marginparwidth 0cm
\fi
\marginparsep 0cm
 \topmargin 0.26cm \headheight 0pt \headsep 20pt \footskip 30pt
%\topmargin 0.36cm
\baselineskip = 15pt
%\textheight 24.5cm
%\textwidth 17cm 
\columnsep 30pt \columnseprule 0pt
%\textwidth 25 cm
%\textheight 18 cm
%\def\@evenhead{\thepage\hfill{\footnotesize\textit{\leftmark}}}
%\def\@oddhead{\footnotesize{\textit{\rightmark}}\hfill\thepage}
%\usepackage{hp}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{makeidx}
%\usepackage[pdftex]{hyperref}
\title {Calcul formel \\et \\ Mathématiques\\ avec\\ la HP40G }
\author{Renée De Graeve\\ Ma\^itre de Conférence à Grenoble I\\ Version 2.0}
%\date{}
\makeindex
\begin{document}
\newcommand{\asinh}{\,\,\mbox{asinh\,}}
\newcommand{\atanh}{\,\,\mbox{atanh\,}}
\maketitle
{\bf \centerline{Remerciements}}

\vspace{1cm}
Tout le monde savait que c'etait impossible d'écrire seul, un logiciel de 
calcul formel performant....Seul, un illuminé, Bernard Parisse ne le savait 
pas...et il l'a fait!!!\\
Voici son logiciel de calcul formel (dit ERABLE) implanté pour la deuxième fois
sur une calculatrice HP.\\
Cela a amené Bernard Parisse à modifier quelque peu son logiciel de façon à 
ce que les fonctions de calcul formel puissent \^etre éditées et avoir leurs 
réponses dans l'éditeur d'équations....\\
A vous de découvrir toutes les performances de cette calculatrice, au fil 
des pages de ce livre.\\
\vspace{0.2cm}

Je  remercie:
 \begin{itemize}
\item Bernard Parisse pour ses précieux conseils, ses remarques sur ce texte,
 sa relecture, et  pour sa faculté d'écrire des fonctions à la demande, avec 
efficacité et gentillesse, 
 \item Jean Tavenas pour l'int\'er\^et port\'e \`a l'ach\`evement de ce guide,
 \item Jean Yves Avenard pour avoir pris en compte nos suppliques et pour 
avoir, gr\^ace à son esprit prompt, écrit la commande PROMPT de façon 
impromptue... (cf \ref{sec:prompt}).
\end{itemize}
\vspace{1cm}


\vfill

\copyright\ 2000 Hewlett-Packard, {\tt http://www.hp.com/calculators}\\ 
      Permission is granted to copy, distribute and/or modify this document
      under the terms of the GNU Free Documentation License, Version 1.1
      or any later version published by the Free Software Foundation;
      with no Invariant Sections, with no Front-Cover Texts, 
      and with no Back-Cover Texts.\\
      A copy of the license is included in the section entitled "GNU
      Free Documentation License (chapter \ref{fdl}, p. \pageref{fdl})".



%Ce document est disponible à l'adresse Internet suivante :\\
%http://www-fourier.ujf-grenoble.fr/\tild parisse/hp49.pdf
\newpage 
{\bf \centerline{Préface}}

\vspace{0.2cm}

La HP40G va marquer une nouvelle \'etape dans la d\'emocratisation
de l'utilisation du calcul formel d'une part, par son prix tr\`es 
comp\'etitif, et d'autre part, par le nombre de possibilit\'es d'ex\'ecuter
en pas-\`a-pas les principaux algorithmes enseign\'es en math\'ematiques
au lyc\'ee et dans les premi\`eres ann\'ees \`a l'Universit\'e.

Mais encore fallait-il lui adjoindre une documentation ad\'equate, 
de pr\'ef\'erence \'ecrite par un enseignant de math\'ematiques. 
C'est ce que vous trouverez dans ce guide r\'ealis\'e par 
Ren\'ee De Graeve, maitre de conf\'erences \`a l'Universit\'e de Grenoble I
et animatrice \`a l'IREM de Grenoble. Il contient, bien
s\^ur, une r\'ef\'erence compl\`ete des fonctions de calcul formel, mais
montre aussi sur des exemples tir\'es du baccalaur\'eat et du brevet
comment tirer parti intelligemment de la puissance de calcul de la HP40G
et se termine par deux chapitres consacr\'es \`a la programmation : le
premier pour apprendre \`a programmer et le second qui illustre 
l'algorithmique appliquée au programme d'arithm\'etique de 
sp\'ecialit\'e des Terminales Scientifiques.

{ \flushright
  Bernard Parisse\\
\flushright Ma\^itre de Conférences à l'Université de Grenoble I\\
}

\vfill

{\small 
End-User Terms and Conditions:\\
Use of the CAS Software requires from the user an appropriate 
mathematical knowledge. There is no warranty for the CAS Software, 
to the extent permitted by applicable law. Except when otherwise stated 
in writing the copyright holder provides the CAS Software As Is 
without warranty of any kind, either expressed or implied, including, 
but not limited to, the implied warranties of merchantability and fitness 
for a particular purpose. The entire risk as to the quality and performance 
of the CAS Software is with you. Should the CAS Software prove defective, 
you assume the cost of all necessary servicing, repair or correction.

In no event unless required by applicable law will any copyright holder 
be liable to you for damages, including any general, special, incidental 
or consequential damages arising out of the use or inability to use the 
CAS Software (including but not limited to loss of data or data being 
rendered inaccurate or losses sustained by you or third parties or a 
failure of the CAS Software to operate with any other programs), even 
if such holder or other party has been advised of the possibility of such 
damages. If required by applicable law the maximum amount payable for 
damages by the copyright holder shall not exceed the royalty amount paid 
by Hewlett-Packard to the copyright holder for the CAS Software.
}\\


\chapter*{Pour commencer}
\section{Présentation générale}
\subsection{Mise en route}
Appuyer sur la touche {\tt ON}.\\
Vous \^etes dans l'écran {\tt HOME}.\\
 En cours de travail, cette touche  {\tt ON}
annule l'opération en cours : elle joue le r\^ole de {\tt CANCEL}.\\
 Pour éteindre la calculatrice, taper {\tt SHIFT} puis sur {\tt ON (OFF)}.\\ 
Si malgré plusieurs {\tt ON} ({\tt CANCEL}), la calculatrice ne repond pas,
 appuyer simultanément sur {\tt ON} et {\tt F3} pour la réinitialiser.
\subsection{Que voit-on ?}
De haut en bas :\\
1. l'écran de {\tt HOME}\\
1.a l'état de la calculatrice \\
1.b un trait horizontal\\ 
1.c un bandeau contenant des commandes\\
2. le clavier\\

\noindent 1.L'écran :\\
1.a L'état de la calculatrice décrit les modes mis en {\oe}uvre dans l'écran  {\tt HOME} :
\begin{itemize}
\item {\tt RAD} ou {\tt DEG} ou {\tt GRD} selon que l'on travaille en radians ou en degrés ou en grades.
\item {\tt  \{FUNCTION\}} pour indiquer le nom de l'{\tt Aplet} 
sélectionnée ici :\\
l'{\tt Aplet Function}.
\item $\blacktriangle$ pour indiquer que la flèche vers le haut vous permet de remonter dans l'historique.
\end{itemize}
1.b Un trait horizontal :\\
- au dessus de ce trait c'est l'historique des calculs faits dans  l'écran {\tt HOME}. \\
Principe : sur l'écran, le calcul demandé  s'inscrit à 
gauche et le résultat s'inscrit à droite.\\
- en dessous de ce trait c'est la ligne d'édition des commandes.\\ 
On peut, gr\^ace à la flèche vers le haut, remonter dans l'historique 
et recopier, avec {\tt COPY} du bandeau, une commande ou un résultat précédent
dans la ligne de commande.\\
1.c Le bandeau :\\
Les commandes du bandeau sont accessibles par les 6 touches grises sans nom 
que l'on nommera ici :\\
 {\tt F1 F2 F3 F4 F5 F6}.\\
 Le bandeau peut contenir des répertoires contenant un ensemble de commandes, ils sont repérables par leur forme de valise.\\
 Pour activer une commande du bandeau, il suffit de 
taper sur la touche {\tt Fi} correspondante. \\
Dans  l'écran {\tt HOME}, le bandeau possède deux commandes :\\
- ${\tt STO \triangleright}$ qui permet de mettre une valeur dans une variable et,\\ 
- {\tt CAS} qui permet d'ouvrir l'éditeur d'équations pour faire du calcul
formel.\\
2. Le clavier :\\
Vous avez déjà repéré :\\
 la touche {\tt ON} pour la mise en route ou pour arr\^eter un calcul en
 cours et {\tt SHIFT}  {\tt ON} pour éteindre la calculatrice.\\ 
Il faut repérer :
\begin{itemize}
\item les quatres flèches (gauche, droite, haut, bas) qui permettent de déplacer le curseur lorsqu'on est dans l'éditeur d'équations, dans un menu etc... 
\item la  touche {\tt SHIFT} qui permet à une m\^eme touche d'avoir une autre 
fonction. 
\item la touche {\tt ALPHA} pour taper du texte en majuscules et les touches
{\tt SHIFT} puis {\tt ALPHA} pour taper du texte en minuscules.\\
 Pour rester en mode de saisie alphabétique il faut maintenir la touche
 {\tt ALPHA} appuyée.
\item ${\tt X\ T\ \theta}$ permet de taper selon le contexte directement  ${\tt X,\ T,\ \theta, N}$.
\item la touche {\tt ENTER} sert à valider une commande.
\end{itemize}
\section{Notations}
Les quatre flèches de direction du curseur sont ici représentées par
les quatre triangles :
$$\triangle\  \lhd \  \rhd \ \bigtriangledown  $$ \index{\tt $ \triangle\  \lhd \  \rhd \ \bigtriangledown$}
Le {\tt STO$\triangleright$} du bandeau de {\tt HOME} est représenté dans un 
programme par :
$$ {\tt STO\triangleright \mbox{ ou }\triangleright}$$\index{$\triangleright$ {\tt STO}$\triangleright$ }
Dans l'éditeur d'équations la position du curseur est représentée par :
$$\blacktriangleleft$$\index{$\blacktriangleleft$}
\section{L'aide en ligne}\index{HELP}
Cette calculatrice possède une aide en ligne en français, ou en anglais (cf \ref{sec:cfg}), très pratique et performante.\\
On vous propose la liste, par ordre alphabétique, des fonctions de calcul 
formel. Comme dans chaque menu déroulant, vous pouvez, en appuyant sur une 
lettre, accéder aux fonctions commencant par cette lettre, sans avoir besoin 
de taper sur {\tt ALPHA}.\\ 
L'aide consiste en une description succinte de la commande, d'un exemple et 
de sa réponse. Chaque exemple peut \^etre testé
avec {\tt ECHO} du bandeau et \^etre traité tel quel, ou modifié. On peut aussi aller voir l'aide des commandes proches gr\^ace aux  {\tt SEE1 SEE2...} du bandeau.\\
Pour plus de détails se référer à la description des touches {\tt SHIFT 2 (SYNTAX)} sections \ref{sec:syntaxe} et \ref{sec:syntax}.\\

\chapter{Les Aplets}  
\section{La touche {\tt APLET}}
La touche {\tt APLET} donne accès à la liste des {\tt Aplets} utilisables.\\
 Cette  calculatrice permet en effet de travailler avec des {\tt Aplets}.\\
{ Mais qu'est-ce qu'une {\tt Aplet ? }}\\
Une {\tt Aplet} est un logiciel intégré à la machine qui permet facilement 
d'obtenir 3 vues d'un objet mathématique (une vue symbolique, une vue 
numérique et une vue graphique) et tout est déjà préprogrammé!!!\\
Les différentes {\tt Aplets} permettent de travailler avec des objets 
mathématiques tels que : fonctions, suites, séries statistiques etc... \\
Certaines {\tt Aplets} sont des logiciels illustrant des parties de cours. 
\section{Les différentes {\tt Aplets}}
Lorsque vous \^etes dans {\tt HOME}, vous pouvez savoir en regardant la ligne 
d'état, le nom de l'{\tt Aplet} s\'electionnée.\\
Voici quelques choix possibles de la touche {\tt APLET} :
\begin{itemize}
\item {\tt Sequence}\\
Cette {\tt Aplet} permet de définir des suites ayant pour noms :\\
{\tt U1, U2 ..U9, U0}\\
On définit {\tt U1(N)} :\\
- soit en fonction de {\tt N},\\
- soit  en fonction de {\tt U1(N-1)},\\
- soit en fonction de {\tt U1(N-1)} et de {\tt U1(N-2)}.\\
On définit par exemple :\\
{\tt U1(N)=N*N+1} \\
et alors les valeurs de {\tt U1(1)} et de {\tt U1(2)} sont calculées et mises
automatiquement.\\
 En cochant {\tt U1}, puis en appuyant sur {\tt NUM} les valeurs de {\tt U1(N)}
s'affichent.\\
On trouvera d'autres exemples utilisant l'{\tt Aplet Sequence} au paragraphe suivant  comme le calcul  du $PGCD$ de deux nombres (cf \ref{sec:pgcd})
et le calcul des coefficients de l'identité de Bézout (cf \ref{sec:bezout}). 
\item {\tt Function}\\
Cette {\tt Aplet} permet de définir des fonctions ayant pour noms :\\
{\tt F1(X), F2(X) ..F9(X), F0(X)}\\
On définit  {\tt F1(X)} :\\
-  soit par une expression fonction de {\tt X} :\\
Par exemple, la formule :\\
{\tt F1(X)=X*LN(X)}\\
définit la fonction :\\
$f_1(x)=x.ln(x)$\\
-  soit, si la fonction est définie par morceaux en utilisant les booléens :\\ 
{\tt X>0} etc...\\
Par exemple, une formule de la forme :\\
 {\tt F1(X)=X*(X<0)+2*X*(X>0)}\\
définit la fonction :\\
 $ f_1(x)= \  x$ si  $ x<0 $ et\\
 $ f_1(x)=2.x $  si $ x>0$ 
\item {\tt Parametric} pour tracer des courbes en coordonées paramè\-triques.
\item {\tt Polar} pour tracer des courbes en coordonées polaires.
\item {\tt Solve} pour résoudre des équations numériques.
\item {\tt Statistics} pour faire des statistiques.
\item {\tt Inference}  pour faire des statistiques inférentielles.
\end{itemize}
\section{Exemples utilisant l'{\tt Aplet  Sequence}}
\subsubsection{Écriture en base $b$}
Étant donnés $a$ et $b$, on veut obtenir,  la suite $q_n\ ( n \geq 1)$ et\\
 $r_n \ (n \geq 2)$ des quotients et
 des restes de la division  par $b$ des $q_i$ définies par :\\
$q_1=a$\\
$q_1=b.q_2+r_2 \ (0 \leq r_2 < b)$\\
$q_2=b.q_3+r_3 \ (0 \leq r_3 < b)$\\
......\\
$q_{n-1}=b.q_n+r_n \ (0 \leq r_n < b)$\\
On remarquera que si $r_{n+1}=0$, le nombre $r_n r_{n-1}.....r_3r_2$ est l'écriture en base $b$ de $a$, lorsqu'on suppose  $2 \leq b \leq 10$.\\
On met dans {\tt B} la valeur de la base par exemple :\\
 ${\tt 7\ STO\triangleright\ B}$ \\
et dans {\tt A} le nombre à écrire en base {\tt B} (par exemple  ${\tt 1789\ STO\triangleright\ A}$ )\\
On définit ensuite deux suites :\\
{\tt U1(1)=A}\\
{\tt U1(2)=FLOOR(A/B)}\\
{\tt U1(N)=FLOOR(U1(N-1)/B)}\\
puis\\
{\tt U2(1)=0}\\
{\tt U2(2)=A MOD B}\\
{\tt U2(N)=U1(N-1) MOD B }\\
Ainsi $q_n$={\tt U1(N)} et $r_n $={\tt U2(N)}\\
On trouve :\\
 {\tt U2(2)=4 U2(3)=3 U2(4)=1 U2(5)=5 U2(6)=0}
 donc l'écriture en base 7 de 1789 est : 5134.
\subsubsection{Le calcul de $PGCD$} \label{sec:pgcd}
Voici une mise en en \oe uvre de l'algorithme d'Euclide avec la {\tt HP40G}.\\ 
Voici la description de cet algorithme :\\
On effectue des divisions euclidiennes successives :
\begin{eqnarray*}
A = &  B \times Q_1+R_1   &  0 \leq R_1 < B \\
B  = & R_1 \times Q_2+R_2  & 0 \leq R_2 < R_1 \\
R_1  = & R_2 \times Q_3+R_3 & 0 \leq R_3 < R_2 \\
.......
\end{eqnarray*}
Après un nombre fini d'étapes (au plus B), il existe un entier n tel que : 
$R_n = 0.$ \\
on a alors :\\
$PGCD(A,B )= PGCD(B,R_1) =....$\\
$PGCD(R_{n-1},R_n) = PGCD(R_{n-1},0) = R_{n-1}$\\
À l'aide des suites, on écrit la suite des restes.\\
Avec la HP40G, on utilise l'\verb|Aplet|  {\tt Sequence} (touche \verb|APLET| puis on sélectionne {\tt Sequence} puis \verb|START|  du bandeau).\\
Si l'on veut déterminer le PGCD(78,56), on définit la suite :

${\tt U1(1)=78} $ 

${\tt  U1(2)=56} $ 

${\tt  U1(N)=U1(N-2)\  MOD \  U1(N-1)}$

On tape sur \verb|NUM| pour avoir la liste  numérique des {\tt  U1(N)} c'est
 à dire la liste des restes des divisions successives...

Le dernier reste non nul est ${\tt 2}$ donc le PGCD(78,56)=2.\\
{\sc Remarque}\\
On peut utiliser dans  \verb|HOME| les variables {\tt A} et {\tt B} pour stocker les 
deux nombres et mettre alors
{\tt U1(1)=A U1(2)=B}.\\
Il faut aussi remarquer que {\tt A MOD 0 = A}.
\subsubsection{Le calcul des coefficients de l'identité de Bézout}\label{sec:bezout}
L'algorithme d'Euclide permet de trouver un couple $ U, V$ vérifiant :

$ A \times U + B \times V= PGCD(A,B) $\\
 Avec les suites :\\
On va définir ``la suites des restes'' $R_n$ et deux suites $U_n$ et $V_n$, de 
façon qu'à chaque étape on ait :\\
$R_n=U_n \times A+V_n \times B$.

Puisque on a :
$R_n=R_{n-2}-Q_n \times R_{n-1}$ , $U_n$ et $V_n$ vont vérifier la m\^eme relation de recurrence ($Q_n=$quotient entier de $R_{n-2}$ par $R_{n-1}$).

On a au début :

$R_1=A \  R_2=B$

$U_1=1 \ U_2=0$ puisque  $A=1 \times A+0 \times B$

$V_1=0 \ V_2=1$ puisque $B=0 \times A+1 \times B$

 Avec la HP40G, gr\^ace à l'Aplet Sequence,
 on va définir la suite {\tt U1} des restes et les 
suites {\tt U2} et {\tt U3} qui seront telles que pour tout {\tt N} on ait :
 {\tt U1(N)=A*U2(N)+B*U3(N)}.

Pour cela on a besoin de la suite des quotients que l'on mettra en {\tt U4}.

Les suites {\tt U1}, {\tt U2}, {\tt U3} vérifient la m\^eme relation de récurrence :

$U_n=U_{n-2}-Q_n \times U_{n-1} $
avec

$Q_n={\tt U4(N)=FLOOR(U1(N-2)/U1(N-1))}$

On définit donc :

${\tt U1(1)=A} $ 

${\tt U1(2)=B} $ 

${\tt U1(N)=U1(N-2)-U4(N)* U1(N-1)}$

${\tt U2(1)=1} $

${\tt U2(2)=0} $ 

${\tt U2(N)=U2(N-2)-U4(N)* U2(N-1)}$

${\tt U3(1)=0}$

${\tt U3(2)=1 }$

${\tt U3(N)=U3(N-2)-U4(N)* U3(N-1)}$

${\tt U4(1)=0} $

${\tt U4(2)=0} $

${\tt U4(N)=FLOOR(U1(N-2)/U1(N-1))}$

Il faut remarquer que l'on n'utilise ${\tt U4(N)}$ que pour ${\tt N\ >\ 2}$,
 on a donc défini les deux premières valeurs (qui sont inutiles!) par zéro.\\
\verb|NUM| va alors afficher les valeurs de ces différentes suites et sur la
 ligne du dernier reste non nul on pourra lire le pgcd et les coefficients de 
l'identité de Bézout.
\section{Les touches {\tt SYMB NUM PLOT}}
Une {\tt Aplet} est visible en général de trois façons diffèrentes :\\
- une vue symbolique qui correspond à la touche {\tt SYMB}\\
- une vue numérique qui correspond à la touche {\tt NUM}\\
- une vue graphique qui correspond à la touche {\tt PLOT}\\
Quand ces touches sont shiftées ({\tt SETUP}), cela correspond au choix des
différents paramètres utilisés (choix de l'unité d'angle, des paramètres de la 
fen\^etre graphique etc...).\\
\chapter{Le Clavier et le CAS} 
\section{ Qu'est ce que le CAS ?}\label{sec:exarg}
 Le {\tt CAS} permet de faire du calcul formel  ou symbolique :\\ 
{\tt CAS = Computer Algebra System}.\\
Il faut bien voir la différence entre :\\
-  calcul formel ou symbolique, c'est celui que
l'on fait avec les fonctions du {\tt CAS}. On travaille alors en 
{\tt mode exact}, en précision infinie et on a la possibilité de faire 
les calculs en pas à pas,\\
-  calcul numérique, c'est celui que l'on fait avec les fonctions du 
répertoire {\tt MTH} de la touche  {\tt MATH}, dans l'écran {\tt HOME} ou depuis les  {\tt Aplets} ou en programmation.
On travaille alors en 
{\tt mode approximatif}, avec une précision de $10^{-12}$.\\ 
Exemple :\\
Si on est en {\tt Radians} dans {\tt HOME} :\\
{\tt ARG(1+i)} vaut 0.785398163397\\
 alors que dans le {\tt CAS} où on est toujours en {\tt Radians} :\\
{\tt ARG(1+i)} vaut ${\tt \frac{\pi}{4}}$\\
\section{La variable courante}
Lorsqu'on utilise des fonctions de calcul formel, on travaille avec des 
variables symboliques (variables ne contenant aucune valeur).\\ 
 Le nom de la variable symbolique contenu dans {\tt VX} s'appelle la variable 
courante : c'est le plus souvent {\tt X}.\\
 L'action de certaines fonctions dépend de la variable courante, par exemple
 la fonction {\tt DERVX} effectue une dérivation par rapport à la variable 
courante.\\
Ainsi,\\ ${\tt DERVX(2*X+Y)=2}$ si   {\tt VX=X}, et 
${\tt DERVX(2*X+Y)=1}$ si   {\tt VX=Y}.
\section{Comment faire du calcul formel ?}
La {\tt HP40G} a été conçue pour  utiliser les fonctions de calcul formel 
depuis l'éditeur d'équations.\\
 Pour ouvrir l'éditeur d'équations appuyer sur {\tt CAS}
 du bandeau de l'écran {\tt HOME}.\\
 Pour sortir de l'éditeur d'équations  appuyer sur {\tt ON}, on   revient ainsi à l'écran {\tt HOME}.\\
 On peut néammoins faire du calcul formel 
depuis l'écran {\tt HOME} moyennant quelques précautions (cf \ref{sec:cashome}).\\
On se reportera  aux chapitres suivants pour savoir utiliser les fonctions du
 {\tt CAS}.
\section{Le CAS depuis l'{\tt éditeur d'équations}}\label{sec:tool} \label{sec:rep} 
L' éditeur d'équations  va vous permettre d'écrire comme sur le papier les 
expressions que vous voulez simplifier, factoriser, dériver, intégrer etc...\\
C'est un éditeur muni d'un bandeau contenant des répertoires :
\begin{enumerate}
\item Le répertoire {\tt TOOL} contient les commandes :\\
{\tt Cursor mode}\index{Cursor mode}\\
{\tt Edit expr.}\index{Edit expr.}\\
{\tt Change font}\index{Change font}\\
{\tt Cut}\index{Cut}\\
{\tt Copy}\index{Copy}\\
{\tt Paste}\index{Paste}\\
\begin{itemize}
\item {\tt Cursor mode} permet de passer en mode curseur (cf \ref{sec:curseur}).
\item {\tt Edit expr.} permet d'éditer l'expression mise en surbril\-lance, ce qui permet de la modifier.
\item  {\tt Change font} permet de choisir 
d'écrire avec de gros ou de petits caractères (on peut faire ce choix à tous 
 moments).
\item {\tt Cut} recopie la sélection dans le buffer et l'efface. 
\item {\tt Copy} recopie la sélection dans le buffer.
\item {\tt Paste} recopie la sélection  là o\`u se trouve le 
curseur (il faut avoir fait avant, soit {\tt Copy}, soit {\tt Cut}, pour que la
sélection soit dans le buffer).
%\item {\tt View expr.} permet de voir facilement les grandes expressions.\\ 
\end{itemize}
\item Le répertoire {\tt ALGB} contient des fonctions qui permettent de faire 
de l'algèbre : factorisation, développement, simplification, substitution...
\item Le répertoire {\tt DIFF\&INT} contient des fonctions qui permettent de 
faire du calcul différentiel : dérivation, intégration, développement limité...
\item Le répertoire {\tt REWRITE} contient des fonctions qui permettent de 
réécrire une expression sous une autre forme.
\item Le répertoire {\tt TRIG} contient des fonctions qui permettent de
 transformer des expressions triogonomètriques.
\item Le répertoire {\tt SOLVE} contient des fonctions qui permettent de
résoudre des équations, des systèmes linéaires et des équations 
différentielles.
\end{enumerate} 
Vous trouverez dans le  chapitre 3, comment écrire une expression dans 
l'éditeur d'équations, comment sélectionner une sous-expression et comment
 appeler les fonctions du {\tt CAS}.\\
Vous trouverez dans le  chapitre 4, toutes les fonctions de calcul formel
contenues dans ces différents répertoires  avec un exemple d'utilisation.\\
Vous pouvez consulter l'aide en ligne avec {\tt SHIFT 2 (SYNTAX)} (cf \ref{sec:syntaxe}), pour avoir l'aide sur 
les  autres fonctions disponibles, et utiliser {\tt SHIFT MATH (CMDS)} 
(cf \ref{sec:cmds}) pour les taper.
\section{Le clavier depuis l'{\tt éditeur d'équations}}
Les touches, commentées dans ce paragraphe, n'ont  pas la  m\^eme fonction 
selon qu'on les utilise depuis l'{\tt éditeur d'équations} ou depuis l'écran {\tt HOME}.
Pour la fonctionnalité de ces touches, en dehors de l'{\ttéditeur d'équations},
on se reportera à la section \ref{sec:thome} ou (et) on consultera le manuel 
général.
\subsection{La touche {\tt MATH}}\label{sec:tmath}
La touche {\tt MATH}, pressée depuis l'éditeur d'équations, affiche les
 fonctions utiles en calcul formel. 
Ces fonctions sont contenues dans les  répertoires :
\begin{itemize}
\item les cinq  répertoires précédents (cf \ref{sec:rep}) :\\
{\tt ALGEBRA} {\tt DIFF\&INT} {\tt REWRITE} {\tt TRIG} {\tt SOLVE}
\item le répertoire {\tt Complex...} contenant des fonctions qui permettent de
 travailler avec des complexes.
\item le répertoire {\tt Constant... } 
(${\tt e\ i \ \infty \ \ pi}$)
\item le répertoire {\tt Integer...} contenant des fonctions qui permet\-tent de
faire de l'arithmétique entière.
 \item le répertoire {\tt Hyperb....} contenant les fonctions hyperboliques.
\item le répertoire {\tt Modular...} contenant des fonctions qui permet\-tent de
faire des calculs dans $Z/pZ$ ou dans $Z/pZ[X]$, $p$ étant la valeur contenue
dans la variable {\tt MODULO}.
\item le répertoire {\tt Polynom...} contenant des fonctions qui permettent
 de faire des calculs avec des polyn\^omes.
\item le répertoire {\tt Tests... } contenant:\\ 
{\tt ASSUME}\index{ASSUME}
{\tt UNASSUME }\index{UNASSUME} (pour faire des hypothèses sur les
paramètres et modifier ainsi la variable {\tt REALASSUME}\index{REALASSUME}  
cf \ref{sec:realassume})\\
${\tt  > \ \geq \ < \ \leq \  == \  \neq \ AND \ OR \ NOT}$\\
{\tt IFTE}\index{IFTE} (pour écrire une fonction algébrique ayant le m\^eme résultat qu'un IF THEN ELSE) .
\end{itemize}
On se reportera à la section \ref{sec:math}, pour avoir la liste des fonctions
se trouvant dans les différents répertoires.
\subsection{Les touches {\tt SHIFT MATH (CMDS)}}\label{sec:cmds}
La combinaison de ces touches ouvre le catalogue de toutes les fonctions de
 calcul formel utilisables depuis l'éditeur d'équations.\\
 Ainsi les fonctions, qui ne sont pas présentes ailleurs, pourront \^etre
appelées depuis ce menu, ce qui vous évite de les taper en mode {\tt Alpha}.\\
\subsection{La touche {\tt  VARS}}\label{sec:vars}
Cette touche pressée lorsqu'on est dans l'{\tt éditeur d'équations} fait 
appara\^itre les noms des variables définies dans le {\tt CAS}.\\
On remarquera {\tt namVX} qui contient le nom de la variable courante.\\
Pour voir le contenu d'une variable il suffit de mettre son nom en surbrillance
et d'appuyer sur {\tt F2} pour {\tt VIEW} du bandeau.\\
Pour modifier le contenu d'une variable il suffit de mettre son nom en surbrillance
et d'appuyer sur {\tt F3} pour {\tt EDIT} du bandeau.\\
On remarquera aussi dans le bandeau :\\
{\tt PURGE} qui permet de détruire une variable existante.\\
{\tt RENAME} qui permet de changer le nom d'une variable existante.\\ 
{\tt NEW} qui permet de définir une nouvelle variable : il suffit d'entrer le 
contenu ({\tt object}), puis son nom ({\tt name}). \\ 
Pour plus de détails, on se reportera à la section \ref{sec:var}.
\subsection{Les touches {\tt SHIFT 2 (SYNTAX)}}\label{sec:syntaxe}\index{HELP}
Lorsque que l'on est dans l'éditeur d'équations la combinaison des touches : {\tt SHIFT 2 (SYNTAX)} ouvre  le menu {\tt CAS HELP ON}.\\
Pour avoir l'aide en français, choisir {\tt Français} dans le menu  du 
répertoire {\tt CFG} permettant de changer votre configuration (cf \ref{sec:cfg}).\\
Si dans l'éditeur il n'y a pas de fonction du {\tt CAS} séléctionnée, ce menu 
 propose la liste des fonctions utilisables depuis
 l'{\tt éditeur d'équations}. Il suffit alors de mettre en surbrillance une
fonction et de taper {\tt OK} pour avoir de l'aide sur cette fonction.\\
Si dans l'éditeur il y a une fonction du {\tt CAS} séléctionnée, par exemple :\\
 {\tt FACTOR(45)},
le menu {\tt CAS HELP ON} ouvre directement l'aide  à la page de  {\tt FACTOR}.
L'aide consiste en une description succinte de la commande, d'un exemple et 
de sa réponse. Chaque exemple peut \^etre mis dans l'éditeur d'équations
avec {\tt ECHO} du bandeau et \^etre traité tel quel, ou modifié.\\
Il faut noter que dans les exemples de l'aide, on a choisi comme variable 
courante {\tt VX=X}. Si ce n'est pas le cas, l'exemple sera automatiquement
transformé, en tenant compte de votre {\tt VX}, lors du transfert par {\tt ECHO}.\\
Vous avez aussi la possibilité d'aller directement voir l'aide d'une commande signalée dans {\tt See :} avec {\tt SEE1, SEE2...} du bandeau.
\subsection{La touche {\tt HOME}}\label{sec:history}
La touche {\tt HOME} pressée, depuis l'éditeur d'équations, permet un 
accès à l'historique du {\tt CAS}.\\
L'historique des calculs faits dans le  {\tt CAS} et l'historique 
des calculs faits dans {\tt HOME} sont distincts.\\
Comme dans l'historique de l'écran {\tt HOME}, les calculs demandés sont
 inscrits à gauche et les résultats sont inscrits à droite. 
On peut gr\^ace à la flèche vers le haut remonter dans l'historique.\\ 
Vous pouvez gr\^ace à  {\tt ENTER} ou {\tt ECHO} du bandeau, recopier un résultat précédent ou une commande déj\`a effectuée.
\subsection{Les touches {\tt SHIFT SYMB}}\label{sec:config}
Lorsque que l'on est dans l'éditeur d'équations la combinaison des touches :\\
 {\tt SHIFT SYMB (SETUP)} est l'analogue de {\tt CFG} (le premier choix des 
menus {\tt ALGB etc...} du bandeau cf \ref{sec:cfg}).\\
Cela vous permet de préciser :\\
- le nom de la variable contenue dans {\tt VX}, en tapant son nom devant 
{\tt Indep var},\\
- la valeur de {\tt MODULO}, en tapant sa valeur devant {\tt Modulo},\\
- si vous voulez travailler en {\tt mode exact} (ou en {\tt mode approximatif} si vous cochez {\tt Approx} avec {\tt CHK} du bandeau),\\
- si vous voulez travailler en {\tt mode réel} (ou en {\tt mode complexe} 
si vous cochez {\tt Complex} avec {\tt CHK} du bandeau),\\
- si vous voulez travailler en mode {\tt Direct} (ou en mode {\tt Step/Step} 
si vous cochez {\tt Step/Step} avec {\tt CHK} du bandeau),\\
- si vos polyn\^omes sont écrits selon les puissances  décroissantes (ou
croissantes si vous cochez {\tt Incr Pow} avec {\tt CHK} du bandeau),\\
- si vous interdisez des facteurs numériques (ou autorisez des facteurs numériques si vous cochez 
{\tt Num.Factor} avec {\tt CHK} du bandeau).\\
- si vous voulez travailler en {\tt mode non  rigoureux} (ou en 
{\tt mode rigou\-reux} si vous cochez 
{\tt Rigourous} avec {\tt CHK} du bandeau,
pour ne pas négliger les valeurs absolues !),\\
On valide avec {\tt OK} ou {\tt ENTER}.
\subsection{La touche {\tt SHIFT ,}}\label{sec:undo}
Lorsque que l'on est dans l'éditeur d'équations les touches :\\
 {\tt SHIFT , (MEMORY)} jouent le r\^ole de ''undo''.\\
 Cela est très utile quand on s'est trompé, car cela permet d'annuler la 
dernière commande.
\subsection{La touche {\tt PLOT}}
Lorsqu'on appuie sur {\tt PLOT} depuis l'éditeur d'équations, une boite de 
dialogues vous demande si vous voulez tracer une fonction, une courbe en 
paramètrique ou une courbe en polaire.\\ 
Selon ce que vous sélectionnez, l'expression mise en surbrillance sera recopiée
 vers l'{\tt aplet} correspondante, à l'endroit que vous spécifiez comme 
destination.\\
{\sc Attention} : cela suppose que la variable courante est aussi la variable
 de la fonction à représenter, car lors de la recopie, l'expression est évaluée
et la variable courante (celle contenue dans {\tt VX}) est changée en {\tt X T}
 ou ${\tt \theta}$, selon la nature du graphique.\\
{\sc Attention} : si la fonction dépend d'un paramètre, il est préférable de
donner une valeur à ce paramètre avant d'appuyer sur {\tt PLOT}. Si toutefois,
vous voulez que l'expression paramètrée soit recopiée avec son paramètre, le 
nom de ce paramètre doit \^etre composé d'une seule lettre différente de 
{\tt X T} ou ${\tt \theta}$, pour qu'il n'y ait pas de confusion.\\
Si l'expression sélectionnée est à valeurs réelles :\\
l'{\tt Aplet Function} ou
l'{\tt Aplet Polar} peut  \^etre sélectionnée,  le graphe sera alors du type :
{\tt Function} ou {\tt Polar}.\\ 
Si l'expression sélectionnée est à valeurs complexes : \\
l'{\tt Aplet Parametric}
doit \^etre sélectionnée et le graphe sera du type : {\tt Parametric}.\\
 Si vous choisissez :
\begin{itemize}
\item l'{\tt Aplet Function}, 
l'expression mise en surbrillance sera recopiée dans la fonction {\tt Fi} 
choisie, et la variable courante sera transformée en {\tt X} 
lors de la recopie,
\item l'{\tt Aplet Parametric}, la partie réelle et la partie imaginaire  de
l'expression mise en surbrillance seront  recopiées dans les fonctions 
{\tt Xi, Yi } choisies, et la variable courante sera transformée en {\tt T} lors de la recopie,
\item l'{\tt Aplet Polar}, l'expression mise en surbrillance sera recopiée 
dans la fonction {\tt Ri} choisie, et la variable courante sera transformée en 
${\tt \theta}$ lors de la recopie.
\end{itemize}
\subsection{La touche {\tt  NUM}}
Lorsqu'on appuie sur {\tt NUM} depuis l'éditeur d'équations  
l'expression mise en surbrillance est remplacée par une approximation
numérique.\\
{\tt  NUM} fait passer en mode approximatif.\\
{\tt SHIFT NUM} effectue l'opération inverse : on passe en mode exact.
\subsection{La touche {\tt  VIEWS}}
Lorsqu'on appuie sur {\tt VIEWS} depuis l'éditeur d'équations  
l'expression mise en surbrillance peut \^etre vue entièrement en faisant bouger le curseur gr\^ace aux flèches $\rhd$ et $\lhd$.
Appuyer sur {\tt OK} du bandeau pour revenir à l'éditeur d'équations.
\subsection{Les raccourcis avec le clavier} 
Il faut noter que depuis l'éditeur d'équations on a, avec le clavier,
  les raccourcis suivants :\\
{\tt SHIFT 0} pour ${\tt \infty}$\\
{\tt SHIFT 1} pour ${\tt i}$\\
%{\tt SHIFT 2} pour ${\tt HELP}$\\
{\tt SHIFT 3} pour ${\tt \pi}$\\
{\tt SHIFT 5} pour ${\tt <}$\\
{\tt SHIFT 6} pour ${\tt >}$\\
{\tt SHIFT 8} pour ${\tt \leq}$\\
{\tt SHIFT 9} pour ${\tt \geq}$
\section{Le CAS depuis {\tt  HOME}}\label{sec:cashome}
On peut utiliser certaines fonctions de calcul formel directement
depuis l'écran {\tt HOME} moyennant quelques précautions :\\
- utiliser les fonctions de calcul formel que l'on trouve dans {\tt CAS} du bandeau  de la touche  {\tt MATH} 
(pressée depuis l'écran {\tt HOME}), la variable courante est alors 
systématiquement la variable {\tt S1}, par exemple :\\
${\tt DERVX(S1^2-4*S2)=2*S1}$\\
- utiliser les variables {\tt S1,S2,...S5} comme variables symboliques,\\
- si vous voulez travailler avec des matrices symboliques, il faut les stocker dans {\tt L1, L2, ... L9, L0} car ces matrices seront interprétées  
en tant que listes de listes (alors que les matrices numériques sont stockées dans {\tt M1, M2, ... M9, M0}). On écrira par exemple : ${\tt [S1+1,XQ(\sqrt2)]\ STO\triangleright\ L1}$\\ 
{\sc Attention}, certains calculs seront effectués en mode approximatif
en raison de l'ambiguité entre réels et entiers dans {\tt HOME}.
L'utilisation de la commande {\tt XQ} permet de convertir un argument
approximatif en argument exact, dans l'exemple précédent vu au paragraphe  \ref{sec:exarg}, on a depuis l'écran {\tt HOME} (voir aussi \ref{sec:tmathh} et \ref{sec:syntax}) :
$${\tt  ARG(XQ(1+i))= \frac{\pi}{4}}$$
Vous pouvez aussi, gr\^ace aux commandes {\tt PUSH} et {\tt POP}, transférer
des expressions de l'historique de  l'écran {\tt HOME} dans l'historique
 du {\tt CAS}.
\subsection{\tt PUSH}\index{PUSH}
Vous pouvez envoyer, depuis l'écran {\tt HOME}, des expressions dans 
l'historique du {\tt CAS} gr\^ace à la commande {\tt PUSH}.\\
On tape depuis l'écran {\tt HOME}:\\
 {\tt PUSH(S1+1)}\\
et {\tt S1+1} s'inscrit dans l'historique du {\tt CAS}.
\subsection{\tt POP}\index{POP}
Vous pouvez récupérer, depuis l'écran {\tt HOME}, la dernière expression 
écrite dans l'historique du {\tt CAS} gr\^ace à la commande {\tt POP}.\\
On tape depuis l'écran {\tt HOME}:\\
{\tt POP}\\
et par exemple {\tt S1+1} s'inscrit dans l'historique de l'écran {\tt HOME}.
\section{Le clavier depuis {\tt HOME}} \label{sec:thome}
\subsection{La touche {\tt MATH}}\label{sec:tmathh}
Cela ouvre le menu des fonctions mathématiques.\\
Cette touche pressée depuis l'écran {\tt HOME} ouvre une fen\^etre contenant 
des fonctions mathématiques (numériques) classées par thèmes, car l'option 
{\tt MTH} du bandeau (touche {\tt F1}) est cochée par défaut.\\ 
Si on coche {\tt CAS} du bandeau  de cette fen\^etre (touche {\tt F3}), on 
trouve les m\^emes répertoires que lorsqu'on appuie sur la touche {\tt MATH} 
depuis l'éditeur d'équations : on a ainsi accés aux fonctions de calcul formel 
 classées par thèmes et utilisables à partir de l'écran {\tt HOME} (ne pas oublier que, depuis l'écran {\tt HOME}, les seules variables symboliques sont {\tt S1,S2...S5}).\\
\subsection{La touche {\tt SHIFT F6}}
La combinaison des touches  {\tt SHIFT F6 (SHIFT CAS du bandeau)} ouvre l'écran
de configuration du {\tt CAS} ce qui permet de
changer la configuration du {\tt CAS} depuis l'écran {\tt HOME} 
(cf \ref{sec:config}).
\subsection{La touche {\tt SHIFT 2 (SYNTAX)}}\label{sec:syntax}\index{HELP}
La combinaison des touches  {\tt SHIFT 2 (SYNTAX)} place {\tt HELPWITH}  dans la ligne de commande.
Il suffit de compléter cette ligne par le nom de la commade ou par le nom de 
la fonction du {\tt CAS} pour laquelle vous voulez de l'aide. On peut rentrer 
le nom d'une fonction du {\tt CAS} avec {\tt MATH CAS}, mais il faut prendre garde à enlever la parenthèse. \\
Par exemple : {\tt HELPWITH DERVX} vous ouvre l'aide du {\tt CAS} à la page 
 {\tt DERVX}.\\
Si on veut avoir l'aide générale du {\tt CAS} depuis l'écran {\tt HOME} il faut taper {\tt HELP}, puis {\tt ENTER} : on a ainsi l'aide sur les fonctions du 
{\tt CAS} utilisables depuis l'écran {\tt HOME}.\\
Pour avoir l'aide en français, choisir {\tt Français} dans le menu  du 
répertoire {\tt CFG} permettant de changer votre configuration (on est obligé 
de le faire depuis l'éditeur d'équations cf \ref{sec:cfg}).\\
Chaque exemple peut \^etre mis dans l'historique de l'écran {\tt HOME} 
avec {\tt ECHO} du bandeau et donc \^etre traité tel quel, ou modifié 
(bien s\^ur la variable {\tt X} sera remplacée par {\tt S1}).\\ 
De plus, on sera aussi quelquefois obligé de 
changer dans {\tt HOME} les réels en entiers gr\^ace à la fonction {\tt XQ}.\\
Par exemple  :\\
$${\tt PROPFRAC(\frac{43}{12})=3.5833..}$$ 
alors que 
 $${\tt PROPFRAC(XQ(\frac{43}{12}))=3+\frac{7}{12}}$$
\subsection{La touche {\tt SHIFT 1 (PROGRAM)}}
La combinaison de ces touches pressée lorsqu'on est dans {\tt HOME}  ouvre l'écran \\
{\tt PROGRAM CATALOG}.\\
 On voit appara\^itre :\\
- la liste des progammes que vous avez écrits,\\
- un bandeau contenant les commandes :\\
{\tt EDIT} {\tt NEW} {\tt RUN} {\tt SEND} {\tt RECV}.\\
{\tt EDIT} permet d'éditer  le programme mis en surbrillance,\\
{\tt NEW}  permet de créer un nouveau programme,\\
{\tt RUN}  permet d'exécuter le programme mis en surbrillance (cf \ref{sec:programme}).\\
{\tt SEND} et {\tt RECV} sont les fonctions qui permettent de faire dialoguer 
votre calculatrice avec votre ordinateur ou une autre calculatrice.\\
Par exemple :\\
Si on tape sur {\tt SEND} du bandeau on vous demande :\\
{\tt HP40G} ou {\tt Disk drive} \\
vous mettez en surbrillance {\tt HP40G} pour envoyer un programme vers une 
autre  {\tt HP40G} ou vous mettez en surbrillance {\tt Disk drive} pour envoyer
 un programme vers un ordinateur.\\ 
Puis {\tt OK} du bandeau.\\ 
Pour les utilisateurs de Windows, le logiciel de connexion se trouve  à l'URL
 {\tt www.hp.com/calculators/france}.\\
 Pour les utilisateurs de Linux on utilisera 
le programme C-Kermit version 7
(que l'on trouve à l'URL www.columbia.edu/kermit ou que l'on peut télécharger par ftp anonyme sur le site kermit.columbia.edu) :\\
-On branche la calculatrice au cordon de transfert.\\
-Sur l'ordinateur on tape :\\
{\tt kermit}\\
{\tt set line /dev/ttyS0} (ou {\tt S1} ...selon votre numéro de port 
série, attention {\tt S0} correspond à {\tt COM1} sous MS-DOS)
\\
Il se peut que cette commande provoque l'erreur ``access to device denied''.
Dans ce cas, vous devrez exécuter en tant que {\tt root} la commande
suivante:
\\ {\tt chmod 666 /dev/ttyS0} (ou {\tt/dev/ttyS1} ... selon votre numéro
de port série)\\
Il se peut aussi que cette commande provoque l'erreur ``write 
access to UUCP lockfile directory denied'', 
dans ce cas vous devrez exécuter en tant que {\tt root} la commande
suivante :
\\ {\tt chmod 1777 /var/lock}\\
Puis tapez les commandes suivantes~:
\\ {\tt set speed 9600} 
\\ {\tt set carrier-watch off} \\{\tt serv}\\
-Sur la {\tt HP40G} :\\
on met en surbrillance le programme de nom {\tt NOM} puis on appuie sur
 {\tt SEND} du bandeau et on met en surbrillance {\tt Disk drive}.
Puis {\tt OK} du bandeau, pour que le programme de nom {\tt NOM} qui se 
trouve dans votre {\tt HP40G} soit recopié sur votre ordinateur.\\
-Ou\\
Sur la {\tt HP40G} :\\
on appuie sur {\tt RECV} du bandeau et on met en surbrillance {\tt Disk drive}.\\
Puis {\tt OK} du bandeau : la calculatrice affiche alors la liste des
 programmes qui sont sur votre ordinateur (bien s\^ur il faut avoir créer un 
répertoire sur votre ordinateur o\`u des programmes de {\tt HP40G} sont stockés).\\
 On met alors en surbrillance {\tt PGCD} pour que le  programme de nom 
{\tt PGCD} qui se trouve sur votre  ordinateur soit recopié sur votre 
{\tt HP40G}. \\
Notez qu'on peut automatiser l'exécution des commandes de {\tt kermit} en les
plaçant dans le fichier {\tt .kermrc} du répertoire racine {\tt ~}
de l'utilisateur, par exemple créez le fichier suivant~:
\begin{verbatim}
set line /dev/ttyS0
set speed 9600
set carrier-watch off
set file names literal
\end{verbatim}
et sauvegardez-le sous le nom {\tt \tild /.kermrc}\\
Pour en savoir plus sur l'utilisation de Kermit avec les calculatrices
HP, vous pouvez consulter l'URL :\\
{\tt http://www.columbia.edu/kermit/hp48.html}\\

\chapter{Écriture des expressions dans l'\'editeur d'\'equations}
%\chapter{Saisie}
\section{L'\'editeur d'\'equations}\label{sec:eqw}
\subsection{Acc\`es \`a  l'\'editeur d'\'equations}
La touche {\tt CAS} du bandeau vous permet d'entrer dans l'\'editeur 
d'\'equations et la touche {\tt ON (CANCEL)} vous permet d'en sortir.\\ 
C'est un \'editeur tr\`es performant pour \'ecrire, 
simplifier et transformer des expressions math\'ematiques. 

Lorsque l'on est dans l'\'editeur d'\'equations on peut \'ecrire des 
expressions en sachant que l'opérateur que l'on est en train de taper porte 
toujours sur l'expression adjacente  ou sur l'expression s\'electionn\'ee.\\
On ne se pr\'eoccupe pas de mettre des parenth\`eses, on s\'electionne!!! \\
Il faut voir les expressions math\'ematiques comme un arbre, pas forc\'ement 
binaire, et comprendre que les quatre fl\`eches permettent de parcourir
 l'arbre de fa\c{c}on naturelle :\\
- les fl\`eches droite et gauche permettent d'aller d'un sous-arbre \`a 
l'autre,\\
- les fl\`eches  haut et bas de monter ou de descendre dans l'arbre,\\
- les fl\`eches droite et gauche ``shift\'ees'' 
permettent diverses  s\'elections (cf page \pageref{sec:exemple3} l'exemple 3).
\subsection{Comment s\'electionner?}
On peut entrer dans le mode s\'election de deux fa\c{c}ons
\begin{itemize}
\item
 La fl\`eche $\triangle$ vous fait entrer dans le mode s\'election et 
s\'electionne l'\'elément adjacent au curseur.\\
Exemple :\\
$$1+2+3+4 \ \triangle$$
s\'electionne $4$, puis $\triangle$ s\'electionne l'arbre tout entier $1+2+3+4$.
\item
 La fl\`eche $\rhd$ vous fait entrer dans le mode s\'election et 
s\'electionne le sous-arbre adjacent au curseur.\\
Si vous appuyez à nouveau sur  $\rhd$ vous augmentez votre s\'election  du
 sous-arbre contigu, à gauche de votre sélection.\\
Exemple :\\
$$1+2+3+4 \ \rhd$$
s\'electionne $3+4$, puis $\rhd$ s\'electionne $2+3+4$, puis $\rhd$ s\'electionne $1+2+3+4$
\item {\sc Attention} : si on est en train de taper une fonction ayant plusieurs
arguments (comme par exemple une $\sum$ ou une $\int$  ou {\tt SUBST} etc...), 
la fl\`eche $\rhd$ permet de progresser dans l'écriture, en changeant le
 curseur d'emplacement. En effet ce sont les fl\`eches $\rhd$ et $\lhd$ qui 
permettent le passage d'un argument à l'autre.
Il faut donc toujours dans ce cas sélectionner avec  la
 fl\`eche $\triangle$ (cf \ref{sec:sum}). 
 \end{itemize}
Exemples  de fonctionnement de cet \'editeur :\\
On tape sur {\tt CAS} du bandeau pour ouvrir l'\'editeur d'\'equations, puis 
on entre les expressions des exemples.
\begin{itemize}
\item Exemple 1\\
On tape :
 $${\tt 2\ +\ X\  \times \ 3 \ -\ X }$$
et on obtient :
$${\tt 2+X \cdot 3-X}$$ 
$\rhd$ $\rhd$ $\rhd$ pour sélectionner l'expression,\\
puis {\tt ENTER}  donne le r\'esultat :
$${\tt 2+2 \cdot X}$$
On tape :
$${\tt 2\ +\ X \ \rhd\  \times  \ 3 \ -\ X}$$
 et on obtient :
$${\tt (2+X) \cdot 3-X}$$  
$\rhd$ $\rhd$ pour sélectionner l'expression,\\
puis {\tt ENTER} donne le r\'esultat :
$${\tt 6+2 \cdot X}$$
On tape : 
$${\tt 2\ +\ X\  \rhd\  \times \ 3\  \triangle\  -\ X }$$
et on obtient :
$${\tt (2+X) \cdot (3-X)}$$ 
$\rhd$ $\rhd$ $\rhd$ pour sélectionner l'expression\\
puis {\tt ENTER}  donne le r\'esultat :
$${\tt-(X^2-X-6)}$$
\item Exemple 2 \label{sec:exemple2}\\
Si on veut taper :
$${\tt X^2-3 \cdot X+1}$$
On tape :
$${\tt X \ x^y \ 2 \ \rhd \ - \ 3 \ X \  + \ 1 }$$
Si on veut taper :
$${\tt -X^2-3 \cdot X+1}$$
On tape :
$${\tt (-)\ X \ x^y \ 2 \ \rhd \rhd\ - \ 3 \ X \ + \ 1 }$$
En effet, il faut sélectionner ${\tt -X^2}$ avant de taper la suite.
\item Exemple 3\label{sec:exemple3}\\
Si on veut taper :
$$\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+\frac{1}{5}$$
Ici, le sommet de l'arbre est un $+$ et il y a 4 sous arbres ; chacun de ces 
sous-arbres a comme sommet un $\div$ et poss\`ede  deux feuilles.

On tape sur {\tt CAS} du bandeau pour ouvrir l'\'editeur d'\'equations, puis 
on écrit le premier sous -arbre :
$${\tt1 \div 2} $$
puis on s\'electionne cet arbre avec $$ \rhd$$
puis on tape $$+$$ et le second sous-arbre :
$${\tt 1 \div 3}$$ 
puis on s\'electionne cet arbre avec $$ \rhd$$
puis on tape $$+$$ et le troisi\`eme sous-arbre :
$${\tt 1 \div 4}$$ 
puis on s\'electionne cet arbre avec $$ \rhd$$
puis on tape $$+$$ et le quatri\`eme sous-arbre :
$${\tt 1 \div 5}$$ 
puis on s\'electionne cet arbre avec $$ \rhd$$
Maintenant,  l'expression voulue
 $${\tt \frac{1}{2}+\frac{1}{3}+\frac{1}{4}+\frac{1}{5}}$$
se trouve écrite dans l'\'editeur d'\'equations et ${\tt \frac{1}{5}}$ est s\'electionn\'ee.
 
    Parcourez l'arbre pour s\'electionner 
$${\tt\frac{1}{3}+\frac{1}{4}}$$

Il faut taper  $$ \lhd \ \lhd$$
pour s\'electionner ${\tt \frac{1}{3}}$
puis
$${\tt SHIFT  \rhd}$$  permet de s\'electionner deux sous-arbres
 contigus, le sélectionné et son voisin de droite, ici :
$${\tt \frac{1}{3}+\frac{1}{4}}$$
Int\'er\^et :
On peut demander d'effectuer le calcul de la partie s\'electionn\'ee en tapant
{\tt ENTER}.\\
On obtient : $${\tt \frac{1}{2}+\frac{7}{12}+\frac{1}{5}}$$
o\`u la fraction $\frac{7}{12}$ est s\'electionn\'ee.\\
Si on veut effectuer maintenant le calcul partiel $$\frac{1}{2}+\frac{1}{5}$$
il faut tout d'abord faire une permutation pour que ${\tt \frac{1}{2}}$ et 
${\tt \frac{1}{5}}$ soient c\^ote \`a c\^ote en tapant
$${\tt SHIFT \lhd} $$
qui \'echange l'élément s\'electionn\'e avec son voisin de gauche.\\
On obtient :
$$ {\tt \frac{7}{12}+\frac{1}{2}+\frac{1}{5}}$$
et ${\tt \frac{7}{12}}$ est s\'electionné, puis
$${\tt \rhd SHIFT  \rhd}$$
 s\'electionne $${\tt \frac{1}{2}+\frac{1}{5}}$$
On peut alors faire \`a nouveau {\tt ENTER}.
\item En résumé :
${\tt SHIFT \rhd}$ permet de sélectionner l'élément s\'electionn\'e et son voisin de droite.\\
${\tt SHIFT \lhd}$ permet d'\'echanger l'élément s\'electionn\'e avec son voisin de gauche.\\
L'élément s\'electionn\'e a changé de place, mais il reste s\'electionn\'e.  
\end{itemize}
\subsection{Comment modifier une expression}
Si vous \^etes en train de taper votre expression, la touche {\tt DEL} vous 
permet d'effacer ce qui vient d'\^etre tapé.

Si vous \^etes en train d'effectuer des sélections vous pouvez :\\ 
- soit supprimer la sélection,  sans supprimer l'expression, en tapant :
$${\tt DEL}$$ 
Le curseur se trouve alors à la fin de l'expression que l'on vient de 
désélectionner.\\
- soit remplacer la sélection par  une expression, il suffit de taper
l'expression voulue, \\
- soit transformer l'expression sélectionnée en lui appliquant une fonction du {\tt CAS} : on appelle alors la fonction depuis le menu d'un des 
répertoires du {\tt CAS},\\
- soit supprimer  l'expression s\'electionnée en tapant :
$${\tt ALPHA\ SHIFT\ DEL \ \ (ALPHA\ CLEAR)}$$ 
- soit supprimer un opérateur unaire, sommet de l'arbre sélectionné, en 
tapant :
$${\tt  SHIFT\ DEL \ \ (CLEAR)} $$  
Par exemple pour remplacer ${\tt SIN(expr)}$ par ${\tt COS(expr)}$, on efface 
${\tt SIN}$ en 
sélectionnant ${\tt SIN(expr)}$, puis {\tt  SHIFT\ DEL}, puis on tape
 ${\tt COS}$. \\
- soit supprimer l'argument d'un op\'erateur binaire infix\'e et cet op\'erateur, en mettant en surbrillance l'argument \`a supprimer et en tapant :
$${\tt  SHIFT\ DEL \ \ (CLEAR)} $$  
Par exemple pour enlever ${\tt F(X)=}$ de  ${\tt \ F(X)=X^2-X+1}$ on
sélectionne  ${\tt F(X)}$, puis {\tt  SHIFT\ DEL}, et on obtient 
${\tt X=X^2-X+1}$ (on a supprimer l'op\'erateur unaire ${\tt F}$), puis {\tt  SHIFT\ DEL}, et on obtient ${\tt X^2-X+1}$ (on a supprimer ${\tt X}$  et 
l'op\'erateur ${\tt =}$).\\
- soit supprimer un opérateur binaire en éditant l'expression :
on sélectionne  
$${\tt Edit\ expr.} $$  du menu  {\tt TOOL} du bandeau et on fait la correction.\\
- soit recopier  un élément de l'historique en tapant {\tt HOME}.
 La recopie se fait à la place du curseur, ou à la place de la sélection, 
lorsqu'on appuie depuis  l'historique sur {\tt ENTER}, ou sur {\tt ECHO} du 
bandeau.\\
Vous pouvez aussi utiliser les commandes {\tt Cut, Copy, Paste} du  menu  
{\tt TOOL} du bandeau, pour supprimer, recopier, dupliquer des expressions 
comme dans un traitement de texte (cf \ref{sec:tool}). 
\subsection{Le mode curseur}\label{sec:curseur}
Le mode curseur permet de sélectionner une grande expression rapidement.
Pour passer en mode curseur,  sélectionner :\\
 {\tt Cursor mode} du menu {\tt TOOL},\\
 puis utiliser les flèches pour inclure votre sélection dans une boite (quand 
vous relachez la touche flèche, l'expression pointée par le curseur est 
encadrée),\\
 puis {\tt ENTER} pour sélectionner le contenu de la boite.
\subsection{Pour tout voir}
En  sélectionnant {\tt Change font} du menu 
{\tt TOOL} du bandeau, on grossit, ou on diminue la taille de 
l'écriture : 
cela permet dans certains cas, de voir en entier une grande 
expression.\\
Si cela est insuffisant, il faut passer en mode curseur :\\
 {\tt Cursor mode} du menu {\tt TOOL}, puis utiliser la flèche $\rhd$ \\
ou encore utiliser :\\
%{\tt View expr.} du menu {\tt TOOL}, puis utiliser la flèche $\rhd$.
la touche {\tt VIEWS}, puis utiliser la flèche $\rhd$.
\section{La saisie des fonctions du {\tt CAS}}
Lorsque vous \^etes dans l'éditeur d'équations, vous pouvez utiliser toutes les
 fonctions du {\tt CAS} et vous pouvez faire la  saisie de différentes façons.\\
Principe général :\\
Quand vous avez écrit une expression dans l'éditeur d'équations, il suffit 
d'appuyer sur {\tt ENTER}  pour évaluer ce qui a été sélectionné, ou  pour 
évaluer toute l'expression si rien n'a été sélectionné. 
\subsection{Comment \'ecrire  $\int$ et $\sum$} \label{sec:sum}
 $\sum$ se trouvent sur le clavier, il suffit de taper :
$${\tt SHIFT +\ (\sum)}$$.
Le signe $\int$ se trouve aussi sur le clavier, il suffit de taper :
$${\tt SHIFT \ d/dX \ (\int) }$$
Les symboles  ${\tt \int}$ et ${\tt \sum}$ sont considérés comme des fonctions 
préfixées ayant plusieurs arguments.\\
 ${\tt \int}$ et ${\tt \sum}$ se placent automatiquement devant
 (fonctions préfixées) l'élément sélectionné, si il y en a un.\\ 
Le curseur se place aux endroits voulus et se d\'eplace \`a l'aide de
$${\tt \rhd \ \lhd} $$
Les expressions que l'on rentre suivent la loi de la  s\'election expliqu\'ee
pr\'ec\'edemment, mais il faut entrer dans le mode s\'election avec $\triangle$.\\
{\sc Attention}, ne pas utiliser l'indice $i$ pour d\'efinir la somme car $i$
d\'esigne le nombre complexe solution de $x^2+1=0$.\\
En mode numérique  $\sum $ effectue  des calculs approch\'es. \\
Par exemple :
$$\sum_{k=0}^4 \frac{1}{k!}=2.70833333334$$ 
alors que
 $$1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}=\frac{65}{24}$$
Le symbole \ $!$ \  s'obtient en tapant ${\tt SHIFT\ \times}$.\\
Il faut savoir que $\sum $ sait calculer symboliquement les sommes de 
fractions rationnelles et les series hypergéométriques qui admettent une 
primitive discrète.\\
Exemple :\\
On tape :\\
$${\tt \sum_{K=1}^\infty \frac{1}{K.(K+1)}}$$
On sélectionne le tout, {\tt ENTER} et on obtient :\\
$${\tt 1}$$
\subsection{Comment \'ecrire  les fonctions infixées} \label{sec:and}
Ces fonctions s'écrivent entre leurs arguments,  par exemple :\\
{\tt AND | MOD ,}\\
On peut :\\
- soit les écrire en mode {\tt Alpha} (pour {\tt AND  MOD}), puis taper les arguments,\\
- soit les appeler depuis le menu d'un répertoire du {\tt CAS} ou à l'aide 
d'une touche du clavier, à condition d'avoir écrit et sélectionné le premier 
argument.\\    
On passe d'un argument à l'autre à l'aide des flèches : $\rhd\ \lhd$\\
La virgule {\tt ,} permet d'écrire un nombre complexe.\\
On écrit {\tt 1+2.i} ou {\tt (1,2)} et les parenthèses se mettent 
automatiquement quand on tape la virgule.\\
 Si vous voulez taper {\tt (-1,2)} 
il faut bien s\^ur sélectionner  {\tt -1} avant de taper la virgule.   
\subsection{Comment \'ecrire  les fonctions préfixées} \label{sec:prefixe}
Ces fonctions s'écrivent avant leurs arguments, c'est le cas général.\\
Dans ce cas tout est possible!!!\\
On peut taper le premier argument, le sélectionner  puis appeler la fonction à l'aide d'un menu.\\
ou bien, on peut appeler la fonction depuis un menu ou la taper en mode 
{\tt Alpha}, puis taper son ou ses arguments.\\
 On va détailler sur l'exemple suivant les différentes saisies possibles.\\
Exemple :\\
Vous voulez factoriser l'expression $x^2-4$ puis, avoir sa valeur pour $x=4$.
Vous savez que {\tt FACTOR} sert à factoriser et que cette fonction se trouve
 dans le menu {\tt ALGB}.\\ 
Vous savez que {\tt SUBST} sert à substituer dans une expression une variable 
par une valeur et que cette fonction se trouve
 dans le menu {\tt ALGB}. 
\subsubsection{Première possibilité : saisie avant les arguments}
Vous appuyez sur la touche {\tt F2} qui active {\tt ALGB} du bandeau, et vous mettez
 en surbrillance {\tt FACTOR} puis {\tt ENTER}.\\
${\tt FACTOR(\ \blacktriangleleft )}$ s'inscrit dans l'éditeur avec le curseur entre les parenthèses.\\
Vous entrez votre expression avec les règles de sélection vues précèdemment :
$${\tt X \  x^y\  2\ \rhd - \ 4 \rhd \ \rhd } $$
ce qui sélectionne :
$${\tt FACTOR (X^2-4 )}$$
puis {\tt ENTER} donne le résultat :
$${\tt (X+2).(X-2)}$$
Le résultat est sélectionné et remplace la commande.\\
On ne le voit pas, mais aprés chaque {\tt ENTER}, il y a sauvegarde dans 
l'historique, ainsi ${\tt \ FACTOR (X^2-4) \ }$  et ${\tt \ (X+2).(X-2) \ }$ 
se sont inscrits dans l'historique.\\
Maintenant vous effacez le résultat précédent avec {\tt ALPHA SHIFT DEL (CLEAR)} car 
ce résultat est sélectionné.\\
Vous appuyez sur la touche qui active {\tt ALGB} du bandeau, et vous mettez
 en surbrillance {\tt SUBST} puis {\tt ENTER}.
$${\tt SUBST (\blacktriangleleft  ,\bullet)}$$
 s'inscrit dans l'éditeur avec le curseur entre les parenthèses à la place du premier argument.\\
Vous entrez votre expression avec les règles de sélection vues précèdemment.\\
{\sc Attention} ! ici {\tt SUBST} a deux arguments il faut donc entrer dans le mode sélection avec $\triangle$ :
$${\tt X \  x^y\  2\ \triangle \ \triangle\ - \ 4 \rhd X=4\ \rhd \ \rhd} $$
ce qui sélectionne :\\
$${\tt SUBST (X^2-4,X=4 )}$$
puis {\tt ENTER} donne le résultat :
 
$${\tt 4^2-4}$$
Ce résultat remplace la commande,  il est sélectionné,
 enfin {\tt ENTER} donne le résultat simplifié :
$${\tt 12}$$
Bien s\^ur ${\tt \  SUBST (X^2-4,X=4)\ }$, ${\tt \  4^2-4 \ }$ et ${\tt \ 12}$ se sont inscrits dans l'historique.\\
{\sc Remarque} :\\
Quand on saisit une fonction du {\tt CAS} avant ses arguments, on peut la 
taper en mode {\tt Alpha} avec ses parenthèses. 
\subsubsection{Deuxième possibilité : saisie après les arguments}
On tape d'abord l'expression que l'on sélectionne avec les règles de sélection 
vues précèdemment.\\
Ici on tape :\\
$${\tt X \  x^y\  2\ \rhd - \ 4 \rhd \  \rhd } $$
puis on appelle {\tt FACTOR} :\\
 vous appuyez sur la touche qui active 
{\tt ALGB} du bandeau, et vous mettez en surbrillance {\tt FACTOR}, puis 
{\tt ENTER}.\\
On obtient :\\
$${\tt FACTOR (X^2-4 )}$$
puis {\tt ENTER} donne le résultat:
$${\tt (X+2).(X-2)}$$ 
Ce résultat remplace la commande et est sélectionné.\\ 
Bien s\^ur ${\tt\  FACTOR (X^2-4)\ }$  et ${\tt \ (X+2).(X-2)\ }$ se sont inscrits dans l'historique.\\
Vous remarquez que le résultat est sélectionné, vous \^etes donc pr\^et à 
appliquer une autre commande à votre résultat.\\
Vous pouvez donc  appeller {\tt SUBST} : vous appuyez sur la touche qui active 
{\tt ALGB} du bandeau, et vous mettez en surbrillance {\tt SUBST} puis 
{\tt ENTER}.\\
$${\tt SUBST ((X+2).(X-2) , \blacktriangleleft )}$$
 s'inscrit dans l'éditeur avec 
ses parenthèses, avec votre expression comme premier argument et avec 
le curseur à la place du deuxième  argument.\\
Il ne vous reste plus qu'à taper :\\
${\tt X=4}$ puis $\rhd \ \rhd$ et {\tt ENTER}.\\
On obtient :
$${\tt (4+2).(4-2)}$$
 puis 
{\tt ENTER} pour obtenir :\\
$${\tt 12}$$
Bien s\^ur ${\tt SUBST (X^2-4,X=4 )}$, ${\tt \  (4+2).(4-2) \ }$ et ${\tt \ 12}$ se sont inscrits dans l'historique.\\
{\sc Remarque} :\\
Au cours de l'écriture d'une expression, vous pouvez appeler une fonction du
{\tt CAS}, cette fonction aura comme premier argument ce qui est sélectionné ou
rien, si rien n'a été sélectionné, le curseur se trouve au bon endroit pour 
compléter  les arguments.
\section{Les variables}\label{sec:var}
Vous pouvez stocker des objets dans des variables, et les réutiliser en 
utilisant le nom de la variable.\\
{\sc Attention!!!}\\
1- Les variables utilisées dans le {\tt CAS} ne sont pas utilisables dans {\tt HOME}
et réciproquement.\\
2- On  utilise  ${\tt STO\triangleright}$ pour stocker un objet dans une variable de {\tt HOME} ou de l'éditeur de programme et on le note dans la suite ${\tt STO\triangleright}$ ou ${\tt \triangleright}$.\\
3- Dans le {\tt CAS} il faut utiliser la commande {\tt STORE}\ (cf \ref{sec:store}) pour stocker des valeurs dans des variables.\\
4- La touche {\tt VARS} affiche un menu qui contient toutes les variables qui sont
à votre disposition.\\
Cette touche pressée lorsque l'on est dans  {\tt HOME} fait appara\^itre les noms 
des variables autorisées dans {\tt HOME} et dans les {\tt Aplets}.\\
Cette touche pressée  lorsque
 l'on est 
dans l'éditeur d'équations  fait appara\^itre
les noms des variables définies dans le {\tt CAS}.
\subsection{${\tt STO\triangleright}$}\index{STO}
${\tt STO\triangleright}$ permet de stocker un objet dans une variable de {\tt HOME}.\\
Les noms des variables numériques de {\tt HOME} sont les 26 lettres de 
l'alphabet et les noms des variables symboliques de {\tt HOME} sont 
{\tt S1..S5}\\
{\sc Attention}
Les variables {\tt A..Z} sont toujours à votre disposition et contiennent 
toujours une valeur réelle.\\
Par exemple  en utilisant  le ${\tt STO\triangleright}$ du bandeau  de {\tt HOME} ou de l'éditeur de programme, on tape : \\
${\tt 1\ STO\triangleright\ A}$\\ 
cela se traduit à l'écran par : \\
${\tt 1\triangleright A}$ et a pour effet d'écraser la valeur précédente de 
{\tt A} et de la remplacer par 1.\\
{\tt A} est évalué et désigne le contenu de {\tt A}.

{\sc Remarque} :\\
La variable symbolique {\tt S1} de {\tt HOME} sert de variable courante
lorsqu'on veut utiliser certaines fonctions du {\tt CAS} depuis {\tt HOME}.\\
Exemple: m\^eme si il y a {\tt X} dans {\tt VX}, on écrit dans {\tt HOME}~:\\
${\tt DERVX(S1^2+2 \times S1)}$\\
pour obtenir ${\tt 2 \times S1+2}$.

\subsection{\tt STORE}\index{STORE}\label{sec:store}
Dans le {\tt CAS}, il faut utiliser la commande {\tt STORE} pour stocker 
un objet dans une variable, ou utiliser la touche {\tt VARS}  depuis l'éditeur 
d'équations (puis {\tt NEW} ou {\tt EDIT} du bandeau cf \ref{sec:vars}).\\
On a droit à n'importe quel nom de variable.\\
% mais dans {\tt STORE} ce nom doit \^etre précédé de la fonction {\tt QUOTE} qui permet de distinguer le nom de la variable {\tt QUOTE(ABC)} de son contenu {\tt ABC}.\\
{\tt STORE}\index{STORE}  se trouve dans le menu
 {\tt ALGB} du bandeau  de l'éditeur d'équations. \\
Exemple :\\
On tape :
$${\tt STORE (X^2-4,ABC)}$$
ou on tape :
$${\tt X^2-4}$$
que l'on sélectionne, puis on appelle {\tt STORE},\\
 puis on tape {\tt ABC}\\
{\tt ENTER} valide la définition de la variable {\tt ABC}.\\
Pour détruire la variable, il faut utiliser la touche {\tt VARS} depuis l'éditeur d'équations (puis {\tt PURGE} du bandeau cf \ref{sec:vars}), ou utiliser la commande  
{\tt UNASSIGN}\index{UNASSIGN} du menu
{\tt ALGB}, on tape par exemple :
$${\tt UNASSIGN(ABC)}$$
\subsection{Les variables prédéfinies du CAS}\label{sec:realassume}
{\tt VX} contient le nom de la variable symbolique courante.\\
C'est en général {\tt X}, il ne faut donc pas utiliser {\tt X} comme nom de
 variable numérique, ou effacer le contenu de {\tt X} à l'aide de la commande 
{\tt UNASSIGN}\index{UNASSIGN} du menu {\tt ALGB} avant de faire du calcul 
symbolique, en tapant par exemple : {\tt UNASSIGN(X)}. \\
{\tt EPS} contient la valeur de epsilon utilisé dans la commande 
{\tt EPSX0} (cf \ref{sec:epsx0}).\\
{\tt MODULO} contient la valeur de $p$, pour faire du calcul symbolique dans
$Z/p.Z$. On peut changer la valeur de $p$ gr\^ace à la commande {\tt MODSTO} 
du menu {\tt MODULAR} en tapant par exemple : ${\tt MODSTO(13)}$\index{MODSTO}
 pour donner à $p$ la valeur $13$, ou utiliser {\tt CFG} des menus du {\tt CAS}.\\
{\tt PERIOD} doit contenir la période de la fonction dont on veut les
 coefficients de Fourier (cf \ref{sec:fourier}).  \\
{\tt PRIMIT} contient la primitive de la dernière fonction intégrée.\\
{\tt REALASSUME}\index{REALASSUME} contient la liste des noms des variables symboliques que l'on considère comme réelles, lorsqu'on a choisi dans le menu de configuration {\tt CFG} l'option {\tt Cmplx vars}, ce sont par défaut :\\
 {\tt X, Y, t, S1, S2} et toutes les variables d'intégration utilisées.\\
Bien s\^ur, si dans le menu de configuration {\tt CFG}, vous choisissez l'option {\tt Real vars} toutes les variables symboliques sont considérées comme réelles (cf \ref{sec:cfg}).\\
On peut aussi faire des suppositions sur le domaine de définition d'une 
variable comme par exemple {\tt X>1}.\\
Dans ce cas, il faut utiliser la commande {\tt ASSUME(X>1)}\index{ASSUME} pour 
que {\tt REALASSUME} contienne  {\tt X>1}.\\
La commande {\tt UNASSUME(X)}\index{UNASSUME} enlèvera toutes les 
hypothèses faites sur {\tt X}.\\
Pour voir ces variables et aussi celles que vous avez définies dans le {\tt CAS},
il faut appuyer sur {\tt VARS} depuis l'éditeur d'équations (cf \ref{sec:vars}). 

\chapter{Les fonctions de Calcul formel}\label{sec:cas}
\section{Le bandeau du CAS}
Seul le menu {\tt TOOL} contient des commandes, les autres menus permettent 
la mise à jour de la configuration et contiennent des fonctions  algébriques que l'on peut 
taper en mode {\tt Alpha}.\\
\subsection{\tt CFG}\label{sec:cfg}\index{CFG}
Tous les menus sauf {\tt TOOL}, affichent l'état de votre  configuration et
 vous avez la possibilité d'en changer. \\
Par exemple vous voyez en premi\`ere ligne d'un menu :
$${\tt CFG :\ R\ =\ X \  S}$$
cela veut dire que vous \^etes en mode réel exact et que {\tt X} est la variable courante et que vous \^etes en mode pas à pas ({\tt S}).\\
On  met en surbrillance {\tt CFG} et on appuie sur {\tt OK}.\\
Il apparait un menu d'en t\^ete :
$${\tt CFG :\ R\ =\ STEP\ \uparrow\ 'X' \ 13\ ||}$$
cela veut dire que vous \^etes en mode réel exact, que le mode pas à pas est 
sélectionné, que les polyn\^omes sont écrits selon les puissances croissantes, 
que {\tt X} est la variable courante, que les calculs modulaires
se feront dans {\tt Z/13Z} ($p=13$), et que vous \^etes en mode {\tt rigourous}
 (on met des valeurs absolues).\\
Vous pouvez changer cette configuration en sélectionnant ce qui vous convient
parmi :\\
{\tt Quit config} (lorsqu'on a fini les changements),\\
{\tt Complex } (ou {\tt Real}),\\
{\tt Approx} (ou {\tt Exact}),\\
{\tt Direct} (ou {\tt Step/Step} si on veut \^etre en mode pas à pas),\\
${\tt  1+x+x^2...}$ (ou ${\tt ...x^2+x+1}$ pour l'écriture des polyn\^omes)\\
{\tt Sloopy} (ou {\tt Rigourous} pour ne pas mettre les valeurs absolues)\\
{\tt Num. factor} (ou {\tt Symb factor}),\\
{\tt Cmplx  vars} (ou {\tt Real vars} pour que toutes les variables symboliques soient considérées comme réelles cf \ref{sec:realassume}),\\
{\tt English} (ou {\tt Français} pour avoir l'aide en ligne en français)\\
{\tt Default cfg} (configuration ${\tt R\ =\ STEP\ \downarrow\ X \ 13\ ||}$).\\Appuyer sur {\tt OK} pour valider chacun de vos choix.\\
On sort du menu {\tt CFG} en appuyant sur {\tt CANCEL} ou en validant {\tt Quit config} par {\tt OK}.\\ 
Le nom de la  variable courante  contenu dans {\tt VX} et la valeur de la variable {\tt MODULO} peuvent se changer à l'aide des touches {\tt SHIFT SYMB (SETUP)} ou l'aide de la touche {\tt VARS} (cf \ref{sec:config} et \ref{sec:vars}).\\ 
Remarque : dans le {\tt CAS} les angles sont toujours exprimés en {\tt radians}.\\
Vous pouvez aussi changer votre configuration à l'aide des touches 
{\tt SHIFT SYMB (SETUP)} se reporter pour cela à la section \ref{sec:config}
\subsection{\tt TOOL}
On se reportera à la section \ref{sec:tool} pour la description  des fonctions
qui se trouvent dans le répertoire {\tt TOOL}.\\
{\tt Cursor mode}\index{Cursor mode}\\
{\tt Edit expr.}\index{Edit expr.}\\
{\tt Change font}\index{Change font}\\
{\tt Cut}\index{Cut}\\
{\tt Copy}\index{Copy}\\
{\tt Paste}\index{Paste}\\
\subsection{\tt ALGB}
\noindent{\tt COLLECT}\index{COLELCT}\\
{\tt DEF}\index{DEF}\\
{\tt EXPAND}\index{EXPAND}\\
{\tt FACTOR}\index{FACTOR}\\
{\tt PARTFRAC}\index{PARTFRAC}\\
{\tt QUOTE}\index{QUOTE}\\
{\tt STORE}\index{STORE}\\
{\tt |}\index{$\mid$}\\
{\tt SUBST}\index{SUBST}\\
{\tt TEXPAND}\index{TEXPAND}\\
{\tt UNASSIGN}\index{UNASSIGN}\\
\subsection{\tt DIFF\&INT}
\noindent{\tt DERIV}\index{DERIV}\\
{\tt DERVX}\index{DERVX}\\
{\tt DIVPC}\index{DIVPC}\\
{\tt FOURIER}\index{FOURIER}\\
{\tt IBP}\index{IBP}\\
{\tt INTVX}\index{INTVX}\\
{\tt LIMIT}\index{LIMIT}\\
{\tt PREVAL}\index{PREVAL}\\
{\tt RISCH}\index{RISCH}\\
{\tt SERIES}\index{SERIES}\\
{\tt TABVAR}\index{TABVAR}\\
{\tt TAYLOR0}\index{TAYLOR0}\\
{\tt TRUNC}\index{TRUNC}\\
\subsection{\tt REWRITE}
\noindent{\tt DISTRIB}\index{DISTRIB}\\
{\tt EPSX0}\index{EPSX0}\\
{\tt EXPLN}\index{EXPLN}\\
{\tt EXP2POW}\index{EXP2POW}\\
{\tt FDISTRIB}\index{FDISTRIB}\\
{\tt LIN}\index{LIN}\\
{\tt LNCOLLECT}\index{LNCOLLECT}\\
{\tt POWEXPAND}\index{POWEXPAND}\\
{\tt SINCOS}\index{SINCOS}\\
{\tt SIMPLIFY}\index{SIMPLIFY}\\
{\tt XNUM}\index{XNUM}\\
{\tt XQ}\index{XQ}\\
\subsection{\tt SOLVE}
\noindent{\tt DESOLVE}\index{DESOLVE}\\
{\tt ISOLATE}\index{ISOLATE}\\
{\tt LDEC}\index{LDEC}\\
{\tt LINSOLVE}\index{LINSOLVE}\\
{\tt SOLVE}\index{SOLVE}\\
{\tt SOLVEVX}\index{SOLVEVX}\\
%{\tt }\index{}{\tt }\index{}
\subsection{\tt TRIG}
\noindent{\tt ACOS2S}\index{ACOS2S}\\
{\tt ASIN2C}\index{ASIN2C}\\
{\tt ASIN2T}\index{ASIN2T}\\
{\tt ATAN2S}\index{ATAN2S}\\
{\tt FOURIER}\index{FOURIER}\\
{\tt HALFTAN}\index{HALFTAN}\\
{\tt SINCOS}\index{SINCOS}\\
{\tt TAN2CS2}\index{TAN2CS2}\\
{\tt TAN2SC}\index{TAN2SC}\\
{\tt TAN2SC2}\index{TAN2SC2}\\
{\tt TCOLLECT}\index{TCOLLECT}\\
{\tt TEXPAND}\index{TEXPAND}\\
{\tt TLIN}\index{TLIN}\\
{\tt TRIG}\index{TRIG}\\
{\tt TRIGCOS}\index{TRIGCOS}\\
{\tt TRIGSIN}\index{TRIGSIN}\\
{\tt TRIGTAN}\index{TRIGTAN}\\
\subsection{\tt La touche MATH}\label{sec:math}
En plus des répertoires ci-dessus ({\tt ALGEBRA} {\tt DIFF\&INT} {\tt REWRITE} {\tt TRIG} {\tt SOLVE}) on trouve :\\ 
{\tt Complex...}
({\tt i}\index{i}
{\tt ABS}\index{ABS}
{\tt ARG}\index{ARG}
{\tt CONJ}\index{CONJ}
{\tt DROITE}\index{DROITE}
{\tt FLOOR}\index{FLOOR}
{\tt IM}\index{IM}
{\tt MOD}\index{MOD}
{\tt -}\index{-}
{\tt RE }\index{RE}
{\tt SIGN}\index{SIGN})\\
{\tt Constant... } 
(${\tt e\ i \ \infty \ pi}$)\\
 {\tt Hyperb.... } 
({\tt ACOSH ASINH ATANH COSH SINH TANH})\\
{\tt Integer...}
({\tt DIVIS}\index{DIVIS}
{\tt EULER}\index{EULER}
{\tt FACTOR}\index{FACTOR}
{\tt GCD}\index{GCD}
{\tt IEGCD}\index{IEGCD}
{\tt IQUOT}\index{IQUOT}
{\tt IREMAINDER}\index{IREMAINDER}
{\tt ISPRIME?}\index{ISPRIME?}
{\tt LCM}\index{LCM}
{\tt NEXTPRIME}\index{NEXTPRIME}
{\tt PREVPRIME}\index{PREVPRIME})\\
{\tt Modular...}
({\tt ADDTMOD}\index{ADDTMOD}
{\tt DIVMOD}\index{DIVMOD}
{\tt EXPANDMOD}\index{EXPANDMOD}
{\tt FACTORMOD}\index{FACTORMOD}
{\tt GCDMOD}\index{GCDMOD}
{\tt INVMOD}\index{INVMOD}
{\tt MODSTO}\index{MODSTO}
{\tt MULTMOD}\index{MULTMOD}
{\tt POWMOD}\index{POWMOD}
{\tt SUBTMOD}\index{SUDTMOD})\\
{\tt Polynom....}
({\tt EGCD}\index{EGCD}
{\tt FACTOR}\index{FACTOR}
{\tt GCD}\index{GCD}
{\tt HERMITE}\index{HERMITE}
{\tt LCM}\index{LCM}
{\tt LEGENDRE}\index{LEGENDRE}
{\tt PARTFRAC}\index{PARTFRAC}\\
{\tt PROPFRAC}\index{PROPFRAC}
{\tt PTAYL}\index{PTAYL}
{\tt QUOT}\index{QUOT}
{\tt REMAINDER}\index{REMAINDER}
{\tt TCHEBYCHEFF}\index{TCHEBYCHEFF})\\
{\tt Tests... } 
({\tt ASSUME}\index{ASSUME}
{\tt UNASSUME }\index{UNASSUME}
${\tt  > \ \geq \ < \ \leq \  == \  \neq \ AND \ OR \ NOT}$
{\tt IFTE}\index{IFTE})\\
On pourra se reporter aux sections \ref{sec:rep} et \ref{sec:tmath}, pour avoir la description des différents répertoires.
\section{\tt Le pas à pas}
Le mode pas à pas ({\tt Step/Step} ou en abrégé {\tt S}) est choisi 
quand on veut avoir le détail des calculs.\\
Le détail des calculs s'affiche sur un écran et il faut appuyer sur {\tt OK}
du bandeau pour avoir le ''pas'' suivant.\\
 Mais quelquefois, l'écran n'est 
pas assez grand pour afficher toutes les informations : on le voit gr\^ace à 
une flèche qui se trouve soit en bas ($\blacktriangledown)$, soit en haut
($\blacktriangle)$ de l'écran.
Il faut alors se servir des flèches $\bigtriangledown \triangle$ pour faire 
dérouler l'écran et voir ainsi ce qui manque.\\
Si on ne veut pas le détail des calculs, il faut choisir le mode {\tt Direct}
(en abrégé {\tt D}). 
\section{\tt Ecriture normale}
La calculatrice peut g\'erer des nombres entiers en pr\'ecision infinie, 
essayez :
$$100!$$
\indent Le symbole \ $!$ \  s'obtient en tapant : ${\tt SHIFT\ \times}$\\
L'écriture décimale de $100!$  étant tr\`es longue, on peut  voir le r\'esultat
  gr\^ace \`a  la touche {\tt VIEWS}. 
% commande {\tt View expr.} qui se trouve dans le menu {\tt TOOL}.\\
\subsection{\tt DEF}\index{DEF}
Soit l'exercice suivant :\\
Calculer les six premiers nombres de Fermat $F_k=2^{2^k}+1$ pour $k=1..6$ et 
dire s'ils sont premiers.\\
On tape l'expression
$$2^{2^2}+1$$
On trouve 17, puis on lance la commande 
{\tt ISPRIME?()}\index{ISPRIME?}. 
Cette commande  se trouve 
dans le menu {\tt Integer} de la touche {\tt MATH}.\\
La r\'eponse est {\tt 1.}, ce qui veut dire {\tt vrai}.
Gr\^ace \`a l'historique (touche {\tt HOME}) je recopie
 l'expression
$2^{2^2}+1$
dans l'éditeur d'équations et je la modifie en  $$2^{2^3}+1$$
Ou bien, et c'est la meilleure méthode, on définit la fonction {\tt F(K)} à 
l'aide de {\tt DEF}  du menu {\tt ALGB} du bandeau en tapant : 
$${\tt DEF(F(K)=2^{2^K}+1)}$$
La réponse est ${\tt 2^{2^K}+1}$ et {\tt F} s'inscrit parmi les variables 
(appuyer sur {\tt VARS} pour le vérifier). \\
Pour $K=5$ on tape :
$${\tt F(5)}$$
On obtient :
$$4294967297$$
On peut factoriser $F_5 $ avec {\tt FACTOR } que l'on trouve dans le menu :\\
{\tt ALGB} du bandeau.\\
On tape :
$${\tt FACTOR( F(5))}$$
On obtient$$641 \cdot 6700417$$
Pour ${\tt F(6)}$ on trouve :
$$18446744073709551617$$
On  factorise avec {\tt FACTOR},  on trouve :
$$274177\cdot67280421310721$$
{\sc Attention} \`a la diff\'erence entre :
$$2\ .\ 5 =\frac{5}{2}$$
et$$2\cdot5=10$$
%\item Les  commandes arithmétiques communes aux entiers et aux polyn\^omes
\section{Les entiers (et les entiers de Gauss)}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt Integer} de la touche {\tt MATH}.\\
Pour certaines  fonctions, on peut utiliser des entiers de Gauss, nom\-bres
 de la forme $a+ib$ avec $a$ et $b$ entiers, à la place des 
entiers.\\ 
\subsection{\tt DIVIS} \index{DIVIS}
{\tt DIVIS} donne la liste des diviseurs d'un entier.\\
On tape :
$${\tt DIVIS(12) }$$
On obtient :\\
$${\tt 12 \ OR\  6\ OR\ 3\ OR\  4\ OR\  2\ OR\ 1 }$$
%\item Les différentes commandes arithmétiques entières
\subsection{\tt EULER}\index{EULER}
{\tt EULER} désigne l'indicadrice d'EULER d'un entier. \\
EULER(n) est égale au cardinal de l'ensemble des nombres  inférieurs à $n$ et premiers avec $n$. \\
On tape :
$${\tt EULER(21)}$$
On obtient :
$${\tt 12}$$
En effet l'ensemble :\\
 E=\{2,4,5,7,8,10,11,13,15,16,17,19\}  correspond aux nombres, plus petits que
 21, premiers avec 21, et E a comme cardinal 12.
\subsection{\tt FACTOR }\index{FACTOR}
{\tt  FACTOR} décompose l'entier en produit de facteurs premiers.\\
On tape :
$${\tt FACTOR(90) }$$
On obtient :
$${\tt 2\cdot3^2\cdot5}$$
\subsection{\tt GCD}\index{GCD}
{\tt GCD} désigne le PGCD de deux entiers.\\
 On tape :
$${\tt GCD(18,15) }$$
On obtient :
$${\tt 3}$$ 
En mode pas à pas, on tape :
$${\tt GCD(78,24) }$$
On obtient :
${\tt 78\ \bmod \ 24 \ = \ 6}$\\
${\tt 24\ \bmod \ 6 \ = \ 0}$\\
{\tt Result 6}\\
{\tt ENTER} renvoie {\tt 6} dans l'éditeur d'équations\\
\subsection{\tt IEGCD}\index{IEGCD}
{\tt IEGCD(A,B)} désigne le PGCD étendu (identité de Bézout) de deux  entiers.\\
{\tt IEGCD(A,B)} renvoie {\tt U AND V = D} avec {\tt U, V, D} vérifiant :\\
 {\tt AU+BV=D} et {\tt D=PGCD(A,B)}.\\
On tape :
$${\tt IEGCD(48,30) }$$
On obtient :
$${\tt 2 \ AND\ -3=6}$$
En effet :
$$2 \cdot 48+ (-3) \cdot 30 =6$$
En mode pas à pas on obtient :\\
{\tt z=u*48+v*30}\\
{\tt [48,1,0]}\\
{\tt [30,0,1]*-1}\\
{\tt [18,1,-1]*-1 }\\
{\tt [12,1,-2]*-1}\\ 
{\tt [6,2,-3]*-2}\\
{\tt Result : [6,2,-3]}\\
puis {\tt ENTER},\\
 $${\tt 2 \ AND\ -3=6}$$
s'écrit dans l'éditeur d'équations.
\subsection{\tt IQUOT}\index{IQUOT}\label{sec:iquot}
{\tt IQUOT} désigne le quotient entier de la division euclidienne de deux entiers.\\ 
On tape :
$${\tt IQUOT(148,5) }$$
On obtient :
$${\tt 29}$$
En mode pas à pas, la division se fait comme à l'école :
$$\begin{array}{rcl} 148 & | &\ 5\\ 48 & |&---\\ 3 &| &29 \end{array}$$
{\tt OK} pour exécuter la division au pas à pas, puis {\tt ENTER} et $29$  s'inscrit dans
l'éditeur d'équations. 
\subsection{\tt IREMAINDER MOD}\index{IREMAINDER}\index{MOD}
{\tt IREMAINDER} désigne le reste entier de la division euclidienne de deux entiers.\\
{\tt IREMAINDER} se trouve dans le menu {\tt Integer} et {\tt MOD} se trouve dans le menu {\tt Complex} de la touche {\tt MATH}.\\
On tape :
$${\tt IREMAINDER(148,5) }$$
ou
$${\tt 148\ MOD\ 5 }$$
On obtient :
$${\tt 3}$$
{\tt IREMAINDER} travaille avec des entiers ou des entiers de Gauss, c'est ce qui le différencie de {\tt MOD}.\\
Exemple : ${\tt IREMAINDER(2+3.i,1+i) }$ renvoie $i$\\
 {\tt MOD} accepte des réels ($7.5 \ \bmod \ 2 \ =\ 1.5$) mais pas des entiers de Gauss.\\  
Essayer :
$${\tt IREMAINDER(148!,5!+2 )}$$
($!$ s'obtient avec ${\tt SHIFT \ \times}$).

En mode pas à pas, la division se fait comme à l'école, avec l'algorithme dit de la ``potence'' (cf \ref{sec:iquot}).
\subsection{\tt ISPRIME?}\index{ISPRIME?}
{\tt ISPRIME?(N)}  renvoie {\tt 1.} (vrai) si {\tt N} est pseudo-premier  et  renvoie {\tt 0.} (faux) si {\tt N} n'est pas premier. \\
Définition : Pour les nombres inférieurs à $10^{14}$ \^etre pseudo-premier et 
premier c'est la m\^eme chose ! ...mais au delà de $10^{14}$  un nombre 
pseudo-premier est premier avec une probabilité très forte (cf l'algorithme de Rabin section\ref{sec:rabin}).\\ 
On tape :
$${\tt ISPRIME?(13) }$$
On obtient :$${\tt 1.}$$
On tape :
$${\tt ISPRIME?(14) }$$
On obtient :
$${\tt 0.}$$
\subsection{\tt LCM}\index{LCM}
{\tt LCM} désigne le PPCM de deux entiers.\\
On tape :
$${\tt LCM(18,15) }$$
On obtient :
$${\tt 90}$$
\subsection{\tt NEXTPRIME}\index{NEXTPRIME}
{\tt NEXTPRIME(N)} désigne le premier nombre pseudo-premier trouvé après  ${\tt N}$. \\
On tape :
$${\tt NEXTPRIME(75) }$$
On obtient :
$${\tt 79}$$
\subsection{\tt PREVPRIME}\index{PREVPRIME}
{\tt PREVPRIME(N)} désigne le premier nombre pseudo-premier trouvé avant 
${\tt N}$.\\
On tape :
$${\tt  PREVPRIME(75)}$$
On obtient :
$${\tt 73}$$
\section{Le calcul modulaire }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt Modular} de la touche {\tt MATH}.\\
On peut faire des calculs modulo {\tt p} c'est à dire dans $Z/pZ$ ou dans  $Z/pZ[X]$.\\
{\sc Attention}, pour  certaines commandes il faut choisir un nombre {\tt p} premier.\\
{\sc Dans la suite, les exemples seront tra\^ités avec {\tt p=13}}.\\
On suppose donc que l'on a tapé : $${\tt MODSTO(13)}$$ 
ou que l'on a  changé {\tt MODULO} dans la fen\^etre ouverte avec les touches 
{\tt SHIFT SYMB (SETUP)}.\\
La représentation choisie est la représentation symétrique (-1 au lieu de 6 
modulo 7).
\subsection{\tt ADDTMOD}\index{ADDTMOD}
{\tt ADDTMOD} réalise une addition  dans  $Z/pZ[X]$.\\
On tape :
$${\tt ADDTMOD(11X+5,8X+6)}$$
On obtient :
$${\tt 6X-2}$$
\subsection{\tt DIVMOD}\index{DIVMOD}
Les arguments sont deux polyn\^omes $ A[X]$ et $ B[X]$. Le résultat est la 
fraction rationnelle $ \frac{A[X]}{B[X]}$ simplifiée dans $Z/pZ[X]$.\\
On tape :
$${\tt DIVMOD(2X^2+5,5X^2+2X-3)}$$
On obtient :
$${\tt \frac{5X+3}{6X+6}} $$
\subsection{\tt EXPANDMOD}\index{EXPANDMOD}
{\tt EXPANDMOD} a comme argument une expression polynomiale.\\
{\tt EXPANDMOD} développe cette expression dans $Z/pZ[X]$.\\
On tape :
 $${\tt EXPANDMOD(( 2X^2+12).( 5X-4))}$$
On obtient :
$${\tt -(3X^3-5X^2+5X-4)}$$
\subsection{\tt FACTORMOD}\index{FACTORMOD}
{\tt FACTORMOD} a comme argument un  polyn\^ome.\\
{\tt FACTORMOD} factorise ce  polyn\^ome dans  $ Z/pZ[X]$ à condition que 
l'on ait ${\tt p \leq 97}$ et $p$ premier.\\
On tape :
$${\tt FACTORMOD(-(3X^3-5X^2+5X-4))}$$
On obtient :
$${\tt -((3X-5)(X^2+6))}$$
\subsection{\tt GCDMOD}\index{GCDMOD}
{\tt GCDMOD} a deux polyn\^omes comme arguments.\\
{\tt GCDMOD} calcule le PGCD des deux  polyn\^omes dans $Z/pZ[X]$.\\
On tape :
$${\tt GCDMOD(2X^2+5,5X^2+2X-3)}$$
On obtient :
$${\tt -(4X-5)}$$
\subsection{\tt INVMOD}\index{INVMOD}
{\tt INVMOD} a comme argument un  entier.\\
{\tt INVMOD} calcule l'inverse de cet entier dans $Z/pZ$.\\
On tape :
$${\tt INVMOD(5)}$$
On obtient (car $5\times-5=-25=1\ (\bmod\ 13)$) :
$${\tt -5}$$
\subsection{\tt MODSTO}\index{MODSTO}
On met dans la variable {\tt MODULO},
  la valeur de {\tt p} gr\^ace à la commande {\tt MODSTO}.\\
{\sc Ici, les exemples sont tra\^ités avec {\tt p=13}} qui est la valeur
par défaut, sinon on suppose  que l'on a tapé :
 $${\tt MODSTO(13)}$$ 
\subsection{\tt MULTMOD}\index{MULTMOD}
{\tt MULTMOD} réalise une multiplication  dans $Z/pZ[X]$.\\
On tape :
$${\tt MULTMOD(11X+5,8X+6)}$$
On obtient :
$${\tt -(3X^2-2X-4)}$$
\subsection{\tt POWMOD}\index{POWMOD}
{\tt POWMOD(A,N)} calcule {\tt A} \`a la puissance {\tt N} dans $Z/pZ$, et 
{\tt POWMOD(A(X),N)} calcule {\tt A(X)} \`a la puissance {\tt N} dans $Z/pZ[X]$.\\
 Le contenu ${\tt p}$ de {\tt MODULO} doit \^etre un nombre premier inf\'erieur \`a 100.\\
On tape :
$${\tt POWMOD(11,195)}$$
On obtient :
$${\tt 5}$$
En effet, $11^12=1 \ \bmod \ 13$ donc $11^195=11^3=5 \ \bmod \ 13$
On tape :
$${\tt POWMOD(2X+1,5)}$$
On obtient :
$${\tt 6.X^5+2.X^4+2.X^3+X^2-3.X+1}$$
car :\\
 $10=-3 \ (\bmod\ 13) \ \  40=1\ (\bmod\ 13)\ \   80=2 \ (\bmod\ 13)\ \ 32=6\ (\bmod\ 13)$. 
\subsection{\tt SUBTMOD}\index{SUBTMOD}
{\tt SUBTMOD} réalise une soustraction dans $Z/pZ[X]$.\\
On tape :
$${\tt SUBTMOD(11X+5,8X+6)}$$
On obtient :
$${\tt 3X-1}$$
\section{Les rationnels}
Essayez :
$$\frac{123}{12}+\frac{57}{21}$$
 Vous sélectionnez puis {\tt ENTER} la r\'eponse est :
$$\frac{363}{28}$$
Si on applique la fonction {\tt XNUM} du menu {\tt REWRITE}, ou si on appuie
sur la touche {\tt NUM}, la r\'eponse est :
$$12.9642857143$$
Si on m\'elange les deux repr\'esentations par exemple :
$$\frac{1}{2}+0\ .\ 5$$
la caculatrice demande \`a passer en mode {\tt approx} pour faire le calcul ; 
il faut alors r\'epondre {\tt yes} pour obtenir :
$$1.$$ 
Revenez ensuite en mode exact ({\tt CFG}  etc...).
\subsection{\tt PROPFRAC}\index{PROPFRAC}
{\tt PROPFRAC} se trouve dans le menu {\tt Polynom.} de la touche {\tt MATH}.\\
${\tt PROPFRAC(\frac{A}{ B})}$ écrit la fraction $\frac{A}{B}$ sous la 
forme :$$Q+\frac{R}{B}\ \ avec \ \ 0\leq R<B$$
On tape :
$${\tt  PROPFRAC(\frac{43}{ 12})}$$
On obtient :
$${\tt 3+\frac{7}{12}}$$
\section{Les r\'eels}
Essayez :
$${\tt EXP(\pi \times \sqrt{20})}$$
Vous sélectionnez,  puis {\tt ENTER} la r\'eponse est :
$${\tt EXP(2 \times \sqrt5 \times \pi)}$$
Si on applique la fonction {\tt XNUM}\index{XNUM} du menu {\tt REWRITE} la r\'eponse est :
$$1263794.7537$$\\
Vous trouverez dans le menu {\tt Complex} de la touche {\tt MATH}, les 
fonctions {\tt FLOOR} et {\tt MOD} expliquées dans ce qui suit :
\subsection{\tt FLOOR}\index{FLOOR}
{\tt FLOOR} a comme argument un nombre réel, et renvoie sa partie entière.\\
On tape :
$${\tt  FLOOR(3.53)}$$
On obtient :
$${\tt 3}$$
\subsection{\tt MOD}\index{MOD}
{\tt MOD} est une fonction infixée ayant comme argument deux nombres entiers.\\
{\tt MOD} renvoie le reste de la division euclidienne des arguments.\\ 
On tape :
$${\tt 3\ MOD\ 2}$$
On obtient :
$${\tt 1}$$
\section{Les complexes}
Notation : les complexes de la forme $a+b.i$, avec $a$ et $b$ réels, peuvent \^etre notés $(a,b)$ ou $a+b.i$.\\
Les opérations {\tt +,-,*,/,\circonflexe } sont effectuées.\\
On tape :
$${\tt (1+2.i)^2}$$
Vous sélectionnez, puis {\tt ENTER}.\\
Si on n'est pas en mode {\tt complex}, la caculatrice demande \`a changer de 
mode, il faut alors r\'epondre {\tt yes} pour obtenir 
la r\'eponse :
$${\tt -(3-4 \cdot i)}$$
Il faut noter que cette expression ne sera pas simplifi\'ee davatange (les
 r\'esultats mettront toujours en évidence un nombre complexe de partie
 r\'eelle positive en mode exact).\\
Vous trouverez dans le menu {\tt Complex} de la touche {\tt MATH}, les fonctions
 suivantes ayant comme paramètre une expression à valeur complexe :\\
{\tt DROITE}\index{DROITE} a comme paramètre deux nombres complexes $z_1,\ z_2$.\\
{\tt DROITE} renvoie alors l'équation de la droite passant par les deux points
d'affixe $z_1,\ z_2$.\\
{\tt ARG}\index{ARG} pour déterminer l'argument du paramètre,\\
{\tt ABS}\index{ABS} pour déterminer le module du paramètre,\\
{\tt CONJ}\index{CONJ} pour déterminer le conjugué du paramètre,\\
{\tt RE}\index{RE} pour déterminer la partie réelle du paramètre,\\
{\tt IM}\index{IM} pour déterminer la partie imaginaire du paramètre,\\
{\tt -}\index{-} pour déterminer l'opposé du paramètre,\\
{\tt SIGN}\index{SIGN} pour déterminer le quotient du paramètre par son module.
\subsection{\tt ARG}\index{ARG}
On tape :\\
$${\tt ARG(3+4.i)}$$
On obtient (car dans le {\tt CAS}, on est en {\tt Radians}):\\
$${\tt ATAN(\frac{4}{3})}$$
Remarque :\\
Vous pouvez faire le m\^eme calcul dans {\tt HOME} mais vous obtenez un résultat numérique {\tt 0.64250...}( si vous \^etes en {\tt Radians}).\\
Dans {\tt HOME} il faut taper :
$${\tt ARG(XQ(3+4.i))}$$
pour obtenir :
$${\tt ATAN(\frac{4}{3})}$$
\subsection{\tt CONJ}\index{CONJ}
On tape :
$${\tt CONJ(1+2.i)}$$
On obtient :
$${\tt 1-2.i}$$
{\sc Attention} si vous  choisissez {\tt Real vars} dans le menu de 
configuration {\tt CFG} vous aurez {\tt CONJ(Z)=Z}, et  si vous choisissez 
{\tt Cmplx vars}, {\tt CONJ(Z)} sera  différent de {\tt Z} à condition que 
{\tt Z} ne figure pas dans la liste que contient la variable {\tt REALASSUME}\index{REALASSUME}.
Il est souvent préférable d'écrire l'expression quotée :\\
{\tt QUOTE(expression)}\index{QUOTE}, pour éviter 
une réécriture de cette expression par exemple, si on a séléctionné {\tt Real vars} et si on tape :\\
$${\tt SUBST(QUOTE(CONJ(Z)),Z=1+i)}$$
On obtient :
$${\tt CONJ(1+i)}$$
alors que :
$${\tt SUBST(CONJ(Z),Z=1+i)}$$
donne :
$${\tt 1+i}$$
Bien s\^ur,  si on a séléctionné {\tt Cmplx vars} et que {\tt Z} ne figure pas dans la liste que contient la variable {\tt REALASSUME} :
$${\tt SUBST(CONJ(Z),Z=1+i)}$$
donne :
$${\tt CONJ(1+i)}$$
\subsection{\tt DROITE}\index{DROITE}
On tape :
$${\tt DROITE((1,2),(0,1))}$$
ou\\
On tape :
$${\tt DROITE(1+2.i,i)}$$
On obtient :
$${\tt y=x-1+2}$$
puis {\tt ENTER} donne :
$${\tt y=x+1}$$
\section{Les expressions alg\'ebriques }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt ALGB} du
bandeau.\\
\subsection{\tt COLLECT}\index{COLLECT}
{\tt COLLECT} a comme paramètre une expression.\\
{\tt COLLECT} factorise cette expression sur les entiers.\\
Exemples :\\
Factoriser sur les entiers : 
$$x^2-4$$
On tape :
$${\tt COLLECT(X^2-4)}$$
On trouve en mode réel :
$${\tt (X+2) \cdot (X-2)} $$
Factoriser sur les entiers : 
$$x^2-2$$
On tape :
$${\tt COLLECT(X^2-2)}$$
On trouve :
$${\tt X^2-2} $$
\subsection{\tt EXPAND}\index{EXPAND}
{\tt EXPAND} a comme paramètre une expression.\\
{\tt EXPAND} développe et simplifie  cette expression.\\ 
On tape :
 $${\tt EXPAND((X^2+\sqrt2 \cdot X+1) \cdot (X^2-\sqrt2 \cdot X+1))}$$ 
On obtient :
$${\tt X^4+1}.$$ 
\subsection{\tt FACTOR}\index{FACTOR}
{\tt FACTOR} a comme paramètre une expression.\\
{\tt FACTOR}  factorise cette expression.\\
Exemple :\\
Factoriser 
$$x^4+1$$
On tape :
$${\tt FACTOR(X^4+1)}$$
On trouve {\tt FACTOR} dans le menu de {\tt ALGB}.\\ 
On trouve en mode réel :
$${\tt (X^2+\sqrt2 \cdot X+1) \cdot (X^2-\sqrt2 \cdot X+1)} $$
On trouve en mode complexe (pour cela  utiliser {\tt CFG}) : 
$${\tt \frac{ (2.X+(1+i).\sqrt 2).(2.X-(1+i)\cdot \sqrt 2)}{16}\  \times}$$
$${\tt \frac{(2.X+(1-i).\sqrt 2).(2.X-(1-i).\sqrt 2)}{16}}$$
\subsection{\tt |}\index{$\mid$}
  {\tt |} est un opérateur infixé  utile pour remplacer une variable dans une expression (un peu comme la fonction {\tt SUBST}).\\
 On tape :
$${\tt  X^2-1\ |_{\displaystyle X=2}}$$
On obtient :
$${\tt 2^2-1}$$
\subsection{\tt SUBST}\index{SUBST}
{\tt SUBST} a deux paramètres : une expression dépendant d'un paramètre et
une égalité (paramètre=valeur de substitution).\\
{\tt SUBST} effectue la substitution demandée dans l'expression.\\
On tape :\\
$${\tt SUBST(A^2+1,A=2)}$$ 
On obtient :\\
$${\tt 2^2+1}$$ 
\section{Les polyn\^omes}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt Polynom.}
 de la touche {\tt MATH}.
\subsection{\tt DEGREE}\index{DEGREE}
{\tt DEGREE} a comme argument un polyn\^ome de la variable courante.\\
{\tt DEGREE} renvoie le degré de ce polyn\^ome.\\
{\sc Attention} : le degré d'un polyn\^ome nul est égal à {\tt -1}.\\
 On tape :
$${\tt DEGREE(X^2+X+1)}$$
On obtient :\\
$${\tt 2}$$ 
\subsection{\tt EGCD}\index{EGCD}
Il s'agit de l'identit\'e de B\'ezout (Extended Greatest Common Divisor).
${\tt EGCD(A(X),B(X) )}$ renvoie  ${\tt U(X) \ AND \ V(X)= D(X) }$ avec D,U,V v\'erifiant :
$${\tt {D(X)=U(X)\cdot A(X)+V(X)\cdot B(X)}}$$ 
 On tape :
$${\tt EGCD(X^2+2 \cdot X+1 ,X^2-1 )}$$
On obtient :
$${\tt 1 \ AND \ -1\ =\ 2 \cdot X+2}$$
On tape :
$${\tt EGCD(X^2+ 2 \cdot X+1 ,X^3-1 )}$$
On obtient :
$${\tt -(X+2) \ AND \ 1\ =\ 3 \cdot X+3}$$
\subsection{\tt FACTOR}\index{FACTOR}
 {\tt FACTOR} a pour argument un polyn\^ome.\\
{\tt FACTOR} factorise ce polyn\^ome.\\
On tape :
 $${\tt FACTOR(X^2-2)}$$
On obtient :
$${\tt (X+ \sqrt2).(X- \sqrt2) }$$
On tape :
 $${\tt FACTOR(X^2+2\cdot X+1)}$$
On obtient :
$${\tt (X+1)^2}$$
On tape :
 $${\tt FACTOR(X^4-2.X^2+1)}$$
On obtient :
$${\tt (X-1)^2.(X+1) ^2}$$
On tape :
 $${\tt FACTOR(X^3-2.X^2+1)}$$
On obtient :
$${\tt \frac{(X-1).(2.X+-1+\sqrt5).(2.X-(1+\sqrt5))}{4}}$$
\subsection{\tt GCD}\index{GCD}
{\tt GCD} désigne le PGCD (plus grand commun diviseur) de deux polyn\^omes.\\
 On tape :
$${\tt GCD(X^2+2 \cdot X+1 ,X^2-1 )}$$
On obtient :
$${\tt X+1 }$$
\subsection{\tt HERMITE}\index{HERMITE}
{\tt HERMITE} a comme argument un entier $n$.\\
{\tt HERMITE} renvoie le polyn\^ome de HERMITE de degré $n$.\\
Il s'agit du polyn\^ome :
$$H_n(x)=(-1)^n.e^{\frac{x^2}{2}}\frac{d^n}{dx^n}e^{\frac{-x^2}{2}}$$
On a :\\
pour $n \geq 0$
$$H_n^{''}(x)-xH_n^{'}(x)+nH_n(x)=0$$
et pour $n \geq 1$
$$H_{n+1}(x)-xH_n(x)+nH_{n-1}(x)=0$$
$$H_n^{'}(x)=nH_{n-1}(x)$$
On tape :
$${\tt HERMITE(6)}$$
On obtient :
$${\tt 64.X^6-480.X^4+720.X^2-120}$$
 \subsection{\tt LCM}\index{LCM}
{\tt LCM} désigne le PPCM (plus petit commun multiple) de deux polyn\^omes.\\
On tape :
$${\tt LCM(X^2+2 \cdot X+1 ,X^2-1 )}$$
On obtient :
$${\tt (X^2+2 \cdot X+1) \cdot (X-1)}$$
\subsection{\tt LEGENDRE}\index{LEGENDRE}
{\tt LEGENDRE} a comme argument un entier $n$.\\
{\tt LEGENDRE} renvoie le polyn\^ome $L_n$ non nul solution de l'équation différentielle :
$$(x^2-1).y''-2.x.y'-n(n+1).y=0$$ 
On a :\\
pour $n \geq 0$ la formule de Rodriguès 
$$L_n(x)=\frac{1}{n!2^n}\frac{d^n}{dx^n}(x^2-1)^n $$
 et  pour $n \geq 1$
$$(n+1)L_{n+1}(x)=(2n+1)xL_n(x)-nL_{n-1}(x)$$
On tape :
$${\tt LEGENDRE(4)}$$
On obtient :
$${\tt \frac{35.X^4-30.X^2+3}{8}}$$
\subsection{\tt PARTFRAC}\index{PARTFRAC}
D\'ecomposer en \'eléments simples la fraction rationnelle :
$$\frac{x^5-2 \times x^3+1}{x^4-2\times x^3+2\times x^2-2\times x+1}$$
On utilise la commande {\tt PARTFRAC}.\\
On tape :
$${\tt PARTFRAC(\frac{X^5-2*X^3+1}{X^4-2*X^3+2*X^2-2*X+1})}$$
On obtient en mode réel:
$${\tt X+2+\frac{\frac{-1}{2}}{X-1}+\frac{\frac{X-3}{2}}{X^2+1} }$$
On obtient en mode complexe :
$${\tt X+2+\frac{\frac{1-3.i}{4}}{X+i}+\frac{\frac{-1}{2}}{X-1}+\frac{\frac{1+3.i}{4}}{X-i} }$$
\subsection{\tt PROPFRAC}\index{PROPFRAC}
{\tt PROPFRAC} a comme argument une fraction  rationnelle.\\
{\tt PROPFRAC} renvoie cette fraction rationnelle \'ecrite de mani\`ere \`a mettre en \'evidence sa partie enti\`ere.\\
${\tt PROPFRAC(A(X) / B(X))}$ écrit la fraction rationnelle $\frac{A[X]}{B[X]}$ sous la forme :
$$Q[X]+\frac{R[X]}{B[X]}$$\ \ avec \ $R[X]=0$ ou \ $0\leq deg(R[X])< deg(B[X])$.\\
On tape :
$${\tt  PROPFRAC(\frac{(5.X+3).(X-1)}{X+2})}$$
On obtient :
$${\tt 5.X-12+\frac{21}{X+2}}$$
\subsection{\tt PTAYL}\index{PTAYL}
Il s'agit d'\'ecrire un polyn\^ome $P[X]$ selon les puissances de $X-a$.\\
{\tt PTAYL} a deux param\`etres : un  polyn\^ome P et un nombre $a$.\\
On tape :
$${\tt PTAYL(X^2+2\cdot X +1 , 2)}$$
On obtient le polyn\^ome Q[X]:
$${\tt X^2+6\cdot X +9 }$$
{\sc Attention}, on a :
$${\tt P(X)=Q(X-2)}$$
\subsection{\tt QUOT}\index{QUOT}
{\tt QUOT} donne le quotient de deux polyn\^omes dans la division selon les puissances d\'ecroissantes.\\
 On tape :
$${\tt QUOT(X^2+2\cdot X +1 ,X )}$$
On obtient :
$${\tt X+2}$$
\subsection{\tt REMAINDER}\index{REMAINDER}
{\tt REMAINDER} donne le reste de la division de deux polyn\^omes (division 
selon les puissances d\'ecroissantes).\\
On tape :
$${\tt REMAINDER(X^3-1 ,X^2-1 )}$$
On obtient :
$${\tt X-1}$$
\subsection{\tt TCHEBYCHEFF}\index{TCHEBYCHEFF}
{\tt TCHEBYCHEFF} a comme argument un entier $n$.\\
Si $n>0$, {\tt TCHEBYCHEFF} renvoie le polyn\^ome $T_n$ tel que :\\
$$T_n[x]= \cos(n.\arccos(x))$$\\
On a :\\
pour $n \geq 0$
$$T_n(x)=\sum_{k=0}^{[n/2]}C_n^{2k}(x^2-1)^kx^{n-2k}$$
pour $n \geq 0$
$$(1-x^2)T_n^{''}(x)-xT_n^{'}(x)+n^2T_n(x)=0$$
pour $n \geq 1$
$$T_{n+1}(x)=2xT_n(x)-T_{n-1}(x)$$
Si $n<0$ {\tt TCHEBYCHEFF} renvoie le polyn\^ome de Tchebycheff de seconde espèce :\\
$$T_n[x]=\frac{\sin(n.\arccos(x))}{\sin(\arccos(x))}$$\\
On tape :
$${\tt TCHEBYCHEFF(4)}$$
On obtient :
$${\tt 8.X^4-8.X^2+1}$$
en effet :\\
$\cos( 4.x)=Re((\cos(x)+i.\sin(x))^4)$\\
$\cos( 4.x)=\cos(x)^4-6.\cos(x)^2.(1-\cos(x)^2)+((1-\cos(x)^2)^2$\\
$\cos(4.x)=T_4(\cos(x))$\\
On tape :
$${\tt TCHEBYCHEFF(-4)}$$
On obtient :
$${\tt 8.X^3-4.X}$$
en effet :\\
$\sin(4.x)=\sin(x).(8.\cos(x)^3-4.\cos(x))$.
\section{Les fonctions }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt DIFF} du
bandeau, sauf {\tt DEF} qui se trouve dans le menu {\tt ALGB},
et {\tt IFTE} qui se trouve dans le menu {\tt Tests} de la touche {\tt MATH}.\\
\subsection{\tt  DEF}\index{DEF}
{\tt  DEF} a comme argument une égalité entre le nom d'une fonction avec des
 parenthèses contenant le nom de la  variable et une expression définissant la fonction.\\
{\tt  DEF} définit cette fonction et renvoie l'égalité.\\
On tape :
$${\tt DEF(U(N)=2^N+1)}$$
On obtient :
$${\tt U(N)=2^N+1}$$
Puis on tape :
$${\tt U(3)}$$
On obtient :
$${\tt  9}$$
\subsection{\tt  IFTE}\index{IFTE}
{\tt  IFTE} a trois arguments, un boolèen (attention au == pour le test !) et deux expressions $expr1,\ expr2$.\\
{\tt  IFTE} évalue le test, renvoie $expr1$ si le test est vrai,
 et renvoie $expr2$ si le test est faux.\\
On tape :
$${\tt STORE(2,N)}$$
$${\tt  IFTE(N==0,1,\frac{N+1}{N})}$$
On obtient :
$$ {\tt \frac{3}{2}}$$
On peut bien s\^ur définir une fonction à l'aide de {\tt  IFTE} par exemple :
$${\tt  DEF(F(X)=IFTE(X==0,1,\frac{SIN(X)}{X}))}$$
définit la fonction $f$ par :
$$f(x)=\left\{
\begin{array}{rl}
1 &\mbox{si } x=0\\
\displaystyle \frac{\sin(x)}{x}&\mbox{si } x \neq 0
\end{array}\right.$$
\subsection{\tt  DERVX}\index{DERVX}
Soit $$f(x)=\frac {x}{x^2-1}+\ln(\frac {x+1}{x-1})$$
Calculer la d\'eriv\'ee de $f$.\\
On tape :
$${\tt DERVX(\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))} $$
ou si on a stock\'e l'expression de $ f(x)$ dans {\tt F} c'est à dire si on a 
tapé :
$${\tt STORE(\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}),F)}$$
$${\tt DERVX(F) }$$ 
ou si on a défini  $ F(X)$ à l'aide de {\tt DEF} :
 $${\tt DEF(F(X)=\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))}$$
$${\tt DERVX(F(X)) }$$ 
On trouve une expression compliquée que l'on simplifie en faisant :\\ 
${\tt ENTER}$.\\
On obtient :
$${\tt -\frac {3 \cdot X^2-1}{X^4-2 \cdot X^2+1}} $$ 
\subsection{\tt  DERIV}\index{DERIV}
{\tt  DERIV} a deux arguments : une expression (ou une fonction) et 
une variable.\\
{\tt  DERIV} renvoie la dérivée de l' expression (ou de la fonction) par rapport à  la  variable donnée comme deuxième paramètre (utile pour calculer des dérivées partielles!).\\
Exemple : \\
Soit à calculer :
$$\frac {\partial (x.y^2.z^3+x.y)}{\partial z}$$
On tape :
$${\tt  DERIV(X.Y^2.Z^3+X.Y\ ,\ Z)}$$
On obtient :
$${\tt 3.X.Y^2.Z^2}$$
\subsection{\tt TABVAR}\index{TABVAR}
{\tt TABVAR} a comme paramètre une expression ayant une derivée rationnelle.\\
{\tt TABVAR} renvoie (en mode pas \`a pas) le tableau de variations de l'expression, en fonction de 
la variable courante.\\
On tape :
$${\tt TABVAR(LN(X)+X)} $$
On obtient en mode pas à pas :\\
${\tt F=:(LN(X)+X)}$\\
${\tt F'=:(\frac{1}{X}+1}$\\
${\tt \rightarrow :\frac{X+1}{X}} $\\
{\tt Variation table } :\\
$$\left[\begin{array}{cccccc}
-\infty & ?  & 0 & + & +\infty & X\\
? & ?  & -\infty & \uparrow & +\infty & F \end{array}\right]$$
\subsection{\tt FOURIER}\index{FOURIER}\label{sec:fourier}
{\tt FOURIER} a deux paramètres : une expression $f(x)$ et un entier $n$.\\
{\tt FOURIER} renvoie le coefficient de Fourier $c_n$ de $f(x)$ considérée 
comme une fonction définie sur $[0,T]$ et périodique de période $T$ ($T$ étant
égale au contenu de la variable {\tt PERIOD}).\\
On a si $f$ est continue par morceaux :
 $$f(x)=\sum _{n=-\infty}^{+\infty} c_n e^\frac{2inx\pi}{T}$$
Exemple :
Déterminer les coefficients de Fourier de la fonction $f$ périodique de période
 $2.\pi$ et définie sur $[0\ 2.\pi[$ par $ f(x)=x^2$.\\ 
On tape :
$${\tt STORE(2.\pi\ , \ PERIOD)}$$
$${\tt FOURIER(X^2,N)}$$
On obtient après simplification :
$${\tt \frac{2.i.N.\pi+2}{N^2}}$$
Donc si $n \neq 0$ on a :
$$c_n=\frac{2.i.N.\pi+2}{N^2}$$ 
Puis on tape :
$${\tt FOURIER(X^2,0)}$$
On obtient :
$${\tt \frac{4.{\pi}^2}{3} }$$
Donc si $n= 0$ on a :
$$c_0=\frac{4.{\pi}^2}{3}$$ 
\subsection{\tt IBP}\index{IBP}
{\tt IBP} a deux paramètres : une expression de la forme $u(x).v'(x)$ et $v(x)$.\\
{\tt IBP} renvoie le {\tt AND} de $u(x).v(x)$ et de $-v(x).u'(x)$,  c'est à 
dire les termes que l'on doit calculer quand on fait une intégration par 
parties.\\
 Il reste alors à calculer l'intégrale du deuxième terme du {\tt AND}, puis à 
faire la somme avec le premier terme du {\tt AND} pour obtenir une primitive de $u(x).v'(x)$.\\ 
On tape :
$${\tt IBP(LN(X),X) }$$
On obtient :
$${\tt X.LN(X)\ AND  \ -1}$$
On termine l'intégration en appelant {\tt  INTVX} :\\
{\tt  INTVX(X.LN(X) AND -1)}\\
on obtient alors :
$${\tt X\cdot LN(X)-X}$$
Remarque : Si le premier paramètre de {\tt IBP} est le {\tt AND} de deux éléments,
 {\tt IBP} n'agit que sur le dernier élément de {\tt AND} et ajoute le terme
 intégré au premier élément de {\tt AND} (de façon à pouvoir faire plusieurs
{\tt IBP} à la suite).
\subsection{\tt  INTVX}\index{INTVX}
Exercice 1\\
Calculer une primitive  de $\sin(x) \times \cos(x)$.\\
On tape :
$${\tt INTVX(SIN(X).COS(X))}$$
On obtient en pas à pas :\\
{\tt COS(X). SIN(X)\\
Int[u'*F(u)] with u=SIN(X)}\\
puis {\tt OK} et le résultat s'inscrit dans l'éditeur d'équations :
$${\tt \frac{SIN(X)^2}{2}}$$
Exercice 2\\
Soit $$f(x)=\frac {x}{x^2-1}+\ln(\frac {x+1}{x-1})$$
Calculer une primitive  de f.\\
On tape :
$${\tt INTVX(\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))} $$
ou si on a stock\'e l'expression de $ f(x)$ dans {\tt F}
$${\tt INTVX(F)} $$ 
ou si on a défini  $ F(X)$ à l'aide de  {\tt DEF}
 ($ {\tt DEF(F(X)=\frac {X}{X^2-1}+LN(\frac {X+1}{X-1})}$)
$${\tt INTVX(F(X)) }$$ 
On trouve : 
$$ {\tt X \cdot LN(\frac {X+1}{X-1})+ \frac{3}{2} \cdot LN(|X-1|)+\frac{3}{2} \cdot LN(|X+1|)} $$
Exercice 3\\
Calculer :
$$\int \frac {2}{x^6+2 \cdot x^4+x^2} \ dx $$
On tape :
$${\tt INTVX(\frac {2}{X^6+2 \cdot X^4+X^2})}$$
On trouve :
$${\tt -3 \cdot ATAN(X)-\frac {2}{X}-\frac {X}{X^2+1}} $$
Remarque :\\
On peut aussi taper :
$${\tt \int_1^X \frac {2}{X^6+2 \cdot X^4+X^2} \ dX} $$
qui donne le m\^eme résultat plus une constante égale à : 
$${\tt \frac{3.\pi+10}{4}}$$
Exercice 4\\
Calculer :
$$\int \frac {1}{\sin(x)+\sin(2 \cdot x )} \ dx $$
On tape :
$${\tt INTVX(\frac {1}{SIN(X)+SIN(2 \cdot X )})}$$
On trouve :
 $${\tt \frac {1}{6}\cdot LN(|COS(X)-1|)+\frac {1}{2}\cdot LN(|COS(X)+1|)+}$$
$${\tt \frac {-2}{3} \cdot LN(|2\cdot COS(X)+1|)} $$ 
Remarque : si le paramètre de {\tt INTVX} est le {\tt AND} de deux éléments,
{\tt INTVX} n'agit que sur le deuxième élément du {\tt AND}.
\subsection{\tt  LIMIT}\index{LIMIT}
Trouver pour $n>2$, la limite quand $x$ tend vers 0 de :
$$ \frac{n\times \tan(x)-\tan(n\times x)}{\sin(n\times  x)-n\times \sin(x)}$$
On utilise la commande {\tt LIMIT}.\\
On tape :
$${\tt LIMIT \left( \frac{N \cdot TAN(X)-TAN(N \cdot X)}{SIN(N \cdot X)-N \cdot SIN(X)}, 0 \right)}$$
On obtient :
$${\tt 2 }$$
{\sc Attention}!!!\\
Pour trouver une limite quand $x$ tend vers $a^+$ (resp $a^-$), le deuxi\`eme argument s'\'ecrit :\\
${\tt X=A+0}$ (resp ${\tt X=A-0}$), voir aussi \ref{sec:limit}.\\
Trouver la limite quand $x$ tend vers $+\infty$ de :
$$\sqrt{x+\sqrt{x+\sqrt x}}-\sqrt x$$ 
On tape :
$${\tt LIMIT (\sqrt{X+\sqrt{X+\sqrt{X}}}-\sqrt{X}, +\infty)} $$
On obtient au bout d'un moment :
$$\frac{1}{2}$$
{\sc Attention}!!!\\
$\infty$ peut s'obtenir gr\^ace au raccourci clavier : {\tt SHIFT 0}\\
 ${\tt {-\infty}}$ s'obtient alors en tapant :
$${\tt  (-)\ \infty}$$
${\tt {+\infty}}$ s'obtient alors en tapant :
$${\tt (-) \ (-)\ \infty}$$
On trouve aussi ${\tt \infty}$  dans le menu {\tt Constant}
de la touche {\tt MATH}.
\subsection{\tt  LIMIT et $\int$}\index{LIMIT}
D\'eterminer la limite quand $a$ tend vers plus l'infini de :
$$  \int _2^a (\frac {x}{x^2-1}+\ln(\frac {x+1}{x-1}))\ dx$$
On tape dans l'éditeur d'équations :
$${\tt \int _2^{+\infty} (\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))\ dX} $$
{\sc Attention}, ${\tt {+\infty}}$ s'obtient en tapant :
$${\tt  {(-) \ (-) \ \infty}\ (SHIFT\ 0)\ }$$ 
On obtient :
$${\tt +\infty-\frac{7.LN(3)}{2} }$$
et après simplification :
$$+\infty$$
\subsection{\tt PREVAL}\index{PREVAL}
{\tt PREVAL} a trois paramètres : une expression {\tt F(VX)} dépendant de la variable contenue dans {\tt VX}  et deux expressions {\tt A} et {\tt B}.\\
{\tt PREVAL(F(X,A,B)}  renvoie {\tt F(B)-F(A)}.\\
 {\tt PREVAL} est utile pour calculer une intégrale définie à partir 
d'une primitive : on évalue cette primitive entre les deux bornes de l'intégrale.\\
On tape :\\
$${\tt PREVAL(X^2+X,2,3)} $$
On obtient :\\
$$12-6$$
\subsection{\tt RISCH}\index{RISCH}
{\tt RISCH} a deux paramètres : une expression et un nom de variable.\\
{\tt RISCH} renvoie une primitive du premier paramètre par rapport à la 
variable spécifiée en deuxième paramètre.\\
On tape :
$${\tt RISCH((2.X^2+1).EXP(X^2+1),X) }$$
On obtient :
$${\tt X.EXP(X^2+1)}$$
Remarque : si le paramètre de {\tt  RISCH} est le {\tt AND} de deux éléments,
{\tt  RISCH} n'agit que sur le deuxième élément du {\tt AND}.
\section{Développements limit\'es et asymptotiques }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt DIFF} du
bandeau.\\
Il est d'usage d'écrire les développements selon les puissances croissantes 
de la variable, on fera donc le choix ${\tt 1+x+x^2...}$ dans {\tt CFG}. 
\subsection{\tt DIVPC}\index{DIVPC}
{\tt DIVPC} a trois arguments : deux polyn\^omes ${\tt A(X),\ B(X)}$  (avec\\ 
${\tt B(0) \neq 0}$) et
 un entier ${\tt n}$.\\
{\tt DIVPC} renvoie le quotient ${\tt Q(X)}$ de la division de  ${\tt A(X)}$ par ${\tt B(X)}$ 
selon les puissances croissantes avec  deg${\tt (Q )\leq n}$ ou ${\tt Q=0}$. \\
$Q[X]$ est donc le
d\'eveloppement limit\'e d'ordre $n$ de $\frac{A[X]}{B[X]}$ au 
voisinage de $X=0$. \\ 
On tape :
$${\tt DIVPC(1+X^2+X^3,1+X^2,5)}$$
On obtient :
$${\tt 1+X^3-X^5}$$
{\sc Attention} : la machine demande à passer en ``puissances croissantes'', r\'epondre {\tt yes}.
\subsection{\tt LIMIT}\index{LIMIT}\label{sec:limit}
{\tt LIMIT} a comme arguments une expression dépendant d'une variable et une 
égalité (variable = la valeur o\`u l'on veut calculer la limite).\\ 
Le nom de la variable peut \^etre omis quand il s'agit de la variable courante
(celle dont le nom se trouve dans {\tt VX}).\\
Il est souvent préférable d'écrire l'expression quotée :\\
{\tt QUOTE(expression)}\index{QUOTE}, pour éviter 
une réécriture de cette expression sous forme normale (pour ne pas avoir une
simplification rationnelle des arguments) avant l'exécution de la commande {\tt LIMIT}.\\   
On tape par exemple :
$${\tt LIMIT(QUOTE((2X-1) \cdot EXP(\frac{1}{X-1})),X=+\infty)}$$
On obtient :
$$+\infty$$
Pour calculer une limite \`a droite (resp une limite \`a gauche) 
on tape par exemple :
$${\tt LIMIT(\frac{1}{X-1},QUOTE(1+0))}$$
On obtient si {\tt X} est la variable courante :
$$+\infty$$
$${\tt LIMIT(\frac{1}{X-1},QUOTE(1-0))}$$
On obtient si {\tt X} est la variable courante :
$$-\infty$$
Il n'est pas n\`ecessaire de quoter le deuxi\`eme argument quand il est 
\'ecrit avec le signe {\tt =} par exemple :\\
$${\tt LIMIT(\frac{1}{X-1},X=1+0)}$$
On obtient :
$$+\infty$$
\subsection{\tt SERIES}\index{SERIES} 
\begin{itemize}
\item  développement au voisinage de {\tt x=a}\\
Exemple :\\
Donner un développement limit\'e  \`a l'ordre 4 au voisinage de 
$x=\frac{\pi}{6}$ de $\cos(2\times x)^2$.\\
On utilise la commande {\tt SERIES}.\\
On tape :
$${\tt SERIES( COS(2 \cdot X)^2 , X=\frac{\pi}{6} , 4 )}$$
On obtient :
$${\tt \ (\frac{1}{4}-\sqrt 3 h+2h^2+\frac {8 \sqrt {3}}{3}h^3- \frac {8}{3}h^4 )|_{\ \displaystyle h=X- \frac{ \pi}{6}}}$$
\item  développement au voisinage de {\tt x=+$\infty$} ou  {\tt x=-$\infty$}\\
Exemple 1 :\\
Donner un développement de $\arctan(x)$ à l'ordre 5 au voisinage de
 {\tt x=+$\infty$} en prenant comme infiniment petit $h=\frac{1}{x}$.\\
On tape :
$${\tt SERIES(ATAN(X),X=+\infty,5)}$$
On obtient  :
$${\tt (\frac{\pi}{2}-h+\frac{h^3}{3}-\frac{h^5}{5})|_{\ \displaystyle h=\frac{1}{X}}}$$
Exemple 2 :\\
Donner un développement de $(2x-1)e^\frac{1}{x-1}$ à l'ordre 2 au voisinage de
 {\tt x=+$\infty$} en prenant comme infiniment petit $h=\frac{1}{x}$.\\
On tape :
$${\tt SERIES((2X-1) \cdot EXP(\frac{1}{X-1}),X=+\infty,3)}$$
On obtient  :
$${\tt (\frac{2+h+2h^2+\frac{17h^3}{6}}{h})|_{\ \displaystyle h=\frac{1}{X}}}$$
Exemple 3 :\\
Donner un développement de $(2x-1)e^\frac{1}{x-1})$ à l'ordre 2 au voisinage de
 {\tt x=-$\infty$} en prenant comme infiniment petit $h=-\frac{1}{x}$.\\
On tape :
$${\tt SERIES((2X-1) \cdot EXP(\frac{1}{X-1}),X=-\infty,3)}$$
On obtient  :
$${\tt (\frac{-2+h-2h^2+\frac{17h^3}{6}}{h})|_{\displaystyle h=-\frac{1}{X}}}$$
\item  développement unidirectionnel\\
Il faut utiliser pour l'ordre un réel positif (par exemple 4.) pour faire un développement 
au voisinage de $x=a$ avec $ \ x>a$ et un  réel négatif (par exemple -4.)
 pour faire un développement au voisinage de $x=a$ avec $ \ x<a$ .\\
Exemple 1 :\\
Donner un développement de $\ \frac{(1+X)^\frac{1}{X}}{X^3}\ $ à l'ordre 2, au voisinage de
$X=0^+$.\\
On tape :
$${\tt SERIES(\frac{(1+X)^\frac{1}{X}}{X^3} ,X,2.)}$$
On obtient :
$${\tt (-\frac{-2.e+e.h}{2.h^3})|_{\displaystyle h=X}}$$
Exemple 2 :\\
Donner un développement de $\ \frac{(1+X)^\frac{1}{X}}{X^3}\ $ à l'ordre 2, au voisinage de
$X=0^-$.\\
On tape :
$${\tt SERIES(\frac{(1+X)^\frac{1}{X}}{X^3} ,X,-2.)}$$
On obtient  :
$${\tt  (-\frac{-2.e+e.h}{2.h^3})|_{\displaystyle h=X}}$$
Exemple 3 :\\
Donner un développement de $\ \frac{(1+X)^\frac{1}{X}}{X^3}\ $ à l'ordre 2, au voisinage de $X=0$.\\
On tape :
$${\tt SERIES(\frac{(1+X)^\frac{1}{X}}{X^3} ,X,2)}$$
On obtient :
$${\tt  (-\frac{-2.e+e.h}{2.h^3})|_{\displaystyle h=X}}$$
\end{itemize}
\subsection{\tt  TAYLOR0}\index{TAYLOR0} 
{\tt  TAYLOR0} a un seul argument : la fonction de $x$  à développer, et renvoie 
son développement limité à l'ordre relatif 4 au voisinage de $x=0$ (si $x$ est la variable courante).\\ 
On tape :
$${\tt TAYLOR0(\frac{TAN(P.X)-SIN(P.X)}{TAN(Q.X)-SIN(Q.X)}) }$$
On obtient :
$${\tt \frac{P^3}{Q^3}+\frac{P^5-Q^2.P^3}{4.Q^3}.X^2}$$
{\sc Attention} : l'ordre 4 veut dire que l'on d\'eveloppe \`a l'ordre relatif 4 
le num\'erateur et le  d\'enominateur (ici ordre absolu 5 pour le num\'erateur
 et le d\'enominateur, ce qui donne en fin de compte, un ordre 2 (5-3) puisque
 la valuation du d\'enominateur est égale à 3 ).
\subsection{\tt TRUNC}\index{TRUNC}
{\tt TRUNC} permet de tronquer un polyn\^ome à un ordre donné (utile quand on fait des 
développements limités).\\
{\tt TRUNC} a deux arguments : un polyn\^ome et  $ X^n$.\\ 
{\tt TRUNC} renvoie le polyn\^ome tronqué à l'ordre $n-1$ : on n'a pas de 
termes  de degré $\geq n$.\\
On tape :
$${\tt TRUNC({(1+X+\frac{1}{2}.X^2)}^3\ ,\ X^4)}$$
On obtient :
$${\tt 1+3.X+\frac{9}{2}.X^2+4.X^3}$$
\section{Les Fonctions de réécriture}
Toutes les fonctions de ce paragraphe se trouvent dans le menu {\tt REWRITE}
du bandeau.
\subsection{\tt DISTRIB}\index{DISTRIB}
{\tt DISTRIB} permet d'appliquer la distributivité de la multiplication par 
rapport à l'addition une fois.\\
{\tt DISTRIB} permet, quand on l'applique plusieurs fois, d'effectuer la 
distributivité pas à pas.\\
On tape :
$${\tt DISTRIB((X+1)\cdot(X+2)\cdot(X+3))}$$
On obtient :
$${\tt X\cdot(X+2)\cdot(X+3)+1\cdot(X+2)\cdot(X+3) }$$
\subsection{\tt EPSX0}\index{EPSX0}\label{sec:epsx0}
{\tt EPSX0} a  comme paramètre une expression  de {\tt X} et renvoie 
l'expression o\`u les valeurs plus petites que {\tt EPS} ont été remplacées par zéro.\\
On tape :
$${\tt EPSX0(0.001+X)}$$
On obtient (avec {\tt EPS=0.01}) :
$${\tt 0+X}$$
On obtient (avec {\tt EPS=0.0001}) :
$${\tt .001+X}$$
\subsection{\tt EXP2POW}\index{EXP2POW}
{\tt  EXP2POW} permet de transformer une expression de la forme :\\
 $\exp(n \times \ln(x))$ en une puissance de $x$.\\
On tape :
$${\tt  EXP2POW(EXP(N\cdot LN(X))) }$$
On obtient :
$${\tt X^N}$$
Bien voir la différence avec {\tt  LNCOLLECT} :\\
on a :\\
${\tt  LNCOLLECT(EXP(N\cdot LN(X))) = EXP(N\cdot LN(X)) }$\\
${\tt  LNCOLLECT(EXP(LN(X)/3))\ =\ EXP(LN(X)/3) }$\\
${\tt  EXP2POW(EXP(LN(X)/3))\ = \ X^\frac{1}{3} }$\\
\subsection{\tt EXPLN}\index{EXPLN}
{\tt EXPLN} a comme argument une expression trigonométrique.\\
{\tt EXPLN} transforme les fonctions trigonométriques en exponentielles et
logarithmes {\sc sans} linéariser.\\ 
{\tt EXPLN} fait passer en {\tt mode complexe}.\\
On tape :\\
$${\tt EXPLN(SIN(X))}$$
On obtient :\\
$${\tt \frac{EXP(i.X)-\frac{1}{EXP(i.X)}}{2.i}}$$
\subsection{\tt FDISTRIB}\index{FDISTRIB}
{\tt FDISTRIB} permet d'effectuer la distributivité de la multiplication par 
rapport à l'addition en une seule fois.\\
On tape :
$${\tt FDISTRIB((X+1)\cdot(X+2)\cdot(X+3))}$$
On obtient :
$${\tt X^3+6\cdot X^2+11\cdot X+6 }$$
\subsection{\tt LIN}\index{LIN}
{\tt LIN} a comme argument une expression contenant des exponentielles et des 
fonctions trigonométriques.\\
{\tt LIN} linéarise cette expression (l'exprime en fonction de $\exp(n.x)$).\\
{\tt LIN} fait passer en {\tt mode complexe} quand il y a des fonctions
 trigonométriques.\\ 
Exemple 1 :\\
On tape :\\
$${\tt LIN((SIN(X))}$$
On obtient :\\
$${\tt -(\frac{i}{2}.EXP(i.X))+\frac{i}{2}.EXP(-(i.X))}$$
Exemple 2 :\\
On tape :\\
$${\tt LIN((COS(X)^2)}$$
On obtient :\\
$${\tt -(\frac{1}{4}.EXP(2.i.X))+\frac{1}{2}+\frac{1}{4}.EXP(-(2.i.X))}$$
Exemple 3 :\\
On tape :\\
$${\tt LIN((EXP(X)+1)^3)}$$
On obtient :\\
$${\tt 3.EXP(X)+1+3.EXP(2.X)+EXP3.X)}$$
\subsection{\tt LNCOLLECT}\index{LNCOLLECT}
{\tt LNCOLLECT} a comme argument une expression contenant des logarithmes.\\
{\tt LNCOLLECT} regroupe les termes en logarithmes. Il est donc préférable
de l'utiliser sur une expression factorisée (en utilisant {\tt FACTOR}).\\
On tape :\\
$${\tt  LNCOLLECT(LN(X+1)+LN(X-1))}$$
On obtient :\\
$${\tt LN((X+1)(X-1))}$$
\subsection{\tt POWEXPAND}\index{POWEXPAND}
{\tt POWEXPAND} écrit une puissance sous la forme d'un produit. \\
On tape :
$${\tt  POWEXPAND((X+1)^3)}$$
On obtient :
$${\tt (X+1)\cdot (X+1)\cdot (X+1)}$$
Cela permet ainsi de faire le développement de $(x+1)^3$ en pas à pas actif,
en appliquant {\tt DISTRIB} plusieurs fois au résultat précédent.
\subsection{\tt SIMPLIFY}\index{SIMPLIFY}
{\tt SIMPLIFY} simplifie  l'expression de façon automatique.\\
Comme toute simplification automatique, il ne faut pas s'attendre à des miracles et pourtant...\\ 
%On n'utilise {\tt TSIMP} qu'en dernier ressort.\\ 
On tape :\\
$${\tt SIMPLIFY(\frac{SIN(3.X)+SIN(7.X)}{SIN(5.X)})}$$
On obtient après simplification :\\
$${\tt 4.COS(X)^2-2}$$
\subsection{\tt XNUM}\index{XNUM}
{\tt XNUM} a comme paramètre une expression.\\
{\tt XNUM} fait passer en mode approximatif et renvoie la valeur numérique de
l'expression.\\
 On tape :
$${\tt XNUM(\sqrt2)}$$ 
On obtient :
$${\tt 1.41421356237}$$
\subsection{\tt XQ}\index{XQ}
{\tt XQ} a comme paramètre une expression numérique réelle.\\
{\tt XQ} fait passer en mode exact et donne une approximation rationnelle ou réelle de l'expression.\\
On tape :
$${\tt XQ(1.41422)}$$
On obtient :
$${\tt \frac{66441}{46981}}$$
On tape :
$${\tt XQ(1.414213562)}$$
On obtient :
$${\tt \sqrt2}$$
\section{Équations}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt SOLV} du
bandeau.
\subsection{\tt ISOLATE}\index{ISOLATE}
{\tt ISOLATE} isole une variable  dans une expression ou une équation.\\
{\tt ISOLATE} a deux paramètres  une expression ou une équation et le nom de la variable \`a isoler.\\
{\sc Attention} : {\tt ISOLATE} ne renvoie qu'une solution.\\ 
 On tape :\\
$${\tt  ISOLATE(X^4-1=3,X)}$$
On obtient :
%en mode réel:\\
$${\tt (X=\sqrt2)}$$
\subsection{\tt SOLVEVX}\index{SOLVEVX}
{\tt SOLVEVX} a comme paramètre  une équation entre deux 
expressions de la variable contenue dans {\tt VX} ou une 
expression ({\tt =0 } est alors sous-entendu). \\
{\tt SOLVEVX} résout l'équation dans $\mathbb{R}$ en mode réel et dans 
$\mathbb{C}$ en mode complexe (sans tenir compte de {\tt REALASSUME}).\\
 Exemple 1 :\\
On tape :\\
$${\tt  SOLVEVX(X^4-1=3)}$$
On obtient en mode réel :\\
$${\tt (X=-\sqrt{2}) \ OR \ (X=\sqrt{2})}$$
On obtient en mode complexe :\\
$${\tt (X=-\sqrt{2})\ OR \ (X=\sqrt{2})\ OR \ (X=-i.\sqrt{2})\ OR\ (X=i\sqrt{2})}$$
 Exemple 2 :\\
On tape :\\
$${\tt  SOLVEVX((X-2).SIN(X))}$$
On obtient en mode réel:\\
$${\tt (X=-2.\pi.n_1)\ OR\ (X=2.\pi.n_1)\ OR \ (X=2)}$$
\subsection{\tt SOLVE}\index{SOLVE}
{\tt SOLVE} a comme arguments une équation entre deux 
expressions ou une expression ({\tt =0 }est alors sous-entendu), 
et le nom d'une variable. \\
{\tt SOLVE} résout l'\'equation dans $\mathbb{R}$ en mode réel et dans 
$\mathbb{C}$ en mode complexe (sans tenir compte de {\tt REALASSUME}).\\
 On tape :\\
$${\tt  SOLVE(X^4-1=3,X)}$$
On obtient en mode réel :\\
$${\tt (X=-\sqrt{2}) \ OR \ (X=\sqrt{2})}$$
On obtient en mode complexe :\\
$${\tt (X=-\sqrt{2})\ OR \ (X=\sqrt{2})\ OR \ (X=-i.\sqrt{2})\ OR\ (X=i\sqrt{2})}$$
%On obtient en mode complexe:\\
%$${\tt (X=-\sqrt2)\ OR \ (X=\sqrt2)\ OR\ (X=-(i.\sqrt2))\ OR\ (X=i\sqrt2)}$$
\section{Les syst\`emes lin\'eaires}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt SOLV} du
bandeau.
\subsection{\tt LINSOLVE}\index{LINSOLVE}
{\tt LINSOLVE} permet de r\'esoudre un syst\`eme d'\'equations lin\'eaires.\\
On suppose les différentes équations écrites sous la forme :\\
 $expression=0$.\\
{\tt LINSOLVE} a deux  arguments :\\
 les premiers membres des différentes équations séparés par {\tt AND}  et
les noms des différentes variables séparés par {\tt AND}.\\
Exemple 1:\\
On tape :\\
$${\tt LINSOLVE(X+Y+3\ AND\ X-Y+1,X\ AND\ Y)}$$
On obtient :\\
$${\tt (X=-2)\ AND\ (Y=-1)}$$
On obtient si on est en mode pas à pas  ({\tt CFG} etc...) :\\
{\tt L2=L2-L1}\\
$ \left[\begin{array}{ccc}1&1&3\\1&-1&1 \end{array}\right] $\\
 {\tt ENTER}\\
{\tt L1=2L1--L2}\\
$ \left[\begin{array}{ccc}1&1&3\\0&-2&-2 \end{array}\right] $\\
 {\tt ENTER}\\
{\tt Reduction  Result}\\
$ \left[\begin{array}{ccc}2&0&4\\0&-2&-2 \end{array}\right] $\\
 {\tt ENTER}\\
Il s'écrit alors dans l'éditeur :\\
$${\tt (X=-2)\ AND\ (Y=-1)}$$
Exemple 2 :\\
On tape :\\
$${\tt (2 \cdot X+Y+Z=1)\ AND\ (X+Y+ 2 \cdot Z=1)\ AND \ (X+2 \cdot Y+Z=4)}$$
puis on appelle  {\tt LINSOLVE}\\
puis, on tape les inconnues :
$${\tt X \ AND \ Y \ AND\ Z}$$
et {\tt  \  ENTER}\\
On obtient si on est en mode pas à pas  ({\tt CFG} etc...) :\\
{\tt L2=2L2-L1}\\

$ \left[\begin{array}{cccc}2&1&1&-1\\1&1&2 &-1\\1&2&1&-4 \end{array}\right] $\\

puis {\tt ok}\\

{\tt L3=2L3-L1}\\

$ \left[\begin{array}{cccc}2&1&1&-1\\0&1&3 &-1\\1&2&1&-4 \end{array}\right] $\\

etc...à la fin

{\tt Reduction Result}\\

$ \left[\begin{array}{cccc}8&0&0&4\\0&8&0 &-20\\0&0&8&-4 \end{array}\right] $\\

puis  {\tt ENTER}\\
$${\tt (X=-\frac{1}{2})\ AND\ (Y=\frac{5}{2})\ AND\ (Z=-\frac{1}{2})}$$ 
s'écrit dans l'éditeur.
\section{Les \'equations diff\'erentielles }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt SOLV} du
bandeau.
\subsection{\tt DESOLVE et SUBST}\index{DESOLVE}
{\tt DESOLVE} permet de  r\'esoudre d'autres  \'equations diff\'erentielles.\\
Les param\`etres sont : l'\'equation diff\'erentielle (o\`u $y \prime$ s'\'ecrit  ${\tt d1Y(X)}$) et
 l'inconnue {\tt Y(X)}. \\
Exemple 1 :\\
Résoudre :
$$y''+y=\cos (x) \; \; y(0)=c_0 \; \; y'(0)=c_1$$
On tape : 
$${\tt DESOLVE(d1d1Y(X)+Y(X)=COS(X),Y(X))}$$
On trouve :
$${\tt Y(X)=cC0\cdot COS(X)+ \frac {X+2 \cdot cC1}{2}\cdot SIN(X)}$$
{\tt cC0} et {\tt cC1} sont les constantes d'intégration (${\tt y(0)=cC0 \ y\prime(0)=cC1}$).\\
On peut ensuite donner une valeur aux constantes en utilisant la commande
{\tt SUBST}\index{SUBST}.
On écrit, si veut les solutions vérifiant $y(0)=1$ :
$${\tt SUBST ( Y(X)=cC0\cdot COS(X)+ \frac {X+2 \cdot cC1}{2}\cdot SIN(X), cC0=1)}$$
On obtient :
$${\tt Y(X)=\frac {2\cdot COS(X)+  (X+2 \cdot cC1)\cdot SIN(X)}{2}} $$
Exemple 2 :\\
Résoudre :
$$y''+y=\cos (x) \; \; y(0)=1 \; \; y'(0)=c_1$$
Pour avoir les solutions vérifiant $y(0)=1$ on peut aussi taper directement : 
$${\tt DESOLVE((d1d1Y(X)+Y(X)=COS(X)) AND (Y(0)=1),Y(X))}$$
On trouve alors :
$${\tt Y(X)= COS(X)+ \frac {X+2 \cdot cC1}{2}\cdot SIN(X)}$$
\subsection{\tt LDEC}\index{LDEC}
{\tt LDEC} permet de r\'esoudre directement  les \'equations lin\'eaires à
coefficients constants.\\
Les param\`etres sont le second membre et l'\'equation caract\'eristique.\\
Résoudre :\\
$$y\prime \prime -6. y\prime+9. y \ =\ x. e^{3. x}$$
On tape :
$${\tt LDEC(X \cdot EXP(3 \cdot X),X^2-6 \cdot X+9)}$$
On trouve :
$${\tt ( \frac{X^3}{6}-(3 \cdot cC0-cC1) \cdot X+cC0) \cdot EXP(3 \cdot X)}$$
{\tt cC0} et {\tt cC1} sont les constantes d'intégration (${\tt y(0)=cC0 \ y\prime(0)=cC1}$).
\section{Les expressions trigonométriques}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt TRIG} du
bandeau.
\subsection{\tt ACOS2S}\index{ACOS2S}
{\tt ACOS2S} a comme argument une expression trigonométrique.\\
{\tt ACOS2S}  transforme cette expression en remplaçant :\\
 $\arccos(x)$ par $\displaystyle \frac{\pi}{2}-\arcsin(x)$.\\
On tape :\\
$${\tt ACOS2S(ACOS(X)+ASIN(X))}$$
On obtient :\\
$${\tt \frac{\pi}{2}}$$
\subsection{\tt ASIN2C}\index{ASIN2C}
{\tt ASIN2C} a comme argument une expression trigonométrique.\\
{\tt ASIN2C} transforme cette expression en remplaçant :\\
$\arcsin(x)$ par 
$\displaystyle \frac{\pi}{2}-\arccos(x)$.\\
On tape :\\
$${\tt ASIN2C(ACOS(X)+ASIN(X))}$$
On obtient :\\
$${\tt \frac{\pi}{2}}$$
\subsection{\tt ASIN2T}\index{ASIN2T}
{\tt ASIN2T} a comme argument une expression trigonométrique.\\
{\tt ASIN2T} transforme cette expression en remplaçant :\\
 $\arcsin(x)$ par 
$\displaystyle \arctan(\frac{x}{\sqrt{1-x^2}})$.\\
On tape :\\
$${\tt ASIN2T(ASIN(X))}$$
On obtient :\\
$${\tt ATAN(\frac{X}{\sqrt{1-X^2}})}$$
\subsection{\tt ATAN2S}\index{ATAN2S}
{\tt ATAN2S} a comme argument une expression trigonométrique.\\
{\tt ATAN2S} transforme cette expression en remplaçant :\\
$\arctan(x)$ par $\displaystyle \arcsin(\frac{x}{\sqrt{1+x^2}})$.\\
On tape :\\
$${\tt ATAN2S(ATAN(X))}$$
On obtient :\\
$${\tt ASIN(\frac{X}{\sqrt{X^2+1}})}$$
\subsection{\tt HALFTAN}\index{HALFTAN}
{\tt HALFTAN} a comme argument une expression trigonométrique.\\
{\tt HALFTAN} transforme les $\sin(x) \cos(x)$ et $ \tan(x)$ contenus dans 
l'expression en fonction de $\displaystyle \tan(\frac{x}{2})$.\\
On tape :\\
$${\tt HALFTAN(\frac{SIN(2.X)}{1+COS(2.X)})}$$
On obtient  après simplification :\\
$${\tt TAN(X)}$$
On tape :\\
$${\tt HALFTAN( SIN(X)^2+COS(X)^2)}$$
On obtient (${\tt SQ(X)=  X^2}$):\\
$${\tt {\left(\frac{2.TAN(\frac{X}{2})}{SQ(TAN(\frac{X}{2}))+1}\right)}^2+ {\left(\frac{1-SQ(TAN(\frac{X}{2}))}{SQ(TAN(\frac{X}{2}))+1}\right)}^2 }$$
On obtient après simplification:\\
$${\tt 1}$$
\subsection{\tt SINCOS}\index{SINCOS}
{\tt SINCOS} a comme argument une expression contenant des exponentielles
 complexes.\\
{\tt SINCOS} transforme cette expression en fonction de $\sin(x)$ et de $\cos(x)$.\\
On tape :\\
$${\tt SINCOS(EXP(i.X))}$$
On obtient :\\
$${\tt COS(X)+i.SIN(X)}$$
\subsection{\tt TAN2CS2}\index{TAN2CS2}
{\tt TAN2CS2} a comme argument une expression trigonométrique.\\
{\tt TAN2CS2} transforme cette  expression en remplaçant :\\
$\tan(x)$ par   $\displaystyle  \frac{1-\cos(2.x)}{\sin(2.x)}$\\
On tape :\\
$${\tt TAN2CS2(TAN(X))}$$
On obtient :\\
$${\tt \frac{1-COS(2.X)}{SIN(2.X)}}$$
\subsection{\tt TAN2SC}\index{TAN2SC}
{\tt TAN2SC} a comme argument une expression trigonométrique.\\
{\tt TAN2SC} transforme cette expression en remplaçant :\\
 $\tan(x)$ par $\displaystyle \frac{\sin(x)}{\cos(x)}$.\\
On tape :\\
$${\tt TAN2SC(TAN(X))}$$
On obtient :\\
$${\tt \frac{SIN(X)}{COS(X)}}$$
\subsection{\tt TAN2SC2}\index{TAN2SC2}
{\tt TAN2SC2} a comme argument une expression trigonométrique.\\
{\tt TAN2SC2} transforme cette  expression en remplaçant :\\
$\tan(x)$ par $\displaystyle \frac{\sin(2.x)}{1+\cos(2.x)}$.\\
On tape :\\
$${\tt TAN2SC2(TAN(X))}$$
On obtient :\\
$${\tt \frac{SIN(2.X)}{1+COS(2.X)}}$$
\subsection{\tt TCOLLECT}\index{TCOLLECT}
{\tt TCOLLECT} a comme argument une expression trigonométrique.\\
{\tt TCOLLECT} linéarise cette expression en fonction de $\sin(n.x)$ et $\cos(n.x)$  puis rassemble, {\tt en mode réel}, les sinus et les cosinus de m\^eme angle.\\
On tape :\\
$${\tt TCOLLECT(SIN(X)+COS(X))}$$
On obtient :\\
$${\tt \sqrt2.COS(X-\frac{\pi}{4})}$$
\subsection{\tt TEXPAND}\index{TEXPAND}
{\tt TEXPAND} a comme argument une expression trigonométrique.\\
{\tt TEXPAND} développe cette expression en fonction de $\sin(x)$ et $\cos(x)$.\\
Exemple 1 :\\
On tape :\\
$${\tt TEXPAND( COS(X+Y))}$$
On obtient :\\
$${\tt COS(Y).COS(X)-SIN(Y).SIN(X)}$$
Exemple 2 :\\
On tape :\\
$${\tt TEXPAND( COS(3.X))}$$
On obtient :\\
$${\tt 4.{COS(X)}^3-3.COS(X)}$$
Exemple 3 :\\
On tape :\\
$${\tt TEXPAND( \frac{SIN(3.X)+SIN(7.X)}{SIN(5.X)})}$$
On obtient après une simplification (${\tt ENTER}$) :\\
$${\tt 4.{COS(X)}^2-2}$$
\subsection{\tt TLIN}\index{TLIN}
{\tt TLIN} a comme argument une expression trigonométrique.\\
{\tt TLIN} linéarise cette expression en fonction de $\sin(n.x)$ et $\cos(n.x)$.\\
Exemple  :\\
On tape :\\
$${\tt TLIN(COS(X). COS(Y))}$$
On obtient :\\
$${\tt \frac{1}{2}.COS(X-Y)+\frac{1}{2}.COS(X+Y)}$$
Exemple 2 :\\
On tape :\\
$${\tt TLIN({COS(X)}^3)}$$
On obtient :\\
$${\tt \frac{1}{4}.COS(3.X)+\frac{3}{4}.COS(X)}$$
Exemple 3 :\\
On tape :\\
$${\tt TLIN(4.{COS(X)}^2-2)}$$
On obtient :\\
$${\tt 2.COS(2.X)}$$
\subsection{\tt TRIG}\index{TRIG}
{\tt TRIG} a comme argument une expression trigonométrique.\\
{\tt TRIG} simplifie cette expression à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :\\
$${\tt TRIG(SIN(X)^2+COS(X)^2+1)}$$
On obtient :\\
$${\tt 2}$$
\subsection{\tt TRIGCOS}\index{TRIGCOS}
{\tt TRIGCOS} a comme argument une expression trigonométrique.\\
{\tt TRIGCOS} simplifie cette expression, en
privilégiant les cosinus,  à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :\\
$${\tt TRIGCOS(SIN(X)^4+COS(X)^2+1)}$$
On obtient :\\
$${\tt COS(X)^4-COS(X)^2+2}$$
\subsection{\tt TRIGSIN}\index{TRIGSIN}
{\tt TRIGSIN} a comme argument une expression trigonométrique.\\
{\tt TRIGSIN} simplifie cette expression, en
privilégiant les sinus,  à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :\\
$${\tt TRIGSIN(SIN(X)^4+COS(X)^2+1)}$$
On obtient :\\
$${\tt SIN(X)^4-SIN(X)^2+2}$$
\subsection{\tt TRIGTAN}\index{TRIGTAN}
{\tt TRIGTAN} a comme argument une expression trigonométrique.\\
{\tt TRIGTAN} simplifie cette expression, en
privilégiant les tangentes, à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :\\
$${\tt TRIGTAN(SIN(X)^4+COS(X)^2+1)}$$
On obtient :\\
$${\tt \frac{2.TAN(X)^4+3.TAN(X)^2+2}{TAN(X)^4+2.TAN(X)^2+1}}$$
\chapter{Exercices traités avec la HP40}
\section{Introduction }
Commencez par sélectionner le {\tt CAS} :\\
 pour cela appuyer sur {\tt F6} pour {\tt CAS} du bandeau. \\
%Si {\tt CAS} n'apparait pas dans le bandeau appuyer sur {\tt F2} cela le fera appara\^itre.\\
Les différentes commandes utilisées dans ce chapitre se trouvent :\\
- dans les menus de l'éditeur d'équations :\\ 
{\tt ALGB(CFG  DEF FACTOR SUBST TEXPAND)}\\
{\tt DIFF (DERIVX DERIV INTVX INT LIMIT TABVAR)}\\
%{\tt GRAPH (SIGNTAB TABVAR)}\\
{\tt REWRITE (DISTRIB LIN POWEXPAND XNUM)}\\
{\tt SOLV (LINSOLV)}\\
- et dans le menu de la touche {\tt MATH} :\\
{\tt Complex   (DROITE RE IM) },\\
{\tt Integer (IEGCD ISPRIME? PROPFRAC)}.\\ 
Puis mettre la calculatrice en mode algébrique réel exact :\\
pour cela appuyer sur 
%{\tt SHIFT SYMB (SETUP)}
 {\tt ALG} du bandeau et mettre en surbrillance {\tt CFG}, puis {\tt OK} du bandeau. \\
Il suffit alors de choisir {\tt Default cfg} puis {\tt OK} du bandeau, vous 
pouvez aussi choisir le mode {\tt Direct} ou le mode pas à pas 
({\tt Step/Step}), puis 
quitter ce menu de configuration avec {\tt CANCEL} du bandeau.\\
Après chaque commande, il faut taper {\tt ENTER}, on oubliera souvent de le 
spécifier!!!\\
Dans ce qui suit, vous trouverez une partie de l'épreuve de mathématiques 1999 
 du Brevet d'Amiens et de l'épreuve de mathématiques 1999 (série S)  du Bac.\\
 On a essayé de faire faire le plus de choses possibles à la HP40G...\\
On remarquera, qu'il reste quand m\^eme à l'élève le soin de justifier les 
calculs et de connaitre la démarche à suivre lorsqu'il utilise le pas à pas 
actif....  
\section{Exercices donnés au Brevet}
\subsection{Exercice 1}
On pose $A$ :\\
$$\frac{\frac{3}{2}-1}{\frac{1}{2}+1}$$
Vous ferez appara\^itre chaque étape de calcul
et vous donnerez le résultat de $A$ sous la forme d'une fraction irréductible.\\

Dans l'éditeur d'équations on entre la valeur de A,  on tape :\\
${\tt 3 \ \div \ 2\ \rhd \ -\ 1\ \rhd \rhd \ \div \ 1 \ \div \ 2\ \rhd \ +\ 1}$\\
$ \rhd$ sélectionne le dénominateur.\\ 
{\tt ENTER} fait la simplification du dénominateur, on obtient :\\
 $${\tt \frac{\frac{3}{2}-1}{\frac{3}{2}}}$$
puis on sélectionne le numérateur avec $\lhd$ \\
{\tt ENTER} fait la simplification du numérateur, on obtient :\\
$${\tt \frac{\frac{1}{2}}{\frac{3}{2}}}$$
$\bigtriangleup$ sélectionne la fraction entière et {\tt ENTER} fait la simplification de la fraction, on obtient :\\
$${\tt \frac{1}{3}}$$
\subsection{Exercice 2}
On considère le nombre $C$ :
$$C = 2\sqrt{45}+3\sqrt{12}-\sqrt{20}-6\sqrt3$$
Écrire $C$ sous la forme $d \sqrt5$ o\`u $d$ est un nombre entier.\\

Dans l'éditeur d'équations on entre la valeur de $C$, on tape :\\
${\tt 2\sqrt{\ }\ 45\ \rhd \rhd\ +\ 3\sqrt{\ }\ 12\ \rhd \rhd\ -\ \sqrt{\ }\ 20 \ \rhd \rhd\ -\ 6\sqrt{\ }\ 3}$

$\ \rhd \rhd \rhd $ sélectionne ${\tt -6\sqrt3}$ et\\
$\lhd$ sélectionne ${\tt -\ \sqrt{20}}$\\
$\bigtriangledown \bigtriangledown$ sélectionne ${\tt 20}$\\
On appelle la commande {\tt FACTOR} qui se trouve dans le menu {\tt ALGB},\\
puis {\tt ENTER} effectue la factorisation de 20 en ${\tt 2^2 \cdot 5}$,\\
$\bigtriangleup$ sélectionne ${\tt \sqrt{2^2\cdot 5}}$ et {\tt ENTER} renvoie 
${\tt 2\sqrt5}$\\
$\rhd$ sélectionne ${\tt - 2\sqrt{5}}$\\
 ${\tt SHIFT \lhd}$ échange
 ${\tt 3 \sqrt{12}}$ et ${\tt -2 \sqrt{5}}$\\
$\lhd$ sélectionne ${\tt \ 2 \sqrt{45}}$\\
$\bigtriangledown \bigtriangledown$ sélectionne ${\tt 45}$\\
On appelle la commande {\tt FACTOR} qui se trouve dans le menu {\tt ALGB},\\
puis {\tt ENTER} effectue la factorisation de 45 en ${\tt 3^2 \cdot 5}$,\\
$\bigtriangleup$ sélectionne ${\tt \sqrt{3^2\cdot 5}}$ et {\tt ENTER} remplace
${\tt \sqrt{3^2\cdot 5}}$ par  ${\tt 3\sqrt5}$\\
$ \bigtriangleup$ sélectionne ${\tt 2 \cdot 3\sqrt5}$\\
 ${\tt SHIFT \rhd}$ sélectionne 
 ${\tt 2 \cdot 3 \sqrt{5}}$ et ${\tt -2 \sqrt{5}}$
puis {\tt ENTER} effectue l'opération et on obtient :\\
 ${\tt 4\sqrt{5}}$\\
Il reste à transformer ${\tt 3 \sqrt{12}}$ et voir que ce terme se simplifie
 avec ${\tt -6 \sqrt3}$ \\
Donc :\\
$C=4 \sqrt5$
\subsection{Exercice 3}
On considère l'expression $D=(3x-1)^2-81$\\
1.Développer et réduire $D$\\
2.Factoriser $D$\\
3.Résoudre l'équation : $(3x-10)(3x+8)=0$\\
4.Calculer $D$ pour $x=-5$\\

1. On écrit $D$ dans l'éditeur d'équations :\\
On tape :\\
${\tt 3\ X \ - \ 1 \rhd \rhd \   x^y \ 2 \rhd \ - \ 81}$\\
On sélectionne ${\tt (3X-1)^2}$ ($\rhd \ \lhd$ ) puis {\tt ENTER} développe cette expression. On obtient :\\
${\tt 9X^2-6X+1-81}$\\
Pour faire du pas à pas actif on applique :\\
{\tt POWEXPAND} à ${\tt (3.X-1)^2}$
puis on applique {\tt DISTRIB} au résultat obtenu pour obtenir :\\
${\tt 9X^2-6X+1}$\\
$\bigtriangleup$ sélectionne toute l'expression et {\tt ENTER} la réduit en : \\
${\tt 9X^2-6X-80}$\\
2. On va chercher $D$ dans l'historique (touche {\tt HOME}), on met en surbrillance
$D$ puis on valide avec {\tt ENTER}.\\
On appelle {\tt FACTOR} et on obtient :\\
${\tt (3X+8)(3X-10)}$\\
On aurait pu aussi sélectionner {\tt 81} pour le factoriser en $3^4$ et reconnaitre la
diffèrence de deux carrés...\\
3. On appelle la commande {\tt SOLVEVX}, puis {\tt ENTER} renvoie :
$${\tt (X=-\frac{8}{3})\ OR\ (X=\frac{10}{3})}$$
4.On va chercher $ D$ dans l'historique (touche {\tt HOME}),  on met en surbrillance
$ D$ puis on valide avec {\tt ENTER})\\
 On appelle la fonction {\tt SUBST}, on complète le deuxième argument :\\
{\tt X=-5} puis $\rhd \rhd \rhd$ pour sélectionner le tout puis {\tt ENTER}\\
On obtient :\\
${\tt (3 \cdot (-5)-1)^2-81}$
puis {\tt ENTER} donne le résultat :\\
{\tt 175}\\  
Donc $D=175$
\subsection{Exercice 4}
Un confiseur prépare deux sortes de boites contenant des tuiles et des
 macarons.\\
Dans le paquet de la  première sorte, il place 17 tuiles et 20 macarons.\\
Dans le paquet de la deuxième sorte, il place 10 tuiles et 25 macarons.\\
Ces paquets sont vendus 90F.\\
Calculer le prix d'une tuile et celui d'un macaron.\\

Soit $x$ le prix en Francs d'une tuile et $y$ celui d'un macaron.\\
On a à résoudre :
$$
\left\{
\begin{array}{rl}
17x+20y&=90\\
10x+25y&=90
\end{array}
\right.
$$

On tape dans l'éditeur d'équations :\\
${\tt LINSOLVE(17 \cdot X+20 \cdot Y-90\ AND\ 10 \cdot X+25 \cdot Y-90\ ,\ X\ AND\ Y)}$\\
Si on est en mode pas à pas on obtient :\\

${\tt L_2=17L_2-10L_1}$\\
$\left[
\begin{array}{ccc}
17& 20& -90\\
10& 25 & -90
\end{array}
\right]$\\

${\tt L_1=45L_1-4L_2}$\\
$\left[
\begin{array}{rrr}
17& 20& -90\\
0& 225 & -630
\end{array}
\right]$\\

${\tt Reduction \ Result}$\\
$\left[
\begin{array}{rrr}
765& 0& -90\\
0& 225 & -630
\end{array}
\right]$\\

puis {\tt ENTER} donne le résultat :
$${\tt (X=2)\ AND\ (Y=\frac{14}{5})}$$
En mettant en surbrillance ${\tt \displaystyle \frac{14}{5}}$, et en appuyant
sur la touche {\tt NUM},ou en appellant {\tt XNUM}, on obtient :
 $${\tt (X=2)\ AND\ (Y=2.8)}$$ 
{\sc Attention} ! vous \^etes passer en mode {\tt Approx}, repasser en mode
{\tt Exact} avec {\tt CFG}. \\
Le prix d'une tuile est donc de 2 francs et celui d'un macaron de 2.80 francs 
\subsection{Exercice 5}\index{DROITE}
Le plan muni d'un repère orthonormal (O,i,j) et l'unité de longueur est le 
centimètre. On appelle A et B les points dont les coordonnées sont :\\
A(-1 ; 3) et B(-3 ; -1).\\
1/ Calculer AB, en donnant sa valeur exacte en centimètres.\\
2/ Determiner l'équation de la droite AB.\\
Première façon :\\
On tape :\\
{\tt STORE((-1,3),A)}\\
{\tt STORE((-3,-1),B)}\\
Le vecteur $\overrightarrow{AB}$ a pour coordonnées ${\tt B-A}$\\
1/ On tape :
$${\tt ABS(B-A)}$$
On obient :
$${\tt 2\sqrt5}$$
2/ On tape :
$${\tt DROITE(A,B)}$$
On obient :$${\tt y=2.x+5}$$
OU deuxième façon :\\
1/ On tape directement :
$${\tt (-3,-1)-(-1,3)}$$
On obient :
$${\tt -2-4.i}$$
On tape :
$${\tt ABS(-2-4i)}$$
On obient :
$${\tt 2\sqrt5}$$
2/ On tape :
$${\tt DROITE((-1,3),(-3,-1))}$$
On obient :
$${\tt y=2.(x--1)+3}$$
puis {\tt ENTER} donne :
$${\tt y=2.x+5}$$
\section{Exercices donnés au  Bac}
\subsection{Exercice 1}
L'objet de cet exercice est de tracer la courbe $\Gamma$ décrite par $M$
 d'affixe $\frac{1}{2}\cdot z^2-z $, lorsque $m$ d'affixe $z$ décrit le cercle 
 \textit{C} de centre O et de rayon 1.
Soit $t$ un réel de $[-\pi , \pi]$ et $m$ le point de \textit{C} d'affixe 
$z=e^{i \cdot t}$.
\begin{enumerate}
\item Calcul des coordonnées de $M$ :\\
On entre tout d'abord l'expression $\frac{1}{2}\cdot z^2-z $ dans l'\'editeur d'\'equations.\\
On tape dans l'\'editeur d'\'equations :\\
$${\tt \ ALPHA \ Z \ x^y \ 2 \ \rhd\ \div\  2\ \rhd\ -\ ALPHA \ Z \ \rhd\ 
\rhd\ }$$
L'expression ${\tt \displaystyle \frac{Z^2}{2}-Z}$ est sélectionnée.\\
Puisque $z=e^{i \cdot t}$, on appelle  {\tt SUBST} et on complète le deuxième argument :
$${\tt SUBST(\frac{Z^2}{2}-Z,Z=EXP(i\times t))}$$
la réponse est :
$${\tt \frac{EXP(i\cdot t)^2}{2} - EXP(i\cdot t)} $$
On linéarise ensuite l'expression avec l'appel de :\\
{\tt LIN}\\
la réponse est :
$${\tt \frac{1}{2} \cdot EXP(2\cdot i\cdot t)+-1\cdot EXP(i\cdot t) }$$
\begin{itemize}
\item
Puis on appelle {\tt STORE} que l'on compléte pour avoir :\\
$${\tt STORE(\frac{1}{2} \cdot EXP(2\cdot i\cdot t)+-1\cdot EXP(i\cdot t),M)}$$
puis {\tt ENTER}\\
On cherche maintenant la partie réelle de cette expression avec l'appel de :\\
$${\tt RE} $$ 
la réponse est :
$${\tt \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2}}$$
On définit alors la fonction $x(t)$, on appelle  {\tt DEF} :\\
{\sc Attention}!!!
Il faut taper {\tt = X(t)} puis échanger {\tt X(t)} et l'expression 
${\tt \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2}}$ en mettant en surbrillance
{\tt X(t)} avec $\rhd$ puis en tapant ${\tt SHIFT \lhd}$ pour l'échange.\\
On obtient :\\ 
$${\tt DEF\ (X(t) = \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2})}$$
puis {\tt ENTER}
\item
On cherche ensuite la partie imaginaire on tape :
$${\tt IM(M)} $$ 
la réponse est :
$${\tt \frac {SIN ( t\cdot 2)-2\cdot SIN(t)}{2}}$$
On définit alors la fonction $y(t)$ (de la m\^eme façon que $x(t)$) :
$${\tt DEF( Y(t) =\frac {SIN ( t\cdot 2)-2\cdot SIN(t)}{2}}$$
puis {\tt ENTER}
\end{itemize}
\item On cherche un axe de symétrie de $\Gamma$, pour cela on calcule $x(-t)$ et
$y(-t)$ en tapant :
$${\tt X(-t)\ ENTER}$$
la réponse est :
$${\tt \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2}}$$
On a donc : $x(-t)\ =\ x(t)$\\
puis :
$${\tt Y(-t)\ ENTER}$$
la réponse est :
$${\tt \frac {-SIN ( t\cdot 2)+2\cdot SIN(t)}{2}}$$
On a donc : $ y(-t)\ =\ -y(t)$\\
Si $M_1 (x(t), y(t))$ est sur $\Gamma, \ M_2 (x(-t),y(-t)$ est aussi sur
 $\Gamma$. \\
On vient de monter que $M_1 $ et $M_2$ sont symétriques par rapport 
à $Ox$, donc on en déduit que l'axe  $Ox$ est  un axe de symétrie de $\Gamma$.
\item Calcul de $x'(t)$ :\\
On tape :
$${\tt DERIV (X(t) ,t)}$$
la réponse est :
$${\tt \frac {2 \cdot (-2 \cdot SIN ( t\cdot 2)-2\cdot(- SIN(t)))}{4}}$$
 après simplification (${\tt ENTER} $):
$${\tt -(SIN ( t\cdot 2)- SIN(t))}$$
On développe l'expression (transformation de ${\tt SIN(2 \cdot t)}$), 
on appelle {\tt TEXPAND} et on obtient :
$${\tt TEXPAND(-(SIN ( t\cdot 2)- SIN(t)))}$$
puis {\tt ENTER}\\
la réponse est :
$${\tt -(SIN ( t)\cdot 2 \cdot COS(t)- SIN(t))}$$
puis on factorise, on appelle {\tt FACTOR} et on obtient ::
$${\tt FACTOR(-(SIN ( t)\cdot 2 \cdot COS(t)- SIN(t)))} $$
puis {\tt ENTER}\\
la réponse est :
 $${\tt -SIN ( t)\cdot (2 \cdot COS(t)- 1)}$$
On peut alors définir la fonction $x'(t)$ en appelant {\tt DEF}.\\
Il faut taper {\tt = X1(t)} puis,\\
 échanger {\tt X1(t)} et l'expression 
${\tt -SIN ( t)\cdot (2 \cdot COS(t)- 1)}$, en mettant en surbrillance 
{\tt X1(t)}  ($\rhd$) puis,
taper ${\tt SHIFT \ \lhd}$ pour l'échange.\\
On  obtient :\\ 
$${\tt DEF(\ X1(t)= -SIN ( t)\cdot (2 \cdot COS(t)- 1)) }$$
puis {\tt ENTER}\\
\item Calcul  de $y'(t)$ :\\
On tape :
$${\tt DERIV (Y(t) ,t)}$$
la réponse est :
$${\tt \frac {2 \cdot (2 \cdot COS( t\cdot 2))-2\cdot COS(t)}{4}}$$
 après simplification (${\tt ENTER} $):
$${\tt COS ( t\cdot 2)- COS(t)}$$
On développe l'expression (transformation de ${\tt COS(2 \cdot t)}$), on 
appelle {\tt TEXPAND} :
$${\tt TEXPAND(COS ( t\cdot 2)- COS(t))}$$
puis {\tt ENTER}\\
la réponse est :
$${\tt  2 \cdot COS(t)^2-1- COS(t))}$$
puis on factorise :
$${\tt FACTOR(2 \cdot COS(t)^2-1- COS(t)))} $$
puis {\tt ENTER}\\
la réponse est :
 $${\tt (COS ( t)-1)\cdot (2 \cdot COS(t)+1)}$$
On peut alors définir la fonction $y'(t)$, on tape (comme pour $x'(t)$:
$${\tt DEF(\ Y1(t)=(COS ( t)-1)\cdot (2 \cdot COS(t)+1))}$$
%debut
\item Variations de $x(t)$ et de $y(t)$\\
Pour cela on trace sur le m\^eme graphique $x(t)$ et $y(t)$.\\
On met {\tt t} comme variable {\tt VX} (touches {\tt SHIFT SYMB (SETUP)}), puis
 on tape dans
l'éditeur d'équations {\tt X(t)} puis {\tt ENTER}.\\
On appuie alors sur la touche {\tt  PLOT}\\
On sélectionne {\tt Function} à l'aide de la boite de dialogues et {\tt F1} 
comme destination.\\
Puis on fait la m\^eme chose avec {\tt Y(t)} en chosissant {\tt F2} 
comme destination.\\
Puis on quitte le {\tt CAS} avec la touche {\tt ON (CANCEL)}, pour faire le 
graphe des fonctions ainsi recopiées, on se place dans
 l'{\tt Aplet Function}, et on coche {\tt F1} et  {\tt F2}. 
Il faut régler les paramètres de la fen\^etre ({\tt  SHIFT PLOT}), puis {\tt  PLOT} pour avoir le graphique.
\item Tracé de la courbe $\Gamma$ :
\begin{itemize}
\item Valeurs de $x(t)$ et de $y(t)$\\
On trouve les valeurs de $x(t)$ et de $y(t)$ pour 
$t=0,\frac{\pi}{3},\frac{2 \cdot \pi}{3},\pi$ en tapant successivement :
$${\tt X(0) \ ENTER}$$
réponse : $\frac{-1}{2}$
$${\tt X(\frac{\pi}{3}) \ ENTER}
$$réponse : $\frac{-3}{4}$
$${\tt X(2 \times \frac{\pi}{3}) \ ENTER}$$
réponse : $\frac{1}{4}$
$${\tt X(\pi) \ ENTER}$$
réponse : $\frac{3}{2}$
$${\tt Y(0) \ ENTER}$$
réponse : $0$
$${\tt Y(\frac{\pi}{3}) \ ENTER}
$$réponse : $\frac{-\sqrt3}{4}$
$${\tt Y(2 \times \frac{\pi}{3}) \ ENTER}$$
réponse : $\frac{-3 \cdot \sqrt 3}{4}$
$${\tt Y(\pi) \ ENTER}$$
réponse : $0$
\item Pente des tangentes ( $m=\frac{y'(t)}{x'(t)}$)\\
On trouve les valeurs  de $\frac{y'(t)}{x'(t)}$ pour 
$t=0,\frac{\pi}{3},\frac{2 \cdot \pi}{3},\pi$ en tapant successivement :
$${\tt LIMIT(\frac{Y1(t)}{X1(t)},t=0) \ ENTER}$$
réponse : $0$
$${\tt  LIMIT(\frac{Y1(t)}{X1(t)},t=\pi \div 3) \ ENTER}
$$réponse : $\infty$
$${\tt  LIMIT(\frac{Y1(t)}{X1(t)},t=2 \times \pi \div 3) \ ENTER}$$
réponse : $0$
$${\tt LIMIT(\frac{Y1(t)}{X1(t)},t=\pi) \ ENTER}$$
réponse : $\infty$\\
Voici les variations de $x(t)$ et de $y(t)$
$$\begin{array}{|c|ccccccc|}\hline t & 0 & & \frac{\pi}{3} & & \frac{2\pi}{3} & &\pi \\\hline
x'(t)&0&-&0&+&?&+&0\\\hline
x(t)&\frac{-1}{2} & \downarrow & \frac{-3}{4} & \uparrow &\frac{1}{4} & \uparrow &\frac{3}{2}\\\hline
y(t)&0&\downarrow & \frac{\sqrt3}{4} &\downarrow & \frac{-3\sqrt3}{4} & \uparrow & 0\\\hline
y'(t)&0&-&?&-&0&+&?\\\hline
m &0&&\infty&&0&&\infty\\\hline
\end{array}$$
%debut
\item Courbe $\Gamma $ :\\
On fait ensuite le tracé de la courbe en paramétrique.\\
On tape ${\tt X(t)+i \times Y(t)}$ dans l'éditeur d''équations puis {\tt ENTER}.\\ 
 On tape ensuite :\\ 
{\tt PLOT} et
on sélectionne {\tt Parametric}, à l'aide de la boite de dialogues et
  {\tt X1,Y1} comme destination.
Puis on quitte le {\tt CAS} avec la touche {\tt ON (CANCEL)}, et pour faire le 
graphe de la courbe  $\Gamma $  on lance l'{\tt Aplet Parametric}. 
\end{itemize}
\end{enumerate}
\subsection{Exercice 2 (  de spécialité)}
On définit pour n entier naturel :
$$a_n=4 \times 10^n-1,\  b_n=2 \times 10^n-1 \mbox{ et } c_n=2 \times 10^n+1   $$
On tape donc :
$${\tt DEF(A(N)=4 \cdot 10^N-1)} $$
$${\tt DEF(B(N)=2 \cdot 10^N-1)} $$
$${\tt DEF(C(N)=2 \cdot 10^N+1)} $$
\begin{enumerate}
\item
\begin{itemize}
\item a) Calcul de $a_1, b_1, c_1, a_2, b_2, c_2, a_3, b_3, c_3$ :\\
Il suffit de taper :
$${\tt A(1)}$$
réponse 39
$${\tt B(1)}$$
réponse 19
$${\tt C(1)}$$
réponse 21
$${\tt A(2)}$$
réponse 399
$${\tt B(2)}$$
réponse 199
$${\tt C(2)}$$
réponse 201
$${\tt A(3)}$$
réponse 3999
$${\tt B(3)}$$
réponse 1999
$${\tt C(3)}$$
réponse 2001\\
\item b) nombre de chiffres et divisibilité\\
Ici, la calculatrice n'est l\`a que pour faire des essais pour différentes
 valeurs de $n$...\\
On sait que les entiers $n$ vérifiant :
$$10^n \leq n < 10^{n+1} $$
ont $(n+1)$ chiffres dans l'écriture décimale.\\
On a :
$$3 \cdot 10^n\ <\ a_n\ < \ 4 \cdot 10^n$$
$$ 10^n\ <\ b_n\ < \ 2 \cdot 10^n$$
$$2 \cdot 10^n\ <\ c_n\ < \ 3 \cdot 10^n$$
donc $a_n,\ b_n,\ c_n$ ont $(n+1)$ chiffres dans l'écriture décimale.\\
De plus $d_n=10^n-1$ est divisible par 9, car son écriture décimale ne
comporte que des 9.\\
 On a 
$$a_n=3 \cdot 10^n\ +\ d_n$$
et $$c_n=3 \cdot 10^n\ -\ d_n$$
donc $a_n$ et $c_n$ sont divisibles par 3. 
\item c) $b_3$ est premier\\
On tape :
$${\tt ISPRIME? (B(3))}$$
On obtient :
$${\tt 1.}$$
ce qui veut dire {\tt vrai}\\
Pour montrer que $b_3=1999$ est premier, il suffit de tester si 1999 est
 divisible par tous les nombres premiers inférieurs ou égaux à $\sqrt{1999}$.\\
Comme on a $1999<2025=45^2$, on teste la divisibilité de 1999 avec :\\
$n=2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41$. \\
1999 n'étant divisible par aucun de ces nombres on en déduit que 1999 est 
premier.
\item d)  $a_n=b_n \times c_n$\\
On tape :
$${\tt B(N)\cdot C(N)}$$
On obtient :
$${\tt 4 \cdot {(10^N)}^2-1}$$
qui est bien la valeur de $a_n$\\
Décomposition en facteur premier de $a_6$\\
On tape :
$${\tt FACTOR(A(6))}$$
On obtient :
$${\tt 3 \cdot 23 \cdot 29 \cdot 1999}$$
\item e) $b_n \mbox{ et } c_n $ sont premiers entre eux.\\
Ici, la calculatrice n'est l\`a que pour faire des essais pour différentes
 valeurs de $n$... \\
Pour montrer que $c_n$ et $b_n$ sont premiers entre eux il suffit de remarquer
 que :
$$c_n=b_n+2$$
Ainsi, les diviseurs communs à $c_n$ et $b_n$ sont les diviseurs communs à
$b_n $ et $2$ et sont aussi, les diviseurs communs à $c_n$ et $2$.
$b_n $ et $2$ sont premiers entre eux car $b_n$ est un nombre
 premier différent de $2$. Donc 
$$PGCD(c_n,\ b_n)=PGCD(c_n,\ 2)=PGCD(b_n,\ 2)=1$$ 
\end{itemize}
\item On considère l'équation :
$$b_3 \cdot x + c_3 \cdot y =1$$
\begin{itemize}
\item a) Il y a au moins une solution car il s'agit de l'identité de Bézout.\\
En effet, le théorème de Bézout dit :\\
 Si $a$ et $b$ sont premiers entre eux, il existe $x$ et $y $ vérifiant :
$$a \cdot x + b \cdot y =1$$
 Donc, l'équation :
$$b_3 \cdot x + c_3 \cdot y =1$$ a au moins une solution.\\
\item b)On tape :
$${\tt IEGCD(B(3),C(3))}$$
On obtient :
$${\tt 1000\ AND\ -999 =1}$$
ce qui veut dire que l'on a :
$$b_3 \times 1000 +c_3 \times (- 999)=1$$
on a donc une solution particulière : \\
$x=1000, \ y=-999$.\\
\`A la main, on écrit :\\
$ c_3\ =\ b_3\ +\ 2$ et $b_3\ =\ 999\ \times \ 2 \ +\ 1$\\
donc,  $b_3\ =\ 999\ \times \ (c_3 \ -\ b_3) \ +\ 1$
ainsi :
$$b_3 \times 1000 +c_3 \times (- 999)\ =\ 1$$
\item c)
Ici, la calculatrice ne peut pas trouver la solution générale.\\
On a :
$$b_3 \cdot x + c_3 \cdot y\ =\ 1$$
et 
$$b_3 \times 1000 +c_3 \times (- 999)\ =\ 1$$
donc par soustraction, on a :
$$b_3 \cdot (x-1000 )+ c_3 \cdot (y+999)\ =\ 0$$
ou encore :
$$b_3 \cdot (x-1000 )\ =\ - c_3 \cdot (y+999)\ $$
D'après le théorème de Gauss : $c_3$ est premier avec $b_3$ donc, $c_3$ divise $(x-1000)$.\\
Il existe donc $ k\ \in Z$ tel que :
$$(x-1000)=k \times c_3 $$
et
$$-(y+999)=k \times b_3$$
Réciproquement, soit
 $$x\ =\ 1000\ +\ k \times\ c_3$$
et
$$y\ =\ -999\ -\ k \times\ b_3 \ \mbox{   pour   }\ k\ \in Z$$ \\
On a :
$$b_3 \cdot x+ c_3 \cdot y =b_3 \times 1000 +c_3 \times (- 999)\ =\ 1$$
La solution générale est donc $\mbox{pour tout } k\ \in Z$ :
$$x\ =\ 1000\ +\ k \times\ c_3$$
$$y\ =\ -999\ -\ k \times\ b_3$$
\end{itemize}
\end{enumerate}
\subsection{Exercice 2 (pas de spécialité)}
Vérifiez avant de commencer que vous \^etes bien en mode réel exact avec 
{\tt X} comme variable courante, sinon sélectionnez {\tt Default cfg} de 
{\tt CFG}.\\
On considère la suite $$u_n=\int _0 ^2\ \frac{2x+3}{x+2}\ e^\frac{x}{n}\ dx$$
\begin{enumerate}
\item
\begin{itemize}
\item a) Variation de $g(x)=\frac{2x+3}{x+2} \mbox{ pour } x\in [0,2]$\\
On tape :
$${\tt DEF(G(X)=\frac{2X+3}{X+2})}$$
puis :
$${\tt TABVAR(G(X))}$$
On obtient :
$$\begin{array}{cccccc} -\infty & + & -2 & + & +\infty & X\\
 2 & \uparrow & \infty & \uparrow & 2 & F
\end{array}$$
La première ligne donne le signe de {\tt g'(x)} selon x, et la deuxième ligne
les variations de {\tt g(x)}. On remarquera que pour {\tt TABVAR} la fonction 
s'appelle toujours F.\\
On en déduit donc que $g(x)$ est croissante sur $[0,2]$.\\
Si on est en mode pas à pas (pour cela il faut valider 
{\tt Step/Step} avec {\tt OK}  du bandeau de {\tt CFG}), 
on obtient alors (quoiqu'il arrive la fonction est notée {\tt F}):
$${\tt F=: \frac{2 \cdot X+3}{X+2}}$$
puis {\tt ENTER}
$${\tt F':=\frac{2 \cdot (X+2)-(2 \cdot X+3)}{SQ(X+2)}}$$
puis en se servant de la flèche $\bigtriangledown$ pour faire défiler l'écran 
$${\tt \rightarrow \frac{1}{(X+2)^2}}$$
puis {\tt  ENTER} pour obtenir le tableau de variations.\\
Si on n'est pas en mode pas à pas, on peut aussi demander le calcul de la 
dérivée en tapant :
$${\tt DERVX(G(X))}$$ 
ce qui donne le calcul ci-dessus.\\
On calcule $g(0)$ et $g(2)$, pour cela on tape :
$${\tt G(0)}$$ 
réponse $\frac{3}{2}$
$${\tt G(2)}$$ 
réponse $\frac{7}{4}$\\
d'o\`u, l'encadrement 
$$\frac{3}{2} \leq g(x) \leq \frac{7}{4} \ \mbox{ pour } x\in [0,2]$$.
\item b) L\`a, la calculatrice ne peut rien ...il suffit de dire que 
$$e^\frac{x}{n} \geq 0 \ \mbox{   pour } x\in [0,2] $$ 
pour montrer que, pour $x\in [0,2]$, on a :
$$\frac{3}{2}e^\frac{x}{n}\leq g(x)e^\frac{x}{n} \leq \frac{7}{4}e^\frac{x}{n}$$
\item c) On intègre l'inégalité ci-dessus, on tape :
$${\tt \int _0^2\  e^\frac{X}{N}\ dX} $$
On obtient :
$${\tt N \cdot e^\frac{2}{N} -N } $$
On en déduit donc :
$$\frac{3}{2}(n e^\frac{2}{n}-n) \leq u_n \leq \frac{7}{4}(ne^\frac{2}{n}-n)$$
Pour justifier le calcul précédent, il faut dire qu'une primitive de
$ e^\frac{x}{n}$ est $n \cdot e^\frac{x}{n}$.\\
Si on ne le sait pas, on peut toujours taper :
$${\tt INTVX(EXP(\frac{X}{N}))}$$
la réponse est : ${\tt N \cdot e^\frac{X}{N}}$
\item d)
On cherche la limite de $(n e^\frac{2}{n}-n)$ quand $n \rightarrow +\infty$ :
$${\tt LIMIT(N \cdot EXP(\frac{2}{N}) -N\ ,\ N=+\infty)}$$
On obtient :
$${\tt 2}$$
{\sc Attention} :\\
La variable {\tt VX} est maintenant égale à {\tt N}, utiliser les touches
 {\tt SHIFT SYMB (SETUP)} pour remettre {\tt VX} à {\tt X}.\\
Pour justifier ce résultat, il faut dire que :
$$\lim_{x \rightarrow 0}\frac{e^x-1}{x}=1$$
et donc que :
$$\lim_{n \rightarrow +\infty}\frac{e^\frac{2}{n}-1}{\frac{2}{n}}=1$$
ou encore :$$\lim_{n \rightarrow +\infty}(e^\frac{2}{n}-1)\cdot n=2$$
Si $L$ existe, en faisant tendre $n$ vers $+\infty$ dans les
 inégalités de 1b), on obtient :
$$\frac{3}{2} \cdot 2 \leq L \leq \frac{7}{4} \cdot 2$$
\end{itemize}
\item
\begin{itemize}
\item a) $g(x)=2-\frac{1}{x+2}$ et calcul de $I= \int _0 ^2 g(x)dx$\\
On tape :
$${\tt PROPFRAC(G(X))}$$
On obtient
$${\tt 2-\frac{1}{X+2}}$$
Pour le calcul de l'intégrale $I$, on tape :
$${\tt \int _0 ^2 G(X)dX}$$
On obtient :
$${\tt -(LN(2)-4)}$$
\`A la main, on a $2x+3=2(x+2)-1$ donc $$g(x)=2-\frac{1}{x+2}$$
On intègre ensuite terme à terme entre $0 $ et $2$, on obtient :
$$\int_0^2 g(x)dx=[2x-\ln(x+2)]_{x=0}^{x=2}$$
c'est à dire, puisque $\ln4=2\ln2$:
$$\int_0^2 g(x)dx=4- \ln2$$ 
\item b) L\`a, la calculatrice ne peut rien...il suffit de dire que
 $e^\frac{x}{n}$ est croissante pour $x \in [0,2]$, pour obtenir l'inégalité :
$$1 \ \leq \ e^\frac{x}{n} \ \leq e^\frac{2}{n} $$
puis par multiplication,  $g(x)$ étant positif sur $[0,2]$, on a  :
$$g(x)\ \leq \ g(x)e^\frac{x}{n}\ \leq g(x)e^\frac{2}{n}  $$ 
puis en intégrant on a  :
$$I \ \leq u_n \ \leq \ e^\frac{2}{n}I $$
\item c) Convergence de $u_n$\\
On cherche la limite de $e^\frac{2}{n}$ quand  $n \rightarrow +\infty$ :
$${\tt LIMIT(EXP(\frac{2}{N})\ , \ N=+\infty)}$$
On obtient :
$${\tt 1}$$
En effet, $\frac{2}{n}$ tend vers 0 lorsque $n$ tend vers $+\infty$  donc,
$e^\frac{2}{n}$  tend vers $e^0=1$ lorsque $n$ tend vers $+\infty$.\\
Lorsque $n$ tend vers $+\infty$, $u_n$ reste compris entre $I$ et une 
quantité qui tend vers $I$ (cf in\'egalit\'es 2b)).\\
 Donc $u_n$ converge et sa limite vaut $I$.\\ 
On a donc montr\'e que :$$L=I=4- \ln2$$
\end{itemize}
\end{enumerate}
\section{Conclusion}
On voit qu'un bon maniement de la calculatrice  HP40G permet de faire une bonne
 partie des questions...\\
Il faut cependant noter, qu'en arithmétique il faut faire plus de
 raisonnements : la calculatrice permet alors de faire des vérifications....  

\chapter{Programmation}
\section{Implémentation}\label{sec:programme}
\subsection{Comment éditer et sauver un programme}
Pour avoir accès au catalogue de programmes, on appuie sur les touches
 {\tt SHIFT 1 (PROGRAM)}.\\
 Il apparait alors un écran contenant la liste des programmes disponibles et un bandeau ({\tt EDIT NEW SEND RECV RUN}).\\
Pour taper un nouveau programme, on appuie sur {\tt F2 (NEW)}.\\
On vous demande le nom du programme : {\sc Attention} ! vous n'\^etes pas en mode 
{\tt Alpha} appuyer sur {\tt F4 (A..Z)} pour y \^etre!!!.\\
Tapez son nom puis {\tt F6 (OK)}.\\
Vous entrez votre programme et votre travail est automatiquement sauvegardé 
lorsque vous sortez de l'éditeur en appuyant sur {\tt HOME} ou sur
  {\tt SHIFT 1 (PROGRAM)}.  
\subsection{Comment corriger un programme} 
Si la syntaxe est mauvaise, la machine vous  dit :\\
{\tt Invalid Syntax Edit program?} Vous répondez {\tt F6 (YES)}.\\
La machine vous met automatiquement le curseur l\`a
o\`u le compilateur a détecté l'erreur. Il suffit donc de corriger!!!\\
\subsection{Comment exécuter un programme}
Pour exécuter un programme, on ouvre le catalogue de program\-mes, en appuyant 
sur les touches  {\tt SHIFT 1 (PROGRAM)}.\\
 Il apparait alors un écran contenant la 
liste des programmes disponibles et le bandeau {\tt EDIT NEW SEND RECV RUN}.\\
On met le nom du programme à exécuter en surbrillance et on appuie sur 
{\tt F6 (RUN)}.

 \subsection{Comment modifier un programme}
Pour modifier un programme (sans vouloir garder l'ancien) on ouvre le 
catalogue de programmes, en appuyant sur
 les touches {\tt SHIFT 1 (PROGRAM)}. Il apparait alors un écran contenant la 
liste des programmes disponibles et le bandeau {\tt EDIT NEW SEND RECV RUN}.\\
On met le nom du programme à modifier en surbrillance et on appuie sur 
{\tt F1 (EDIT)}.\\
Si vous voulez avoir à la fois l'ancien et le nouveau programme il faut :\\
- ouvrir le catalogue de programmes ({\tt SHIFT 1 (PROGRAM)}).\\
- appuyer sur {\tt F2 (NEW)} et taper le nom du programme modifié puis 
{\tt F6 (OK)}.\\
 L'éditeur s'ouvre, on appuie alors sur {\tt VARS} puis la lettre {\tt P}
 pour mettre {\tt Program} en surbrillance.\\ Avec les fl\`eches mettre le nom du programme \`a modifier en surbrillance et appuyer sur {\tt F4 (VALUE)}
(pour cocher {\tt VALUE} du bandeau) puis {\tt F6 (OK)}.\\
 Cela recopie le texte du programme dans l'\'editeur. 
\section{Les commentaires}
Il faut prendre l'habitude de commenter ses programmes.\\ 
En algorithmique un commentaire commence par
{\tt // } et se termine par un passage à la ligne.\\
Pour la {\tt HP40G}, un commentaire commence par {\tt @} et se termine par un 
passage à la ligne ou est entouré de deux {\tt @}.\\
{\sc Attention} !!! \\
Ne pas oublier de mettre un espace après  {\tt @}.\\
Le caractère {\tt @} est obtenu en tapant {\tt shift VAR (CHARS)}, puis on met 
ce caractère en surbrillance, puis {\tt ECHO1} du bandeau.\\
\section{Les variables}
\subsection{Leurs noms}
Ce sont les endroits o\`u l'on peut stocker des valeurs, des nombres, des expressions, des objets.\\
Avec la {\tt HP40G}, on n'a droit en progammation qu'aux 26 lettres de 
l'alphabet pour stocker des nombres réels.\\
\subsection{Notion de variables locales}
Cette notion n'existe pas pour la calculatrice {\tt HP40G}.\\
On ne peut utiliser que des variables globales.\\ 
\subsection{Notion de paramètres}
Quand on écrit un programme sur la {\tt HP40G}, il n'est pas possible  de lui 
passer des paramètres.\\
On ne peut donc pas écrire de fonctions ayant des paramètres, avec le langage 
de programmation de la  {\tt HP40G}.\\
\section{Les Entrées}
\subsection{Traduction en Algorithmique}
Pour que l'utilisateur puisse entrer une valeur dans la variable {\tt A} au 
cours de l'exécution d'un programme, on écrira, en algorithmique :\\
{\tt saisir A}  \\
Et pour entrer des valeurs dans {\tt A} et {\tt B} on écrira :\\
{\tt saisir A,B}
\subsection{Traduction HP40G}\label{sec:prompt}\index{PROMPT} 
\noindent{\tt INPUT A;"TITRE";"A=";;0:}\\
Si le fait d'avoir à écrire tous ces points virgule dans {\tt INPUT} vous
 rebute, il est préférable d'utiliser la commande :
{\tt PROMPT} (Merci Jean Yves!!!).\\
 {\tt PROMPT A:} ouvre une fen\^etre vous demandant d'entrer la valeur de 
{\tt A}.\\
Dans ce qui suit,
les programmes écrits avant l'existence de  {\tt PROMPT}, utilisent le 
sous-programme IN qui permet d'entrer deux valeurs dans {\tt A} et {\tt B}.  
\section{Les Sorties}
\subsection{Traduction en Algorithmique}
En algorithmique on écrit:\\
{\tt Afficher "A=",A}
\subsection{Traduction HP40G}
\noindent{\tt DISP 3;"A="A:} 3 représente le numéro de la ligne o\`u {\tt A} sera affiché \\
ou\\
{\tt MSGBOX "A="A:}
\section{La séquence d'instructions ou action}
Une action est une séquence d'une ou plusieurs instructions.
\subsection{Traduction en Algorithmique}
En langage algorithmique, on utilisera l'espace ou le passage à la ligne pour 
terminer une instruction.
\subsection{Traduction HP40G}
\noindent {\tt:} indique la fin d'une instruction.
\section{L'instruction d'affectation}
L'affectation est utilisée pour stocker une valeur ou une expression dans une variable.
\subsection{Traduction en Algorithmique} 
En algorithmique on écrira par exemple :\\
{\tt 2*A->B}
pour stocker {\tt 2*A} dans {\tt B}
\subsection{Traduction HP40G}
La flèche est obtenue à l'aide de la touche ${\tt STO\triangleright}$ du 
bandeau.\\
On écrira par exemple :\\
${\tt 2*A\ STO\triangleright\ B }$
\section{Les instructions conditionnelles}
\subsection{Traduction en Algorithmique} 
\noindent{\tt Si \emph{condition} alors\\
\emph{action}\\
fsi}\\
{\tt Si \emph{condition} alors\\
\emph{action1} sinon\\
\emph{action2}\\
fsi}\\ 
Exemple :\\
{\tt Si A = 10 ou A < B alors \\
B-A->B sinon \\A-B->A \\fsi}
\subsection{Traduction HP40G}
\noindent{\tt IF \emph{condition} THEN\\ 
\emph{action} : \\
END:}\\
{\tt IF \emph{condition} THEN\\ 
\emph{action1} : ELSE\\
\emph{action2}:\\
END:}\\
  {\sc Attention} au == pour traduire la condition d'égalité.\\
Exemple :\\
${\tt IF\ A==10\ OR\ A<B\ THEN}$\\ 
${\tt B-A\ STO\triangleright\ B :\ ELSE}$\\
${\tt A-B\ STO\triangleright A:}$\\
${\tt END:}$

\section{Les instructions ``Pour'' }
\subsection{Traduction en Algorithmique} 
\noindent{\tt Pour I de A à B faire \emph{action} fpour}\\
{\tt Pour I de A à B (pas P) faire \emph{action} fpour}
\subsection{Traduction HP40G}
\noindent{\tt FOR I = A TO B STEP 1 ; \emph{action} : END:}\\
{\tt FOR I = A TO B STEP P ; \emph{action} : END:} 
\section{L'instruction ``Tant que''}
\subsection{Traduction en Algorithmique} 
\noindent{\tt Tant que \emph{condition} faire
\emph{action}
ftantque}
\subsection{Traduction HP40G}
\noindent{\tt WHILE \emph{condition} REPEAT 
\emph{action} : 
END:}
\section{Les expressions booléennes }
Une condition est une fonction qui a comme valeur un booléen, à savoir elle
est soit {\tt vraie} soit {\tt fausse}.
\subsection{Traduction en Algorithmique} 
Pour exprimer une condition simple on utilise les opérateurs:

{\tt = > > $\leq$  $\geq$  $\neq$}
\subsection{Traduction HP40G} 
{\sc Attention}, pour la calculatrice {\tt HP40G}, l'égalité se traduit par :\\
{\tt ==}\\
sinon les autres opérateurs sont les m\^emes.
\section{Les opérateurs logiques}
\subsection{Traduction en Algorithmique}
Pour traduire des conditions complexes, on utilise les opérateurs logiques :

{\tt ou et non} 
\subsection{Traduction HP40G}
{\tt ou et non} se traduisent sur la {\tt HP40G} par {\tt OR AND NOT } 

\section{Les listes}
\subsection{Traduction en Algorithmique}
En algorithmique, on utilise les \{ \} pour délimiter une liste.\\
 Par exemple \{\} désigne la liste vide et \{1, 2, 3\} est une liste de 3 éléments.\\
Le + sera utilis\'e pour concaténer 2 listes, ou une liste et un élément, ou 
un élément et une liste :\\
{\tt \{1, 2, 3\}->TAB}\\
{\tt TAB + 4 ->TAB}  (maintenant {\tt TAB} désigne \{1, 2, 3, 4\}) \\
{\tt TAB[2]} désigne le deuxième élément de {\tt TAB} ici 2.
\subsection{Traduction HP40G} 
Les variables listes ont pour noms : {\tt L0, L1, L2, ... L9}.\\
On utilise les \{ \} pour délimiter une liste.\\
Par exemple \{1, 2, 3\} est une liste de 3 éléments.\\
 Mais \{\} ne désigne pas la liste vide, il faut utiliser la commande :\\
{\tt SYSEVAL 259588} pour initialiser la liste {\tt L0} à vide ({\tt SYSEVAL 259589} pour initialiser {\tt L1} à vide...).\\
Voici quelques commandes utiles :\\
{\tt MAKELIST(I*I, I , 1, 10, 2)}  désigne la liste des carrés des 5 premiers entiers impairs ( 2 indique le pas de {\tt I}). \\
{\tt L1(I)}  désigne le {\tt I}ème élément de la liste.\\
{\tt CONCAT (L1, \{5\})} désigne une liste ayant l'élément 5 en plus des éléments de la liste {\tt L1}.\\
On peut aussi utiliser :\\
{\tt AUGMENT(L1,5)} qui désigne une liste ayant l'élément 5 en plus des éléments de la liste {\tt L1}.\\
{\tt SUB L2;L1;2;4} est une commande qui met dans {\tt L2} les éléments de 
{\tt L1} ayant des indices allant de 2 à 4.\\
 {\sc Attention} ! à la diffèrence entre fonctions et commandes :\\
les fonctions renvoient une valeur, elles ont des parenthèses et leurs
 arguments se situent dans les parenthèses, et sont séparés par des virgules alors que\\
les commandes ne renvoient pas de valeurs, et leurs arguments s'écrivent après
 le nom de la commande, et sont séparés par des points virgules.  
\section{Un exemple : le crible d'Eratosthène}
\subsection{Description}
Pour trouver les nombres premiers inférieurs ou égaux à $N$ :
\begin{enumerate}
\item On écrit les nombres de 1 à $N$ dans une liste.

\item On barre 1 et on met 2 dans la case $P$.

Si $P . P \leq N$ il faut traiter les éléments de $P$ à $N$. 

\item On barre tous les multiples de $P$ à partir de $P . P$.

\item On augmente $P$ de 1

Si $P. P$ est inférieur ou égal à $N$, il reste à traiter les éléments non barrés de $P$ à $N$. 

\item On appelle $P$ le plus petit élément non barré de la liste.

\item On refait les points 3 4 5 tant que $P . P$ reste inférieur ou égal à
 $N$.
\end{enumerate}
\subsection{Écriture de l'algorithme}
\begin{verbatim}
Fonction crible(N)
local TAB PREM I P
// TAB et PREM sont des listes
{} ->TAB
{} ->PREM
pour I de 2 à N faire 
  TAB+I -> TAB
fpour
0 +TAB -> TAB
2 -> P
// On a fait les points 1 et 2
//barrer 1 a été réalisé en le remplaçant par 0
//TAB est la liste 0 2 3 4 ...N \end{verbatim}
{\tt tant que P*P $\leq$ N faire}\begin{verbatim}
  pour I de P à E(N/P) faire
   //E(N/P) désigne la partie entière de N/P
   0 -> TAB[I*P]
  fpour
// On a barré tous les multiples de P à partir de P*P
  P+1 -> P
//On cherche le plus petit nombre <= N non barré,\\
// entre P et N
\end{verbatim}
 {\tt {\  }  tant que (P*P $\leq$ N) et (TAB[P]=0) faire}
\begin{verbatim}
    P+1 -> P
  ftantque
ftantque
//on écrit le résultat dans une liste PREM
pour I de 2 à N faire\end{verbatim}
 {\tt {\  } si TAB[I]  $\neq$ 0 alors} 
\begin{verbatim}      
    PREM +I -> PREM
  fsi
fpour
résultat: PREM
\end{verbatim}
\subsection{Traduction HP40G}
Voici le programme CRIBLE :\\
L'utilisateur doit entrer la valeur de N.\\
A la fin la liste L2 contient les nombres premiers inférieurs ou égaux à N.
\begin{verbatim}
INPUT N;"CRIBLE";"N=";;10:
ERASE:
MAKELIST(I,I,1,N,1) -> L1:
0 -> L1(1):
2->P:\end{verbatim}
{\tt WHILE P*P $\leq$ N REPEAT}\begin{verbatim}
  FOR I = P TO INT(N/P) STEP 1;
    0->L1(I*P):
  END: 
  DISP 3;""L1:
  P+1->P:\end{verbatim}
{\tt {\  } WHILE P*P $\leq $ N AND L1(P) == 0 REPEAT}\begin{verbatim}
    P+1->P:
  END:
END:
{2}->L2:
@ on sait que 2 est premier
FOR I=3 TO N  STEP 1;\end{verbatim}
{\tt {\  }IF L1(I) $\neq$ 0 THEN}\begin{verbatim}
  CONCAT(L2,{I}) ->L2:
  END:
END:
DISP 3 ;"PREM" L2:
FREEZE:
\end{verbatim}
\chapter{Programmes d'arithmétique} 
\section{Le PGCD et l'algorithme d'Euclide}
Soient $A$ et $B$ deux entiers positifs dont on cherche le $PGCD$.\\
L'algorithme d'Euclide est basé sur la définition récursive du $PGCD$ :
\begin{eqnarray*}
PGCD(A,0) & = & A \\
PGCD(A,B) & = & PGCD(B,A \ \bmod \  B) \  si \  B \neq 0
\end{eqnarray*}
o\`u $A\ \bmod \ B$ désigne le reste de la division euclidienne de $A$ par $B$.\\
Voici la description de cet algorithme :\\
on effectue des divisions euclidiennes successives :
\begin{eqnarray*}
A=& B \times Q_1+R_1  &  0 \leq R_1 < B \\
B=& R_1 \times Q_2+R_2  & 0 \leq R_2 < R_1 \\
R_1=& R_2 \times Q_3+R_3 & 0 \leq R_3 < R_2 \\
.......
\end{eqnarray*}
Après un nombre fini d'étapes, il existe un entier n tel que : 
$R_n = 0.$ \\
on a alors :\\
$PGCD(A,B)= PGCD(B,R_1) =...$\\
$PGCD(R_{n-1},R_n) = PGCD(R_{n-1},0) = R_{n-1}$
\subsection{Traduction algorithmique}
-Version itérative\\
Si B $\neq$ 0 on calcule R=A mod B, puis   avec B dans le r\^ole 
de A (en mettant  B dans A ) et R dans le r\^ole de B ( en mettant R dans B)
on recommence jusqu'à ce que B=0, le PGCD est alors A.
\begin{verbatim}
Fonction PGCD(A,B)
Local R\end{verbatim}
{\tt tant que B $\neq$ 0 faire}\begin{verbatim}
  A mod B->R
  B->A
  R->B
ftantque
résultat A
ffonction
\end{verbatim}
 -Version récursive\\
On écrit simplement la définition récursive vue plus haut.
\begin{verbatim}
Fonction PGCD(A,B)\end{verbatim}
{\tt Si B $\neq$ 0 alors}\begin{verbatim}
  résultat PGCD(B,A mod B) 
  sinon
  résultat A
fsi
ffonction\end{verbatim}
\subsection{Traduction HP40G}
-Version itérative pour deux entiers\\
On écrit tout d'abord le sous-programme IN qui permet d'entrer deux nombres 
A et B :
\begin{verbatim}
INPUT A;"A";;;1:
INPUT B;"B";;;1:
ERASE:\end{verbatim}
puis on écrit le programme PGCD :
%HP38AscD 5 LGCD1
\begin{verbatim}RUN IN:
DISP 3;"PGCD "{A,B}:\end{verbatim}
{\tt WHILE B $\neq$ 0 REPEAT }
\begin{verbatim}A MOD B ->R:
B ->A:
R ->B:
END:
DISP 4;"PGCD "A:
FREEZE:\end{verbatim}
 -Version récursive pour deux entiers A et B\\
Avec la HP40G on ne peut pas écrire des programmes récursifs...mais on peut 
écrire le programme PGCDR:
%HP38AscD 5 PGCDR 
\begin{verbatim}DISP 3;"PGCD "{A,B}:
FREEZE:\end{verbatim}
{\tt IF B $\neq$ 0 THEN}
\begin{verbatim}A MOD B ->R:
B ->A:
R ->B:
PGCDR:
ELSE
DISP 3;"PGCD "A:
FREEZE:
END:\end{verbatim}
On stocke tout d'abord   les valeurs dans A et B.\\
Le programme PGCDR affiche le  PGCD qu'il est en train de calculer.\\ 
L'appel récursif  PGCDR renvoie  au programme PGCDR qu'il  faut faire
 exécuter en appuyant sur \verb|RUN| du bandeau.\\
Le programme PGCDR affiche ainsi les  PGCD intermédiaires calculés.\\
On peut aussi  remplacer {\tt PGCDR} dans le programme précédent par 
{\tt RUN PGCDR}, pour ne pas avoir à appuyer sur \verb|RUN| du bandeau, et 
supprimer les affichages intermédiaires, pour utiliser ce programme dans un programme effectuant les entrées et les sorties :\\
le programme récursif  {\tt PGCDR} devient le programme récursif {\tt PR} :\\
{\tt IF B $\neq$ 0 THEN}
\begin{verbatim}A MOD B ->R:
B ->A:
R ->B:
RUN PR:
END:\end{verbatim}
On ins\`ere le programme {\tt PR} dans un programme effectuant les entrées et 
les sorties :
\begin{verbatim}
PROMPT A:
PROMPT B:
RUN PR:
ERASE:
MSGBOX A:
\end{verbatim}
-Version itérative pour deux complexes\\
Si on utilise la fonction du calcul symbolique {\tt IREMAINDER} à la place de
{\tt MOD} dans les programmes précédents, {\tt PGCD} (ou {\tt PR}) peut alors avoir comme paramètres des entiers de Gauss à condition de remplacer les noms des variables {\tt A, B, R} par {\tt Z1, Z2, Z3} et de changer le test d'arr\^et.\\
Voici la version itérative :
 \begin{verbatim}PROMPT Z1:
PROMPT Z2:
DISP 3;"PGCD "{Z1,Z2}:\end{verbatim}
{\tt WHILE ABS(Z2) $\neq$ 0 REPEAT }
\begin{verbatim}XNUM(IREMAINDER(XQ(Z1),XQ(Z2)) ->Z3:
Z2 ->Z1:
Z3 ->Z2:
END:
DISP 4;"PGCD "Z1:
FREEZE:\end{verbatim}
-Version itérative pour deux polyn\^omes\\
Les variables {\tt E1, E2,...} permettent de stocker des expressions, c'est 
ce qu'il nous faut pour y mettre des polyn\^omes !!! 
Si on utilise la fonction du calcul symbolique {\tt REMAINDER} à la place de
{\tt MOD} dans les programmes précédents, {\tt PGCD} (ou {\tt PR}) peut alors avoir comme paramètres des polyn\^omes\ à condition de remplacer les noms des variables {\tt A, B, R} par {\tt E1, E2, E3} et de changer le test d'arr\^et.
\begin{verbatim}
PROMPT E1:
PROMPT E2:\end{verbatim}
{\tt WHILE DEGREE(E2) $\neq$ -1 REPEAT }
\begin{verbatim}REMAINDER(E1,E2) ->E3:
E2 ->E1:
E3 ->E2:
END:
DISP 4;"PGCD "E1:
FREEZE:\end{verbatim}
Vous entrez par exemple :\\
${\tt E1=S1^2-1}$ et ${\tt E2=S1^2-2*S1+1}$
pour trouver le PGCD égal à {\tt 2*S1-2}.
\section{Identité de Bézout}
 Dans ce paragraphe la fonction Bezout(A,B) renvoie la liste :\\
$\{U, V, PGCD(A,B)\}$
o\`u $U$ et $V$ vérifient :\\
$ A \times U + B \times V = PGCD(A,B). $ 
\subsection{Version it\'erative sans les listes}
L'algorithme d'Euclide permet de trouver un couple $U$ et $V$ vérifiant :\\
$ A \times U + B \times V= PGCD(A,B) $\\
En effet, si on note $ A_0$ et$ B_0 $ les valeurs de $A$ et de $B$ du début on a :
\begin{eqnarray*}
 A & =A_0 \times U+B_0 \times V \ \mbox{ avec }\  U=1 \ \mbox{ et }\  V=0 \\ 
 B & =A_0 \times W+B_0 \times X  \ \mbox{ avec }\  W=0 \ \mbox{ et } \  X=1 
\end{eqnarray*}
 Puis on fait évoluer $A,\ B,\ U,\ V,\ W,\ X$ de façon que les deux relations
 ci-dessus soient toujours vérifiées.\\
Si :\\
$ A=B \times Q+R \ \ \  0 \leq R < B \ \ ( R = A \ mod \ B \ et \  Q = E(A / B )) $\\
On écrit alors :
\begin{eqnarray*}
R=A-B \times Q=A_0 \times (U-W \times Q)+B_0 \times (V-X \times Q)=\\
A_0 \times S+B_0 \times T \ \mbox{ avec } \ S=U-W \times Q \  \mbox{ et } \   T=V-X \times Q
\end{eqnarray*}
Il reste alors à recommencer avec :\\
$B$ dans le r\^ole de $A$ ({\tt B->A\  W->U \ X->V}) et,\\
$R$ dans le r\^ole de $B$ ({\tt R->B \ S->W \ T->X} )\\
 d'o\`u l'algorithme  :
\begin{verbatim}
fonction Bezout (A,B)
local U,V,W,X,S,T,Q,R
1->U 0->V 0->W 1->X\end{verbatim}
{\tt tant que B $\neq$ 0 faire}\begin{verbatim}
A mod B->R 
E(A/B)->Q
//R=A-B*Q
U-W*Q->S
V-X*Q->T
B->A W->U X->V
R->B S->W T->X
ftantque
résultat {U, V, A}
ffonction
\end{verbatim}
\subsection{Version it\'erative avec les listes}
On peut simplifier l'écriture de l'algorithme ci-dessus en utilisant moins de
 variables : pour cela on utilise des listes LA LB LR pour mémoriser les
 triplets \{U, V, A\} \{W, X, B\} et \{S, T, R\}.
Ceci est très commode car les calculatrices savent ajouter des listes de m\^eme
 longueur (en ajoutant les éléments de m\^eme indice) et savent aussi 
multiplier une liste par un nombre (en multipliant chacun des éléments de la 
liste par ce nombre).\\
\begin{verbatim}
fonction Bezout (A,B)
local LA LB LR
{1, 0, A}->LA
{0, 1, B}->LB\end{verbatim}
{\tt tant que LB[3] $\neq$ 0 faire}\begin{verbatim}
LA-LB*E(LA[3]/LB[3])->LR 
LB->LA 
LR->LB 
ftantque
résultat LA
ffonction
\end{verbatim}
\subsection{Version récursive avec les listes}
On peut définir récursivement la fonction Bezout par:

$ Bezout(A,0)=\{1,\ 0,\ A\} $  
   
Si $ B \neq 0 $ il faut définir $ Bezout(A,B)$ en fonction de $ Bezout(B,R)$ lorsque

$ R=A-B \times Q \ \mbox{ et } \  Q=E(A/B).$

On a:
\begin{eqnarray*} Bezout(B,R)=LT=\{W, X, pgcd(B,R)\} \\
\mbox{ avec }\  W \times B+X \times R=pgcd(B,R)
\end{eqnarray*}
Donc:
\begin{eqnarray*}
 W \times B+X \times (A-B \times Q) & = & pgcd(B,R) \ \mbox{ ou  encore} \\ 
X \times A+(W-X \times Q) \times B & = & pgcd(A,B).
\end{eqnarray*}
D'o\`u si $B \neq 0$ et si $ Bezout(B,R)=LT$ on a :

$ Bezout(A,B)=\{LT[2],\ LT[1]-LT[2] \times Q,\ LT[3]\}.$\\
\begin{verbatim}
fonction Bezout (A,B)
local LT Q R\end{verbatim}
{\tt Si B $\neq$ 0 faire}\begin{verbatim}
E(A/B)->Q
A-B*Q->R
Bezout(B,R)->LT
Résultat {LT[2], LT[1]-LT[2]*Q, LT[3]}
sinon Résultat {1, 0, A} 
fsi
ffonction
\end{verbatim}
\subsection{Version récursive sans les listes}\label{sec:recsl}
Si on utilise des variables globales pour {\tt A B D U V T}, on peut voir la fonction {\tt Bezour} comme calculant à partir de {\tt A B}, des valeurs 
qu'elle met dans {\tt U V D (AU+BV=D)}  gr\^ace à une variable locale {\tt Q}.\\
On \'ecrit donc une fonction sans param\`etre : seule la variable {\tt Q} doit \^etre locale \`a la foncton alors que les autres variables {\tt A, B ...} 
peuvent \^etre  globales.\\
{\tt  Bezour} fabrique {\tt U, V, D}  v\'erifiant  {\tt A*U+B*V=D} \`a partir de {\tt A} et {\tt B}.
Avant l'appel r\'ecursif (on pr\'es\'erve {\tt E(A/B)=Q} et on  met {\tt A} et 
{\tt B} \`a jour ( nouvelles valeurs), apr\`es l'appel les variables  {\tt U, V, D}  v\'erifient 
 {\tt A*U+B*V=D} (avec {\tt A} et {\tt B} les nouvelles valeurs), il suffit 
alors de revenir aux premi\`eres valeurs de
{\tt A} et {\tt B} en \'ecrivant :   
{\tt B*U+(A-B*Q)*V=A*V+B*(U-V*Q)}\\  
On écrit alors :
\begin{verbatim}
Programme Bezour
local  Q \end{verbatim}
{\tt Si B $\neq$ 0 faire}\begin{verbatim}
E(A/B)->Q
A-B*Q->T
B->A
T->B
Bezour
U-V*Q->T
V->U
T->V
sinon 
1->U
0->V
A->D 
fsi
\end{verbatim}
\subsection{Traduction HP40G}
\noindent-Version itérative avec les listes

On utilise ici aussi le programme  IN qui permet de rentrer deux entiers A et
 B :
\begin{verbatim}INPUT A;"A";;;1:
INPUT B;"B";;;1:
ERASE:\end{verbatim}
Puis on tape le programme BEZOUT :\\
\begin{verbatim}
RUN IN:
DISP 3;"BEZOUT "{A,B}:
{1,0,A} ->L1:
{0,1,B} ->L2:\end{verbatim}
{\tt WHILE L2(3) $\neq$ 0 REPEAT} 
\begin{verbatim}L1-L2*FLOOR(L1(3)/L2(3)) ->L3:
L2 ->L1:
L3 ->L2:
END:
DISP 4;"U V PGCD "L1:
FREEZE:
\end{verbatim} 
-Version récursive sans les listes\\
On écrit le programme {\tt  BEZOUR}, gr\^ace aux commandes ( Merci Bernard!!!):\\
{\tt PUSH}\index{PUSH} ({\tt PUSH(A)} pour mettre le contenu de {\tt A} dans l'historique du {\tt CAS})\\
 et {\tt POP}\index{POP} (pour récupérer les valeurs mises dans l'historique du {\tt CAS})\\ 
{\tt PUSH} et {\tt POP} permettent de simuler la variable locale {\tt Q}
On a remplac\'e dans la  traduction (cf \ref{sec:recsl}) les variables {\tt R} et {\tt W} par la variable temporaire {\tt T}.\\
\noindent{\tt  PROGRAM BEZOUR}\\
{\tt IF B $\neq$ 0 THEN}\begin{verbatim}
PUSH (FLOOR(A/B)):
A MOD B->T:
B->A:
T->B:
RUN BEZOUR:
U-V*POP->T:
V->U:
T->V:
ELSE
 1->U:
 0->V:
 A->D: 
END:
\end{verbatim}

{\tt PUSH (FLOOR(A/B))} a pour effet de mettre les différentes valeurs de 
{\tt FLOOR(A/B)} sur une pile, et {\tt POP} de les récuperer.\\
{\tt T} est une variable auxillaire.\\
{\tt  BEZOUR} prend comme entrée les valeurs des variables globales {\tt A} et
 {\tt B} et remplit les variables globales {\tt U} et {\tt V} de façon que :\\
${\tt A\cdot U+B\cdot V=PGCD(A,B)}$. \\
On écrit ensuite le programme final {\tt  BEZOURT} permettant l'entrée de 
{\tt A} et {\tt B} et la sortie de {\tt \{U, V, D\}}.\\

\noindent{\tt  PROGRAM BEZOURT}
\begin{verbatim}
PROMPT A:
PROMPT B:
RUN BEZOUR:
ERASE:
MSGBOX {U,V,D}:
\end{verbatim}


\noindent{\sc Remarque} :\\
Si on utilise la fonction de calcul symbolique {\tt IREMAINDER} à la place de
{\tt MOD} et {\tt IQUOT(A,B)} à la place de {\tt FLOOR(A/B)} dans les programmes précédents, {\tt BEZOUT} ou {\tt BEZOUR} peut alors avoir comme 
paramètres des entiers de Gauss à condition de remplacer les noms des variables {\tt A, B, R...} par {\tt Z1, Z2, Z3...}.\\  
{\sc Remarque} :\\
Si on utilise la fonction du calcul symbolique {\tt REMAINDER} à la place de
{\tt MOD} dans les programmes précédents, {\tt BEZOUT} (ou {\tt BEZOUR}) peut alors avoir comme paramètres des polyn\^omes\ à condition de remplacer les noms des variables {\tt A, B, R...} par {\tt E1, E2, E3...} et de changer le test d'arr\^et.
\section{D\'ecomposition en facteurs premiers}
\subsection{Les algorithmes et leurs traductions}
- Premier algorithme\\
Soit $N$ un entier.\\
On teste, pour tous les nombres  $D$ de 2 à $N$, la divisibilité de $N$ par $D$.\\
Si $D$ divise $N$, on cherche alors les diviseurs de $N/D$ etc...$N/D$ joue le 
r\^ole de $N$ et on s'arr\^ete quand $N=1$ \\
On met les diviseurs trouvés dans la liste FACT.

\begin{verbatim}
fonction facprem(N)
local D FACT 
2 -> D
{} -> FACT\end{verbatim}
{\tt tant que N $\neq$ 1 faire}
\begin{verbatim}  si N mod D = 0 alors
    FACT + D -> FACT
    N/D -> N
   sinon
    D+1 -> D
 fsi
ftantque
résultat FACT
ffonction
\end{verbatim}
- Première amélioration\\
On ne teste que les diviseurs D entre 2 et $E(\sqrt N)$.\\
En effet si $N=D1*D2$ alors on a :\\
soit $D1 \leq E(\sqrt N)$, soit $D2 \leq E(\sqrt N)$ car sinon on aurait :\\
$D1*D2 \geq  (E(\sqrt N)+1)^2 >N$.

\begin{verbatim}
fonction facprem(N)
local D FACT
2 -> D
{} -> FACT\end{verbatim}
{\tt tant que D*D $\leq$ N faire}
\begin{verbatim}  si N mod D = 0 alors
    FACT + D -> FACT
    N/D-> N
   sinon
    D+1 -> D
 fsi
ftantque
FACT + N -> FACT
résultat FACT
ffonction
\end{verbatim}
- Deuxième amélioration\\
On cherche si 2 divise N, puis on teste les diviseurs impairs D entre 3 et $E(\sqrt N).$\\
Dans la liste FACT, on fait suivre  chaque diviseur par son exposant :\\
 decomp(12)=\{2,2,3,1\}.
\begin{verbatim}
fonction  facprem(N)
local K D FACT
{}->FACT
0 -> K
tant que N mod 2 = 0 faire
    K+1 -> K
    N/2 -> N
ftantque\end{verbatim}
 {\tt  si K $\neq$0 alors}
\begin{verbatim}    FACT + {2 K} -> FACT
fsi
3 ->D \end{verbatim}
{\tt tant que D*D $\leq$ N faire}
\begin{verbatim}  0 -> K
  tant que N mod D = 0 faire
    K+1 -> K
    N/D -> N
  ftantque\end{verbatim}
 {\tt \ \  si K $\neq$0 alors}
\begin{verbatim}    FACT + {D K} -> FACT
  fsi
  D+2 -> D
ftantque\end{verbatim}
{\tt si N $ \neq 1$ alors}
\begin{verbatim}FACT + {N 1} -> FACT
fsi
résultat FACT
ffonction
\end{verbatim}
\subsection{Traduction HP40G}
On traduit le dernier algorithme.\\
La {\tt HP40G} ne connait pas la liste \{\}, donc pour initialiser L1 avec la
 liste vide on écrit : 
{\tt SYSEVAL 259589}.\\
Voici le programme FACTPREM :
\begin{verbatim}
INPUT N;"N";;;1:
ERASE:
0 ->K:
SYSEVAL 259589:
WHILE N MOD 2 == 0 REPEAT
1+K -> K:
N/2 -> N:
END:\end{verbatim}
{\tt IF K $\neq$ 0 THEN}\begin{verbatim}
{2,K} ->L1:
END:
3 ->D:\end{verbatim}
{\tt WHILE D*D $\leq$ N REPEAT}\begin{verbatim}
0 -> K:
WHILE N MOD D == 0 REPEAT
K+1 -> K:
N/D -> N:
END:\end{verbatim}
{\tt IF K $\neq$ 0 THEN}\begin{verbatim}
CONCAT (L1,{D,K}) -> L1:
END:
2+D -> D:
END:\end{verbatim}
{\tt IF N $\neq$ 1 THEN}\begin{verbatim}
CONCAT (L1, {N,1}) -> L1:
END:
DISP 3; "FACT" L1:
FREEZE:
\end{verbatim}
\section{Calcul de $ A^P \  mod\ N$}\label{sec:puimod}
\subsection{Traduction Algorithmique}
-Premier algorithme\\
On utilise deux variables locales PUIS et I.\\
On fait un programme itératif de façon qu'à chaque étape PUIS représente
$A^I \ (\bmod \ N)$.
\begin{verbatim}
fonction puismod (A, P, N)
local PUIS, I
1->PUIS
pour I de 1 a P faire
  A*PUIS mod N ->PUIS 
fpour
resultat PUIS
ffonction
\end{verbatim} 
-Deuxième algorithme\\
On utilise une seule variable locale PUI mais on fait varier P de façon qu'à 
chaque étape de l'itération on ait :\\
$ resultat= PUI * A^P \ (\bmod \ N) $
\begin{verbatim}
fonction puismod (A, P, N)
local PUI
1->PUI
tant que  P>0  faire
  A*PUI mod N ->PUI 
  P-1->P
ftantque
resultat PUI
ffonction
\end{verbatim} 
-Troisième algorithme\\
 On peut aisément modifier ce programme en remarquant que :\\
$A^{2*P} = (A*A)^P $.\\
Donc quand P est pair on a la relation :\\
$PUI*A^P = PUI*(A*A)^{P/2} \ (\bmod \ N)$\\
et quand P est impair on a la relation :\\
$PUI*A^P = PUI*A*A^{P-1}\ (\bmod \ N)$.\\
On obtient  alors un algorithme rapide de $ A^P \ (\bmod \ N) $.
\begin{verbatim}
fonction puismod (A, P, N)
local PUI
1->PUI
tant que  P>0  faire
  si P mod 2 =0 alors
    P/2->P
    A*A mod N->A
  sinon
    A*PUI mod N ->PUI 
    P-1->P
  fsi
ftantque
resultat PUI
ffonction
\end{verbatim} 
On peut remarquer que si P est impair, P-1 est pair.\\
 On peut donc écrire :
\begin{verbatim}
fonction puismod (A, P, N)
local PUI
1->PUI
tant que  P>0  faire
  si P mod 2 =1 alors
    A*PUI mod N ->PUI 
    P-1->P
  fsi   
P/2->P
A*A mod N->A
ftantque
resultat PUI
ffonction
\end{verbatim} 
\subsection{Traduction HP40G}
Le calcul de $A^p \bmod N$ est utilisé dans le
 programme de la méthode probabiliste  de Mr Rabin.
On se reportera donc à ce  sous-programme pour la traduction (cf \ref{sec:rabin}).\\
\section{La fonction ``estpremier''}
\subsection{Traduction Algorithmique}
- Premier algorithme

On va écrire un fonction booléenne de paramètre N, qui sera égale à  VRAI 
quand N est premier et à FAUX sinon.

Pour cela, on cherche si N posséde un diviseur $\neq$ 1 et $\leq$ à $ E(\sqrt{N})$ (partie entière de racine de N).

On traite le cas N=1 à part!

On utilise une variable booléenne PREM, qui est au départ à VRAI, et qui passe 
à FAUX d\`es que l'on rencontre un diviseur de N.


\begin{verbatim}
Fonction estpremier(N)
local PREM, I, J\end{verbatim}
${\tt  E(\sqrt{N}) ->J}$
\begin{verbatim}Si N = 1 alors
  FAUX->PREM
  sinon
  VRAI->PREM
fsi
2->I\end{verbatim}
{\tt tant que PREM et I $\leq$J faire}
\begin{verbatim}  si N mod I = 0 alors
     FAUX->PREM
     sinon
     I+1->I
  fsi 
ftantque
résultat PREM
ffonction
\end{verbatim}

- Première amélioration

On peut remarquer que l'on peut tester si N est pair, et sinon regarder si N 
possède un diviseur impair.

\begin{verbatim}
Fonction estpremier(N)
local PREM, I, J\end{verbatim}
${\tt  E(\sqrt{N}) ->J} $\\
{\tt  Si (N = 1) ou (N mod 2 = 0) et (N$\neq$2) alors}\begin{verbatim}
  FAUX->PREM
  sinon
  VRAI->PREM
fsi
3->I\end{verbatim}
{\tt tant que PREM et I $\leq$J faire}
\begin{verbatim}  si N mod I = 0 alors
     FAUX->PREM
     sinon
     I+2->I
  fsi 
ftantque
résultat PREM
ffonction
\end{verbatim}


- Deuxième amélioration

On regarde si N est divisible par 2 ou par 3,  sinon on regarde si N posséde un diviseur de la forme $6 \times k-1 $ ou  $6 \times k+1 $.


\begin{verbatim}
Fonction estpremier(N)
local PREM, I, J\end{verbatim}
${\tt  E(\sqrt{N}) ->J}$
\begin{verbatim}Si (N = 1) ou (N mod 2 = 0) ou ( N mod 3 = 0) alors
  FAUX->PREM
  sinon
  VRAI->PREM
fsi
si N=2 ou N=3 alors 
VRAI->PREM
fsi
5->I\end{verbatim}
{\tt tant que PREM et I $\leq$J faire}
\begin{verbatim}  si (N mod I = 0) ou (N mod I+2 =0) alors
     FAUX->PREM
     sinon
     I+6->I
  fsi 
ftantque
résultat PREM
ffonction
\end{verbatim}
\subsection{Traduction HP40G}
\begin{verbatim}INPUT N;"N";;;1:
IF N MOD 2== 0 OR N MOD 3==0 OR N==1 THEN
0 ->P:
ELSE
1->P:
END:
IF N==2 OR N==3 THEN
1->P:
END:
5->I:\end{verbatim}
${\tt FLOOR(\sqrt {N})->J:}$\\
{\tt WHILE I $\leq$ J AND P REPEAT}\begin{verbatim}
IF N MOD I==0 OR N MOD I+2==0 THEN 
0 ->P:
ELSE
I+6 ->I:
END:
END:
ERASE:
DISP 5;P:
FREEZE: 
\end{verbatim}
\section{Méthode probabiliste de Mr Rabin}\label{sec:rabin}
Si $N$ est premier alors tous les nombres $K$ strictement inf\'erieurs \`a $N$ sont
premiers avec $N$, donc d'apr\`es le petit th\'eor\`eme de Fermat on a :


$ K^{N-1} = 1 \  (\bmod\  N)$ 

Si $N$ n'est pas premier, les entiers $K$ vérifiant:

$ K^{N-1} = 1 \  (\bmod\  N)$ 

sont tr\`es peu nombreux.\\
Plus pr\'ecisement on peut montrer que si $ N>4 $, la probabilit\'e d'obtenir
 un tel nombre $K$ est inf\'erieure \`a 0.25.\\
Un nombre $N$ vérifiant $ K^{N-1} = 1 \  (\bmod\  N)$ pour 20 tirages de $K$
  est un nombre pseudo-premier.
La m\'ethode probabiliste de Rabin consiste \`a tirer au hasard un nombre $K$ 
($1< K < N $) et à calculer :

$ K^{N-1}  \  (\bmod\  N)$  

Si $ K^{N-1} = 1 \  (\bmod\  N)$ on refait un autre tirage et si 
$ K^{N-1} \neq  1 \  (\bmod\  N)$ on est s\^ur que $N$ n'est pas premier.

Si on obtient $ K^{N-1} = 1 \  (\bmod\  N)$  pour 20 tirages  de $K$ on 
peut conclure
 que $N$ est premier avec une probabilit\'e d'erreur tr\`es faible inf\'erieure \`a $0.25^{20}$ soit de l'ordre de $10^{-12}$.

Bien s\^ur cette m\'ethode est employée pour savoir  si de  grands nombres sont pseudo-premiers.

\subsection{Traduction Algorithmique}
  On suppose que :

{\tt Hasard(N)} donne un nombre entier au hasard entre 0 et $N-1$.

 Le calcul de :

$ K^{N-1}  \bmod\  N$  

se fait gr\^ace \`a l'algorithme de la puissance rapide 
(cf page \pageref{sec:puimod}).

On notera :

{\tt puismod(K, P, N)} la fonction qui calcule $ {\tt K^P  \bmod\  N}$  

\begin{verbatim}
Fonction estprem(N)
local K, I, P
1->I
1->P
Tant que P = 1 et I < 20 faire
hasard(N-2)+2->K
puismod(K, N-1, N)->P
I+1->I
ftantque
Si P =1 alors
resultat VRAI
sinon
resultat FAUX
fsi
ffonction
\end{verbatim}
\subsection{Traduction HP40G}
\begin{verbatim}
PROMPT N:
RANDSEED TIME:
1->I:
1->P:
WHILE I < 20 AND P==1 REPEAT
  FLOOR( RANDOM * (N-2))+2->K:
  N-1->M:
  @ Calcul de K puissance M mod N dans P.
  1->P:
  WHILE  0 < M REPEAT
    IF M MOD 2 == 0 THEN
      M / 2 -> M :
      (K * K)  MOD N ->K :
    ELSE
      K*P MOD N -> P:
      M - 1 -> M:
    END:
  END: 
  @ P contient K puissance M mod N et M=N-1.
  I+1 ->I:
END:
ERASE:
IF P==1 THEN
  DISP 3;"PREMIER " N: 
ELSE 
  DISP 3;"NON PREMIER " N:
END:
FREEZE:\end{verbatim}
{\sc Remarque} : \\
On peut aussi utiliser la fonction de calcul formel {\tt POWMOD} et on écrit alors :\\
{\tt MODSTO(N):\\
POWMOD(K,N-1) STO$\triangleright$ P:}\\
à la place des instructions comprises entre les @ on obtient :\\
\begin{verbatim}
PROMPT N:
RANDSEED TIME:
1->I:
1->P:
WHILE I < 20 AND P==1 REPEAT
  FLOOR( RANDOM * (N-2))+2->K:
 MODSTO(N):
POWMOD(K,N-1) STO$\triangleright$ P:
  I+1 ->I:
END:
ERASE:
IF P==1 THEN
  DISP 3;"PREMIER " N: 
ELSE 
  DISP 3;"NON PREMIER " N:
END:
FREEZE:\end{verbatim}

\chapter{GNU Free Documentation License} \label{fdl}
{\tiny
\tt
Version 1.1, March 2000

Copyright (C) 2000  Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

0. PREAMBLE

The purpose of this License is to make a manual, textbook, or other written
document "free" in the sense of freedom: to assure everyone the effective
freedom to copy and redistribute it, with or without modifying it, either
commercially or noncommercially. Secondarily, this License preserves for the
author and publisher a way to get credit for their work, while not being
considered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of
the document must themselves be free in the same sense. It complements the
GNU General Public License, which is a copyleft license designed for free
software.

We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free program
should come with manuals providing the same freedoms that the software does.
But this License is not limited to software manuals; it can be used for any
textual work, regardless of subject matter or whether it is published as a
printed book. We recommend this License principally for works whose purpose
is instruction or reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice
placed by the copyright holder saying it can be distributed under the terms
of this License. The "Document", below, refers to any such manual or work.
Any member of the public is a licensee, and is addressed as "you".

A "Modified Version" of the Document means any work containing the Document
or a portion of it, either copied verbatim, or with modifications and/or
translated into another language.

A "Secondary Section" is a named appendix or a front-matter section of the
Document that deals exclusively with the relationship of the publishers or
authors of the Document to the Document's overall subject (or to related
matters) and contains nothing that could fall directly within that overall
subject. (For example, if the Document is in part a textbook of mathematics,
a Secondary Section may not explain any mathematics.) The relationship could
be a matter of historical connection with the subject or with related
matters, or of legal, commercial, philosophical, ethical or political
position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are
designated, as being those of Invariant Sections, in the notice that says
that the Document is released under this License.

The "Cover Texts" are certain short passages of text that are listed, as
Front-Cover Texts or Back-Cover Texts, in the notice that says that the
Document is released under this License.

A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the general
public, whose contents can be viewed and edited directly and
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or for
automatic translation to a variety of formats suitable for input to text
formatters. A copy made in an otherwise Transparent file format whose markup
has been designed to thwart or discourage subsequent modification by readers
is not Transparent. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII
without markup, Texinfo input format, LaTeX input format, SGML or XML using
a publicly available DTD, and standard-conforming simple HTML designed for
human modification. Opaque formats include PostScript, PDF, proprietary
formats that can be read and edited only by proprietary word processors,
SGML or XML for which the DTD and/or processing tools are not generally
available, and the machine-generated HTML produced by some word processors
for output purposes only.

The "Title Page" means, for a printed book, the title page itself, plus such
following pages as are needed to hold, legibly, the material this License
requires to appear in the title page. For works in formats which do not have
any title page as such, "Title Page" means the text near the most prominent
appearance of the work's title, preceding the beginning of the body of the
text.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially
or noncommercially, provided that this License, the copyright notices, and
the license notice saying this License applies to the Document are
reproduced in all copies, and that you add no other conditions whatsoever to
those of this License. You may not use technical measures to obstruct or
control the reading or further copying of the copies you make or distribute.
However, you may accept compensation in exchange for copies. If you
distribute a large enough number of copies you must also follow the
conditions in section 3.

You may also lend copies, under the same conditions stated above, and you
may publicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies of the Document numbering more than 100, and
the Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover Texts:
Front-Cover Texts on the front cover, and Back-Cover Texts on the back
cover. Both covers must also clearly and legibly identify you as the
publisher of these copies. The front cover must present the full title with
all words of the title equally prominent and visible. You may add other
material on the covers in addition. Copying with changes limited to the
covers, as long as they preserve the title of the Document and satisfy these
conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly,
you should put the first ones listed (as many as fit reasonably) on the
actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more
than 100, you must either include a machine-readable Transparent copy along
with each Opaque copy, or state in or with each Opaque copy a
publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the general
network-using public has access to download anonymously at no charge using
public-standard network protocols. If you use the latter option, you must
take reasonably prudent steps, when you begin distribution of Opaque copies
in quantity, to ensure that this Transparent copy will remain thus
accessible at the stated location until at least one year after the last
time you distribute an Opaque copy (directly or through your agents or
retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give them
a chance to provide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the
conditions of sections 2 and 3 above, provided that you release the Modified
Version under precisely this License, with the Modified Version filling the
role of the Document, thus licensing distribution and modification of the
Modified Version to whoever possesses a copy of it. In addition, you must do
these things in the Modified Version:

   * A. Use in the Title Page (and on the covers, if any) a title distinct
     from that of the Document, and from those of previous versions (which
     should, if there were any, be listed in the History section of the
     Document). You may use the same title as a previous version if the
     original publisher of that version gives permission.
   * B. List on the Title Page, as authors, one or more persons or entities
     responsible for authorship of the modifications in the Modified
     Version, together with at least five of the principal authors of the
     Document (all of its principal authors, if it has less than five).
   * C. State on the Title page the name of the publisher of the Modified
     Version, as the publisher.
   * D. Preserve all the copyright notices of the Document.
   * E. Add an appropriate copyright notice for your modifications adjacent
     to the other copyright notices.
   * F. Include, immediately after the copyright notices, a license notice
     giving the public permission to use the Modified Version under the
     terms of this License, in the form shown in the Addendum below.
   * G. Preserve in that license notice the full lists of Invariant Sections
     and required Cover Texts given in the Document's license notice.
   * H. Include an unaltered copy of this License.
   * I. Preserve the section entitled "History", and its title, and add to
     it an item stating at least the title, year, new authors, and publisher
     of the Modified Version as given on the Title Page. If there is no
     section entitled "History" in the Document, create one stating the
     title, year, authors, and publisher of the Document as given on its
     Title Page, then add an item describing the Modified Version as stated
     in the previous sentence.
   * J. Preserve the network location, if any, given in the Document for
     public access to a Transparent copy of the Document, and likewise the
     network locations given in the Document for previous versions it was
     based on. These may be placed in the "History" section. You may omit a
     network location for a work that was published at least four years
     before the Document itself, or if the original publisher of the version
     it refers to gives permission.
   * K. In any section entitled "Acknowledgements" or "Dedications",
     preserve the section's title, and preserve in the section all the
     substance and tone of each of the contributor acknowledgements and/or
     dedications given therein.
   * L. Preserve all the Invariant Sections of the Document, unaltered in
     their text and in their titles. Section numbers or the equivalent are
     not considered part of the section titles.
   * M. Delete any section entitled "Endorsements". Such a section may not
     be included in the Modified Version.
   * N. Do not retitle any existing section as "Endorsements" or to conflict
     in title with any Invariant Section.

If the Modified Version includes new front-matter sections or appendices
that qualify as Secondary Sections and contain no material copied from the
Document, you may at your option designate some or all of these sections as
invariant. To do this, add their titles to the list of Invariant Sections in
the Modified Version's license notice. These titles must be distinct from
any other section titles.

You may add a section entitled "Endorsements", provided it contains nothing
but endorsements of your Modified Version by various parties--for example,
statements of peer review or that the text has been approved by an
organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list of
Cover Texts in the Modified Version. Only one passage of Front-Cover Text
and one of Back-Cover Text may be added by (or through arrangements made by)
any one entity. If the Document already includes a cover text for the same
cover, previously added by you or by arrangement made by the same entity you
are acting on behalf of, you may not add another; but you may replace the
old one, on explicit permission from the previous publisher that added the
old one.

The author(s) and publisher(s) of the Document do not by this License give
permission to use their names for publicity for or to assert or imply
endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified versions,
provided that you include in the combination all of the Invariant Sections
of all of the original documents, unmodified, and list them all as Invariant
Sections of your combined work in its license notice.

The combined work need only contain one copy of this License, and multiple
identical Invariant Sections may be replaced with a single copy. If there
are multiple Invariant Sections with the same name but different contents,
make the title of each such section unique by adding at the end of it, in
parentheses, the name of the original author or publisher of that section if
known, or else a unique number. Make the same adjustment to the section
titles in the list of Invariant Sections in the license notice of the
combined work.

In the combination, you must combine any sections entitled "History" in the
various original documents, forming one section entitled "History"; likewise
combine any sections entitled "Acknowledgements", and any sections entitled
"Dedications". You must delete all sections entitled "Endorsements."

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in the
collection, provided that you follow the rules of this License for verbatim
copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it
individually under this License, provided you insert a copy of this License
into the extracted document, and follow this License in all other respects
regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and
independent documents or works, in or on a volume of a storage or
distribution medium, does not as a whole count as a Modified Version of the
Document, provided no compilation copyright is claimed for the compilation.
Such a compilation is called an "aggregate", and this this License does not
apply to the other self-contained works thus compiled with the Document, on
account of their being thus compiled, if they are not themselves derivative
works of the Document. If the Cover Text requirement of section 3 is
applicable to these copies of the Document, then if the Document is less
than one quarter of the entire aggregate, the Document's Cover Texts may be
placed on covers that surround only the Document within the aggregate.
Otherwise they must appear on covers around the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute
translations of the Document under the terms of section 4. Replacing
Invariant Sections with translations requires special permission from their
copyright holders, but you may include translations of some or all Invariant
Sections in addition to the original versions of these Invariant Sections.
You may include a translation of this License provided that you also include
the original English version of this License. In case of a disagreement
between the translation and the original English version of this License,
the original English version will prevail.

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as
expressly provided for under this License. Any other attempt to copy,
modify, sublicense or distribute the Document is void, and will
automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have
their licenses terminated so long as such parties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU
Free Documentation License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to
address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the
Document specifies that a particular numbered version of this License "or
any later version" applies to it, you have the option of following the terms
and conditions either of that specified version or of any later version that
has been published (not as a draft) by the Free Software Foundation. If the
Document does not specify a version number of this License, you may choose
any version ever published (not as a draft) by the Free Software Foundation.

How to use this License for your documents

To use this License in a document you have written, include a copy of the
License in the document and put the following copyright and license notices
just after the title page:

      Copyright (c)  YEAR  YOUR NAME.
      Permission is granted to copy, distribute and/or modify this document
      under the terms of the GNU Free Documentation License, Version 1.1
      or any later version published by the Free Software Foundation;
      with the Invariant Sections being LIST THEIR TITLES, with the
      Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
      A copy of the license is included in the section entitled "GNU
      Free Documentation License".

If you have no Invariant Sections, write "with no Invariant Sections"
instead of saying which ones are invariant. If you have no Front-Cover
Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
LIST"; likewise for Back-Cover Texts.

If your document contains nontrivial examples of program code, we recommend
releasing these examples in parallel under your choice of free software
license, such as the GNU General Public License, to permit their use in free
software.
}
\twocolumn  
%\newpage
\printindex
%\newpage
\twocolumn
\tableofcontents

\end{document}

