\documentclass[a4paper,11pt]{article}
%\textwidth 11,8 cm
%\textheight 17 cm
\textheight 23 cm
\topmargin -10mm
%\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{stmaryrd}
\usepackage{makeidx}
\usepackage{times}
%\usepackage{mathptmx}
%Uncomment next line for pdflatex and use includegraphics with eps file
% for latex2html don't use the option [width=\textwidth]
% check that xfig files are exported magnif 100%

 \usepackage[ps2pdf,
            breaklinks=true,
            colorlinks=true,
            linkcolor=red,
            citecolor=green
            ]{hyperref}

%HEVEA\htmlfoot{Retour \`a la page personnelle de \ahref{http://www-fourier.ujf-grenoble.fr/\~parisse}{Bernard Parisse}.}
%HEVEA\htmlhead{Retour \`a la page personnelle de \ahref{http://www-fourier.ujf-grenoble.fr/\~parisse}{Bernard Parisse}.}
\usepackage{pst-plot}
\usepackage{graphicx}

%\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}

\newcommand{\R}{{\mathbb{R}}}
\newcommand{\C}{{\mathbb{C}}}
\newcommand{\Z}{{\mathbb{Z}}}
\newcommand{\N}{{\mathbb{N}}}
%\usepackage[pdftex]{hyperref}
\title {La nouvelle interface de {\tt Xcas}}
\author{Ren\'ee De Graeve\\ Ma\^itre de Conf\'erence à Grenoble I}
\date{}
\makeindex
\begin{document}
\newcommand{\asinh}{\,\,\mbox{asinh\,}}
\newcommand{\atanh}{\,\,\mbox{atanh\,}}
\maketitle


\vfill
{\bf \centerline{Remerciements}}
Je  remercie:
 \begin{itemize}
\item Bernard Parisse pour ses pr\'ecieux conseils et ses remarques sur ce texte,

 \end{itemize}

\vspace{1cm}


\copyright\ 2002, 2006 Ren\'ee De Graeve, \verb|renee.degraeve@wanadoo.fr|\\
La copie, la traduction et la redistribution de ce document sur
support \'electronique
ou papier sont autoris\'es pour un usage non commercial uniquement.
L'utilisation de ce document \`a des fins commerciales est interdite
sans l'accord \'ecrit du d\'etenteur du copyright.
Cette documentation est fournie en l'\'etat, sans garantie d'aucune
sorte. En aucun cas le d\'etenteur du copyright ne pourra \^etre tenu
pour responsable de dommages r\'esultant de l'utilisation de ce
document.
\newpage
\printindex
\newpage
\tableofcontents
\newpage 
%\chapter{La librairie {\tt giac} et son interface  {\tt xcasnew}}\index{xcasnew}
\section{Pour commencer}
\subsection{Le principe}
Cette interface va vous permettre d'ouvrir plusieurs sessions de 
calculs : ces sessions ont plusieurs niveaux 
d'entr\'ee %, sont ind\'ependantes les unes des autres 
et peuvent \^etre pli\'ees (seul le titre est
visible) ou d\'epli\'ees (tout est visible).

Chaque session est compos\'ee de niveaux num\'erot\'es qui 
contiendront~:
\begin{itemize}
\item soit une ligne de commandes pour ex\'ecuter des commandes de
  {\tt Xcas}. On valide la commande par {\tt Enter}.
Il apparait alors un emplacement pour les affichages interm\'ediaires
(si il y a des instructions {\tt print} dans la commande) et 
un emplacement pour la r\'eponse qui peut \^etre
un \'editeur d'\'equations ou une fen\^etre graphique.
\item soit un \'editeur d'\'equations, 
\item soit un \'ecran de g\'eom\'etrie 2D, ses menus et boutons 
et ses lignes de  commandes,
\item soit un \'ecran de g\'eom\'etrie 3D, ses menus et boutons 
et ses lignes de commandes,
\item soit un \'ecran de g\'eom\'etrie tortue (logo), 
son \'editeur de programmes et ses lignes de commandes,
\item soit un tableur et son \'ecran graphique 2D,
\item soit un \'editeur de programmes,
\item soit un commentaire,
\item soit un regroupement de ces niveaux en un groupe.
\end{itemize}
Au sein d'une m\^eme session, les  diff\'erents niveaux d'entr\'ee ne sont pas 
ind\'ependants, par exemple, la variable d\'efinie dans une ligne de commandes
pourra \^etre utilis\'ee en g\'eom\'etrie ou dans le tableur.
L'ensemble de toutes ces sessions constitue votre espace de travail.

On peut effacer ou d\'eplacer un niveau ou un groupe de niveau
dans une session, ou encore le recopier dans une autre session.
On peut \`a tout moment ins\'erer un nouveau niveau ou encore changer 
l'entr\'ee d'un niveau : {\tt Enter} valide le changement de ce niveau et 
positionne le curseur sur l'entr\'ee suivante, 
mais les niveaux suivants
ne seront pas recalcul\'es. Il est toutefois possible apr\`es une modification
de r\'eex\'ecuter, soit tous les niveaux, soit les niveaux situ\'es 
apr\`es la modification (menu {\tt Edit} puis {\tt Execute} puis
{\tt session} ou {\tt en\_dessous}).

\subsection{Notations}
Lorsque l'on doit appuyer sur 2 touches en m\^eme temps on reliera ces deux 
touches avec  {\tt +}. Par exemple, si on doit appuyer en m\^eme temps sur
{\tt Alt} et sur {\tt t} on \'ecrira {\tt Alt+t}.

Lorsque l'on veut indiquer le choix \`a faire dans un menu on reliera les 
diff\'erents sous-menus avec $\blacktriangleright$. Par exemple,
pour indiquer
comment ouvrir l'\'ecran des sorties graphiques interm\'ediaires 
d'un programme,
on \'ecrira~:
\begin{center}
menu {\tt Session} puis {\tt Montrer} puis {\tt Montrer DispG}\\ ou \\
{\tt Session$\blacktriangleright$Montrer$\blacktriangleright$Montrer
  DispG}
\end{center}

Le niveau actif est celui o\`u se trouve le curseur et le niveau s\'electionn\'e
est obtenu quand on clique sur son num\'ero, num\'ero qui 
s'\'ecrit alors sur fond noir.
 
\subsection{Le d\'emarrage}
Pour ouvrir un espace de travail, on clique sur l'ic\^one {\tt xcasfr} du 
bureau sous Windows ou de Applications sur Mac OS X ou on tape dans un
terminal sous Linux : {\tt xcas \&}

La premi\`ere fois que vous lancez {\tt Xcas}, 
on vous demandera de choisir un mode de d\'emarrage parmi~:
\begin{center}
{\tt \framebox{Autre} \framebox{Calcul formel} \framebox{Tortue} }
\end{center}
afin d'avoir le m\^eme environnement \`a chaque d\'emarrage.
Si vous tapez sur {\tt Enter} ou sur {\tt Calcul formel} c'est 
{\tt Calcul formel} qui sera s\'electionn\'e et vous devrez choisir
entre la syntaxe Xcas, Maple ou TI89. Si vous cliquez sur 
{\tt Autre}, vous devrez choisir entre Geometrie, Tableur
statistique ou Programmation et calcul formel. Si vous cliquez
sur {\tt Tortue}, ce sera le mode Tortue qui sera lanc\'e
au d\'emarrage.  Ce choix n'influe que sur 
l'\'ecran que l'on obtient au d\'emarrage car \`a tout moment vous pouvez 
cr\'eer un nouveau niveau d'entr\'ee de n'importe quelle nature et \`a 
n'importe quel endroit de votre session ou encore ouvrir une nouvelle 
session. Vous pouvez changer ult\'erieurement de mode
de d\'emarrage (menu {\tt Cfg} puis {\tt Configuration generale},
faire son choix, puis menu  {\tt Cfg} et {\tt Sauver preferences}). 
Vous pouvez aussi relancer l'\'ecran de configuration initial
en effacant le fichier :
\verb|~/.xcasrc| sous Linux ou {\tt xcas.rc} sous Windows.


Vous obtenez alors le menu g\'en\'eral de votre espace de travail
avec de haut en bas~:
\begin{enumerate}
\item Un menu g\'en\'eral {\tt Session Cfg...Graph} contenant les 
fonctions de {\tt Xcas} et ce qu'il faut pour les configurer et pour sauver 
ou charger une session de travail.
\item Une session de num\'ero 1 avec sa barre de menu et selon le
mode, son premier niveau ou ses deux premiers niveaux.\\
En mode de d\'emarrage calcul formel, 
le premier niveau (de num\'ero 1) est un niveau "ligne de commandes" 
c'est \`a dire une ligne pour taper des commandes de {\tt Xcas}.\\
En mode tortue, le premier niveau sera un niveau "dessin tortue" 
c'est \`a dire une ligne de commandes de num\'ero 1 \`a gauche, 
un \'ecran graphique  pour piloter la tortue au centre et un 
\'ecran pour le r\'ecapitulatif des commandes \`a droite~;
le deuxi\`eme niveau sera un niveau "\'editeur de programmes" c'est \`a dire 
un \'editeur pour taper des programmes et sa barre de menu.
\item Selon la configuration, rien ou un clavier virtuel ou/et une barre
de boutons,
\item Un bandeau g\'en\'eral avec de gauche \`a droite :
\begin{itemize}
\item Un bouton \framebox{\tt ?}, en bleu, permettant d'ouvrir le sous menu {\tt Index} 
du menu {\tt Aide}. Il sert aussi de touche de tabulation, car il ouvre le menu
{\tt Aide}\`a l'endroit indiqu\'e par la ligne de commandes o\`u figure 
le curseur,
\item Un bouton \framebox{\tt kbd}, en bleu, servant \`a faire apparaitre ou disparaitre
un clavier scientifique,
\item Un bouton \framebox{$\overline{\blacksquare}$} en bleu, servant \`a faire apparaitre
ou disparaitre une barre de boutons de commandes du CAS, appel\'ee bandeau du 
CAS,
\item Un bouton \framebox{\tt msg}, en bleu,  servant \`a faire apparaitre
ou disparaitre une fen\^etre de messages indiquant si tout 
s'est bien pass\'e (par exemple {\tt Success}). Cette fen\^etre de messages est
facilement lisible gr\^ace \`a sa barre de scroll, 
\item Un bouton \framebox{\tt TeX}, en bleu, permettant de traduire en {\tt TeX} la 
question ou la r\'eponse ou le contenu de l'\'editeur d'\'equations~: on 
s\'electionne une question ou une r\'eponse ou le contenu d'un \'editeur 
d'\'equations\footnote{Si vous voulez traduire une \'equation en {\tt TeX}, 
tapez votre \'equation entre deux {\tt '} ce qui l'affichera 
dans un \'editeur d'\'equations.}
Remarquez le petit bouton {\tt Menu} \index{Menu}
situ\'e \`a l'intersection des 2 barres de scroll de l'\'editeur d'\'equations 
qui permet soit de recopier ce qui se trouve dans l'\'editeur d'un seul clic,
(avec {\tt Selectionner tout}), soit d'\'evaluer la s\'election (avec 
{\tt Evaluer selection}), soit de retrouver la r\'eponse initiale (avec 
{\tt Annuler}), dans le cas o\`u, on a fait une modification malencontreuse 
car comme les r\'eponses non graphiques sont affich\'ees dans un 
\'editeur d'\'equations, elles peuvent donc \^etre modifi\'ees...,
Lorsqu'on appuie sur le bouton {\tt TeX}, la traduction en {\tt TeX} 
apparait alors dans l'\'ecran des messages (que l'on peut voir 
en cliquant sur {\tt msg}).
On peut la recopier dans un \'editeur ({\tt emacs, nedit, vi, ...})
par un clic avec le bouton du milieu.\\
Par exemple~:
\begin{itemize}
\item
on saisit dans un niveau de calcul formel {\tt concat([1,2],3)}
et on le met en surbrillance, on appuie sur {\tt TeX},
ce qui provoque l'inscription dans la partie reserv\'ee aux messages de :
\begin{verbatim}
\mbox{concat}([1,2],3)
\end{verbatim}
\item
on saisit {\tt sqrt(1+3)}, on le met en surbrillance,
on appuie sur {\tt TeX}, ce qui provoque l'inscription dans la partie 
reserv\'ee aux messages de :
\begin{verbatim}
\sqrt{1+3}
\end{verbatim}
\end{itemize}
Il ne vous reste plus qu'\`a recopier le texte ainsi traduit, d'un coup de 
souris, dans une portion en mode math\'ematique de votre document \LaTeX.
\item Une ligne d'\'etat, en rouge, rappelant la configuration du CAS : on a 
par exemple \framebox{\tt = real RAD 12 xcas 11.704M} pour rappeler que l'on 
est en mode
r\'eel et exact, que les calculs sont faits avec 12 chiffres significatifs, que
le style de programmation est {\tt xcas}, combien le calcul demande de 
recources en m\'emoire. Le mode complexe sera not\'e {\tt cplx} si les 
variables ne sont pas consid\'er\'ees comme complexe ({\tt re(z)=z}) et 
{\tt CPLX} sinon ({\tt re(z)=re(z)}). Cette ligne d'\'etat  est aussi un bouton
qui ouvre la m\^eme fen\^etre de configuration que celle obtenue \`a partir du 
menu {\tt Cfg$\blacktriangleright$Configuration du CAS},
\item  Un bouton rouge \framebox{\tt STOP} pour arr\^eter un calcul trop long, 
\item  Un bouton \framebox{\tt$\blacktriangleleft$ } permet de supprimer ce que
l'on a s\'electionn\'e,
\item  Un bouton \framebox{\tt coller} permet de recopier ce que 
l'on a s\'electionn\'e, 
\item   Un bouton vert \framebox{\tt $\hookleftarrow$} servant de touche 
{\tt Enter}.
\end{itemize}
\end{enumerate}

\subsection{Un premier calcul}
Si on veut  utiliser une commande de {\tt Xcas}, il suffit de la taper
dans une ligne de commandes puis de valider avec la touche {\tt Enter}.
Par exemple, si on tape :
\begin{center}
{\tt 1+2 Enter}
\end{center}
On obtient en dessous la r\'eponse {\tt 3} et un niveau de num\'ero 2 est 
cr\'eé.

Si on tape~:
\begin{center}
{\tt 100! Enter}
\end{center}
On obtient la r\'eponse que l'on peut lire avec la barre de scroll situ\'ee en 
dessous et un niveau de num\'ero 3 est cr\'eé.

On tape maintenant~:
\begin{center}
{\tt expand((1+x)\verb|^|100) Enter}
\end{center}
On obtient la r\'eponse que l'on peut lire avec la barre de scroll situ\'ee 
\`a droite de la r\'eponse et un niveau de num\'ero 4 est cr\'eé : on le voit
gr\^ace \`a la barre de scroll de la session situ\'ee \`a droite de la 
pr\'ec\'edente. Vous remarquerez que, si vous avez choisi {\tt expand} dans le 
menu {\tt Math $\blacktriangleright$Reecriture} une aide succincte sur 
{\tt expand} s'affiche dans la ligne des messages, et une aide plus compl\`ete 
s'affiche dans le navigateur (Mozilla par d\'efaut sous Linux et
Internet Explorer par d\'efaut sous Windows)\footnote{Par contre, 
si vous avez cliqu\'e sur {\tt expand} dans le 
bandeau, seule l'aide succincte apparait. Pour voir ce bandeau 
il faut avoir choisi 
{\tt Cfg$\blacktriangleright$Bandeau$\blacktriangleright$Voir bandeau}, 
{\tt expand} se trouve en cliquant sur {\tt Math} puis sur {\tt
  Reecriture}}.
 
{\bf Remarque}~:
lorsque le temps de calcul est sup\'erieur \`a
0.1s, ce temps s'affiche en bleu dans la zone interm\'ediaire
 reserv\'ee aux affichages de programmes.

Si on veut ins\'erer un niveau suppl\'ementaire, on utilise le 
menu {\tt Edit}, sous-menu {\tt Ajouter}, puis~:
\begin{itemize}
\item {\tt commentaire} ou le raccourci {\tt Alt+c} pour avoir une ligne 
servant \`a \'ecrire des commentaires,
\item {\tt equation} ou le raccourci {\tt Alt+e} pour avoir un \'editeur 
d'\'equations et un bouton {\tt Menu} \index{Menu} en bas et \`a droite 
permettant de s\'electionner toute l'expression, d'\'evaluer la s\'election ou 
d'annuler la modification pr\'ec\'edente,
\item {\tt nouvelle entr\'ee}  ou le raccourci {\tt Alt+n} pour avoir une ligne
de commandes, 
\item {\tt geo2d} ou le raccourci {\tt Alt+g} pour avoir une 
barre de menu, et en dessous, un 
\'ecran de g\'eom\'etrie plane avec des boutons pour r\'egler le graphique \`a 
droite et une ligne de commandes de num\'ero 1 \`a gauche,
\item {\tt geo2d exact} pour travailler avec des coordonn\`ees exactes : si on 
d\'efinit des points en cliquant, les points auront des coordonn\`ees exactes 
et on pourra utiliser l'instruction {\tt assume} pour faire des 
d\'emonstrations,
\item {\tt geo3d} ou le raccourci {\tt Alt+h} pour avoir une 
barre de menu, et en dessous, un 
\'ecran de g\'eom\'etrie 3D avec des boutons pour r\'egler le graphique \`a 
droite et une ligne de commandes de num\'ero 1 \`a gauche,
\item {\tt geo3d exact} pour travailler avec des coordonn\`ees exactes, 
\item
{\tt tableur} ou le raccourci {\tt Alt+t} pour avoir une 
barre de menu, et en dessous, un tableur \`a droite 
 et son \'ecran graphique \`a gauche,
\item{\tt program} ou le raccourci {\tt Alt+p} pour avoir une 
barre de menu, et en dessous, un \'editeur de programmes.
\item {\tt dessin tortue}  ou le raccourci {\tt Alt+d} pour avoir un \'ecran
graphique au centre permettant de faire des dessins en pilotant une tortue
avec un bandeau contenant les diff\'erentes commandes,
une ligne de commandes de num\'ero 1 \`a gauche et \`a droite un \'editeur, avec
sa barre de menu qui contiendra les commandes r\'ealis\'ees.
\end{itemize}
Cela va cr\'eer un nouveau niveau d'entr\'ee situ\'e avant le dernier niveau 
actif ou s\'electionn\'e (on s\'electionne un niveau en cliquant sur son num\'ero).
Il faut noter que si on vient de valider une modification dans une ligne de 
commandes, le niveau actif est le niveau suivant celui que l'on vient de 
modifier.

\section{La barre du menu g\'en\'eral}
En haut de votre \'ecran, vous voyez :\\
{\tt Session Cfg Aide Exemples Math Phys Geo Reecriture}\\
{\tt Scolaire Prg Graph}

\subsection{Le menu {\tt Session}}
\begin{itemize}
\item
{\tt Nouveau}  pour cr\'eer une nouvelle session qui se mettra 
apr\`es les sessions d\'ej\`a ouvertes (de num\'ero $(n+1)$ si $n$ sessions 
sont d\'ej\`a ouvertes),
\item
{\tt Ouvrir} ou {\tt Alt+o} pour ouvrir une nouvelle session et 
charger une session sauv\'ee pr\'ec\'edemment, 
\item
{\tt Ouvrir une session Maple} pour ouvrir une session que l'on 
a r\'ealis\'ee et sauv\'ee avec le logiciel {\tt Maple} dans un fichier en 
{\tt .mws} (veillez \`a utiliser l'"ancien" format de sauvegarde 
avec Maple 9, 10,...).\\
{\tt Xcas} r\'ecup\`ere les commentaires et les entr\'ees.
On peut alors faire ex\'ecuter ces entr\'ees avec {\tt Execute} du menu 
{\tt Edit} de la session, mais il est pr\'ef\'erable de faire une ex\'ecution 
pas \`a pas en validant chaque niveau, afin de voir o\`u il y a des 
modifications \`a faire, 
\item
{\tt Sauver tout} ou {\tt Alt+s} pour sauver tout votre espace de travail 
c'est \`a dire toutes les sessions dans un fichier de suffixe {\tt .xws},
\item
{\tt Montrer}  pour ouvrir une fen\^etre dans laquelle on peut 
mettre un fichier que l'on pourra ex\'ecuter pas \`a pas 
({\tt Montrer la fen\^etre de script} cf. la section
\ref{sec:script}) ou pour ouvrir une 
fen\^etre graphique dans laquelle on peut voir les trac\'es interm\'ediaires
effectu\'es dans un programme ({\tt Montrer DispG}).
\item
{\tt A propos} \'ecrit dans le bandeau l'adresse {\tt http} o\`u vous pouvez 
vous procurer la derni\`ere version de {\tt Xcas} ainsi que 
l'adresse mail du d\'eveloppeur ! (voir aussi le menu 
{\tt Aide$\blacktriangleright$Internet})
\item
{\tt Capture ecran}\index{Capture ecran}\index{impression} permet de faire une
capture d'\'ecran qui
sera sauv\'ee dans un fichier de suffixe {\tt .eps} (par exemple 
{\tt window.eps}).
On pourra ensuite inclure ce fichier dans un
texte \LaTeX en mettant~:
\begin{itemize}
\item dans l'en-t\^ete :\\
\verb|\usepackage{graphicx} |
\item
et dans le texte \`a l'endroit d\'esir\'e :\\
\verb|\includegraphics{window}|
\end{itemize}
\item
{\tt Quitter} permet de quitter {\tt Xcas}.
\end{itemize}

\subsection{Le menu {\tt Cfg}}\index{Configuration}
\begin{itemize}
\item
{\tt Clavier} pour avoir  ou non un clavier scientifique ({\tt Voir clavier}) ou 
({\tt Cacher clavier}). Ce clavier se met juste avant le bandeau g\'en\'eral. 
\item 
{\tt Bandeau} pour avoir les commandes de {\tt Xcas} dans un bandeau 
({\tt Montrer le bandeau}) ou non ({\tt Cacher bandeau}). Ce bandeau se met 
juste avant le bandeau g\'en\'eral. Il permet d'afficher un sous-menu 
de mani\`ere persistante.
\item
{\tt Mode} permet de travailler avec une syntaxe de type {\tt C}
(Xcas), Maple, TI, Mupad ou Tortue,
\item
{\tt Configuration du CAS} permet de configurer le calcul formel (idem que la 
ligne d'\'etat rouge situ\'ee dans le bandeau en bas \`a gauche),
\item
{\tt Configuration graphique} permet de configurer le graphique par d\'efaut~: 
vous pouvez aussi avoir une configuration sp\'ecifique pour chaque graphique 
avec le bouton {\tt cfg} du graphique, mais cela ne changera pas la 
configuration par d\'efaut,
\item
{\tt Configuration generale} permet de d\'eterminer la taille des caract\`eres,
le navigateur, si on veut une aide automatique ou pas et le nombre de lignes et
de colonnes du tableur, 
\item
{\tt Taille des caract\`eres} permet de changer la taille des caract\`eres 
en donnant la taille de la fonte (par d\'efaut 20)
\item
{\tt Sauver pr\'ef\'erences} permet de sauver la configuration choisie pour 
les utilisations ult\'erieures.
\end{itemize}

\subsection{Le menu {\tt Aide}}\label{sec:aide}\index{Aide}
Ce menu contient les diff\'erentes formes d'aide possible. 
\begin{itemize}
\item
{\tt Interface}
contient ce manuel, donc l'aide concernant l'interface de {\tt Xcas}.
\item
{\tt Manuals}
\begin{enumerate}
\item
{\tt Calcul formel}
contient l'aide g\'en\'erale qui concerne toutes les fonctions de calcul 
formel, de g\'eom\'etrie, de statistiques mais qui ne concerne pas les 
instructions de programmation, ni les instructions d\'epla\c{c}ant la
tortue.
\item {\tt Algorithmes}
d\'ecrit une partie des math\'ematiques utilis\'ees pour programmer
un logiciel de calcul formel
\item
{\tt Geometrie}
contient une aide plus d\'etaill\'ee pour certaines commandes car cette aide 
est illustr\'ee par des exercices (mais on n'a pas toutes les fonctions de 
g\'eom\'etrie !). 
\item
{\tt Programmation}
contient une aide d\'etaill\'ee des instructions de programmation.
Dans cette partie vous trouverez l'\'ecriture de plusieurs algorithmes avec
la traduction de ces algorithmes en langage {\tt Xcas MapleV MuPAD TI89/92}.
\item
{\tt Tableur,statistiques}
contient une aide d\'etaill\'ee concernant le tableur et les fonctions de 
statistiques ainsi que leurs utilisations dans le tableur.
\item
{\tt Tortue}
contient l'aide concernant les instructions qui sont utilis\'ees dans 
l'\'ecran de {\tt dessin Tortue}.
Dans cette partie vous trouverez plusieurs activit\'es que l'on peut faire 
avec des enfants (du CP au CM2) dans le but de leur faire faire des
math\'ematiques. 
\end{enumerate}
\item
{\tt Internet}
\begin{enumerate}
\item
{\tt Forum} permet d'acc\'eder \`a un forum de discussion.
\item
{\tt Ressources pedagogiques}
contient des exercices sur diff\'erents sujets et de diff\'erents niveaux.

\item
{\tt Mettre a jour l'aide}
permet de mettre l'aide \`a jour.
\end{enumerate}
\item
{\tt Index}\index{Index}
donne toutes les commandes utilisables class\'ees par ordre alphab\'etique
avec  une ligne d'entr\'ee qui permet de se d\'eplacer facilement dans 
cette liste~: il suffit de taper le d\'ebut d'un nom dans cette ligne pour 
avoir le curseur \`a cet endroit dans la liste, vous pouvez ainsi aller 
directement \`a une lettre ou \`a une commande.

En cliquant sur l'une de ces commandes, vous avez une aide succincte qui 
s'affiche dans le bandeau g\'en\'eral \`a l'endroit des messages, des exemples 
que l'on peut copier en cliquant sur l'un d'eux et le nom des 
commandes proches ou des synonymes.

Pour avoir une aide plus compl\`ete, cliquez sur le bouton {\tt Details}
L'aide s'affiche soit dans un navigateur
(par d\'efaut Mozilla sous Linux, Internet Explorer sous Windows), 
soit dans un fen\^etre \`a part. 
Sous Linux, il est commode d'ouvrir Mozilla et de 
l'ic\^onifier pour pouvoir ouvrir cette aide lorsque cela est necessaire. Vous 
pouvez aussi taper {\tt ?nom\_de\_commande} pour avoir en r\'eponse l'aide 
succincte sur cette commande.

Notez qu'en tapant sur le bouton bleu ? situ\'e en bas \`a gauche dans le
bandeau g\'en\'eral, on ouvre l'{\tt Index} et,
notez aussi qu'en tapant le d\'ebut d'une commande dans une ligne de 
commandes puis sur la touche de tabulation ou sur le bouton bleu ?, on ouvre 
l'{\tt Index} \`a la commande commen\c{c}ant par ce d\'ebut.\index{?}
\item
{\tt Trouve}
recherche le mot demand\'e dans toutes les pages du manuel Calcul formel.
\end{itemize}

{\bf Remarques} 
\begin{itemize}
\item Quand on choisit les commandes \`a partir des menus,
 une aide succincte sur cette commande
s'affiche dans la ligne des messages (en bas \`a droite) et 
par d\'efaut, le manuel de Calcul formel s'ouvre \`a la bonne page
\item
On peut activer ou d\'esactiver ce m\'ecanisme d'aide
automatique dans le menu {\tt Cfg}, {\tt Configuration generale},
{\tt Aide HTML automatique}.
\item
Quand on choisit les commandes  \`a partir du bandeau, seule
une aide succincte sur cette commande
s'affiche dans la ligne des messages (en bas \`a droite). 
\end{itemize}

\subsection{Le menu Exemples}
Si vous s\'electionnez un exemple depuis ce menu, une fichier session exemple
sera recopi\'ee dans le r\'epertoire courant (si un fichier du
m\^eme nom existe, on vous demandera auparavant si vous voulez
le remplacer), puis ce fichier sera ouvert dans une nouvelle session.

\subsection{Les menus de calcul formel}
\begin{itemize}
\item
{\tt Math}
contient les fonctions math\'ematiques class\'ees par th\`eme.

\item
{\tt Phys}
contient toutes les unit\'es physiques, les constantes physiques et des 
fonctions de conversion.

\item
{\tt Reecriture}
contient les fonctions de calcul formel permettant de transformer
une expression. Ces fonctions peuvent par exemple \^etre appliqu\'ees
\`a la s\'election d'un \'editeur d'\'equations.
\item
{\tt Geo}
contient les fonctions permettant de faire de la g\'eom\'etrie 2D ou 3D.
On notera que le menu {\tt Affichage} contient \`a la fois la commande 
{\tt affichage} et les param\`etres de cette commande comme la couleur, les 
diff\'erentes sortes de lignes, les
diff\'erentes sortes de points et l'emplacement des l\'egendes.  
\item
{\tt Scolaire}
contient des commandes class\'ees par niveau et toutes les commandes 
qui sont valides dans l'\'ecran de g\'eom\'etrie Tortue.\\
Vous pouvez rajouter ou supprimer des commandes dans ce menu 
selon vos besoins en modifiant le fichier {\tt xcasmenu} (cf. la
section \ref{sec:xcasmenu}).
\item
{\tt Prg}
contient les instructions permettant d'\'ecrire des programmes.

\item
{\tt Graph} contient les fonctions permettant de tracer des graphes de 
fonctions, des courbes en param\'etrique ou en polaire, des
solutions d'\'equations diff\'erentielles, pour visualiser
"l'escargot" des suites r\'ecurrentes...
\end{itemize}

\subsection{Rajouter un menu} \label{sec:xcasmenu}
On peut red\'efinir les menus que l'on voit au-del\`a du menu {\tt  Aide}.
Par exemple, rajoutons un menu {\tt Exo1} qui contiendra les 
commandes {\tt equal2diff factor subst} 
qui seraient utiles pour faire un exercice num\'erot\'e 1.

Pour cela il faut ouvrir dans l'\'editeur texte de votre choix (par exemple
{\tt emacs, vi, nedit, notepad, bloc.notes...} mais PAS
{\tt word, abiword, kword, openoffice...}) le fichier {\tt xcasmenu}
(sous Linux, il faut au pr\'ealable recopier ce fichier
depuis le r\'epertoire \verb|/usr/share/giac| ou\\
\verb|/usr/local/share/giac|).

Vous devez voir:\\
{\tt Math/Constants/pi\\
Math/Constants/i\\
Math/Constants/e...}

Vous tapez alors les trois lignes suivantes (une ligne par commande) :\\
{\tt Exo1/equal2diff\\
Exo1/factor\\
Exo1/subst}\\
en laissant le reste\\ 
{\tt Math/Constants/pi\\
Math/Constants/i\\
Math/Constants/e...}\\
inchang\'e.

Lorsque vous relancez {\tt Xcas} vous avez maintenant apr\`es le menu 
{\tt Aide} un menu {\tt Exo1} qui contient les commandes 
{\tt equal2diff factor subst}.

{\bf Remarque~:} le menu {\tt Exemples} suit le m\^eme principe avec
un fichier {\tt xcasex}, mais il faut aussi avoir cr\'e\'e les
fichiers de session exemple dans le r\'epertoire de {\tt xcasex}.

\subsection{Supprimer un menu}
Pour cela il faut ouvrir dans l'\'editeur de votre choix le fichier 
{\tt xcasmenu}.
Il suffit alors d'effacer les lignes que vous ne voulez pas voir apparaitre
en ayant soin de les sauver pour pouvoir vous en reservir
ult\'erieurement~!


\section{La barre de menu d'une session}
\`A cot\'e du num\'ero d'une session de calcul, vous voyez la barre
de menu de la session~:
\begin{center}
{\tt \framebox{-} \framebox{Fich Edit} \framebox{Save} <no filename>}
\hfill {\tt \framebox{$\times$}}
\end{center}
De gauche \`a droite, ~:
\begin{itemize}
\item Le bouton \framebox{\tt -} est en vert (si
la session a \'et\'e sauvegard\'ee) ou en rouge (si des modifications
ont eu lieu depuis la derni\`ere sauvegarde).\\
\framebox{\tt -} veut dire que les niveaux de la session sont visibles c'est 
\`a dire que la session est d\'epli\'ee. Si la session est pli\'ee,
on voit \`a la place \framebox{\tt +}.\\
Si on clique sur \framebox{\tt -}, on 
plie la session~: les niveaux de la session ne sont plus visibles et on ne voit
plus alors que la barre de menu de cette session et le \framebox{\tt -} 
devient \framebox{\tt +}.
\item {\tt  Fich} est un menu qui a comme sous menu :
\begin{itemize}
\item
{\tt Sauver} pour sauver cette session (c'est \`a dire tous ses niveaux 
d'entr\'ee et de sortie) dans le fichier de nom indiqu\'e 
\`a cot\'e du bouton {\tt Save} (la premi\`ere fois on vous demande le nom du 
fichier de sauvegarde qui doit se terminer par {\tt .xws}),
\item
{\tt Sauver comme} pour sauver en donnant un autre nom au fichier de 
sauvegarde de la session, ce fichier doit \^etre un {\tt .xws},
\item
{\tt Inserer} pour ins\'erer une session qui a \'et\'e sauv\'ee
 pr\'ec\'edemment, ou un niveau contenant une figure, un tableur
ou un programme,
\item
{\tt Charger} pour remplacer la session en cours par une session qui a \'et\'e 
sauv\'ee pr\'ec\'edemment,
\item
{\tt Tuer} pour supprimer la session en cours, si il y a plusieurs sessions
 ouvertes leurs num\'eros seront peut \^etre modifi\'es (on peut ensuite ouvrir
 une nouvelle session avec le menu g\'en\'eral {\tt Session} 
sous-menu {\tt Nouveau}), 
\item
{\tt Imprimer} pour imprimer la session en cours.
\end{itemize}
\item
{\tt Edit}  est un menu qui a comme sous menu :
\begin{itemize}
\item {\tt Ajouter saut de ligne} pour obtenir une nouvelle ligne sur 
le niveau d'entr\'ee,
l\`a o\`u se trouve le curseur et permet ainsi de passer \`a la ligne par 
exemple pour écrire dans un m\^eme niveau plusieurs lignes d'entr\'ees 
s\'epar\'ees par {\tt ;}  (on peut aussi taper {\tt Shift+Enter}).
\item
{\tt Coller} permet de recopier, \`a l'endroit du curseur,
ce que l'on a s\'electionn\'e avec la souris. On peut aussi s\'electionner ce 
qui se  trouve dans une ligne de commandes
avec {\tt Shift+les fl\`eches de d\'eplacement}. Voir aussi \ref{sec:colle}.
\item
{\tt Ajouter} pour ouvrir, soit une ligne pour \'ecrire, en vert, un 
commentaire ({\tt commentaire}), soit une nouvelle entr\'ee ({\tt nouvelle 
entr\'ee}), soit
un \'editeur d'\'equations ({\tt equation}), soit un \'ecran de g\'eom\'etrie 
2D interactif ({\tt geometrie}), soit un \'ecran de g\'eom\'etrie 
3D interactif ({\tt geo3d}), soit un \'editeur de programmes 
({\tt programme}),
soit un tableur et son \'ecran graphique ({\tt Tableur, statistiques}), 
 soit un \'ecran de g\'eom\'etrie tortue ({\tt dessin tortue}).
\item
{\tt Executer} 
\begin{itemize}
\item {\tt session} pour recalculer cette session enti\`erement, 
\item {\tt en\_dessous} pour recalculer cette session \`a partir d'une 
entr\'ee s\'electionn\'ee,
\item  {\tt remove answers en\_dessous} pour supprimer les r\'eponses \`a 
partir d'une entr\'ee s\'electionn\'ee  afin de pouvoir, devant un auditoire, 
refaire pas \`a pas l'ex\'ecution des diff\'erentes entr\'ees.
\end{itemize}
\item
{\tt Effacer les niveaux selectionnes} permet de supprimer les niveaux 
s\'electionn\'es,
\item\index{regroupement}
{\tt Regrouper les niveaux selectionnes} permet de créer un regroupement 
de plusieurs niveaux, que l'on peut plier ou déplier en cliquant sur
\framebox{\tt -} ou \framebox{\tt +} du menu propre \`a ce regroupement. 
On peut aussi donner un nom au regroupement ainsi cr\'e\'e.
\item
{\tt Aplatir le regroupement}
effectue l'opération inverse de la précédente (on aplatit le groupe pour 
revenir \`a l'\'etat pr\'ec\'edent le regroupement).
\end{itemize}
\item \framebox{\tt Save} est un bouton qui sert \`a sauver dans un fichier 
la session de calcul. Si on clique sur \framebox{\tt Save}, 
on vous demande la premi\`ere fois un nom de fichier d'extension {\tt .xws} 
et la session est sauv\'ee dans ce fichier 
(les boutons \framebox{\tt Save} et \framebox{\tt -} passent du {\tt rouge} au
 {\tt vert}), et
{\tt <no filename>} est remplacé par le nom de fichier.
\item \framebox{X} un clic sur cette croix, situ\'ee \`a droite, permet 
de fermer la session.
\end{itemize}


\section{Comment bien g\'erer son espace de travail}
\subsection{Pour s\'electionner ou d\'es\'electionner un niveau}
Pour s\'electionner un niveau, il faut cliquer sur le num\'ero du niveau que 
l'on veut s\'electionner : ce num\'ero apparait alors sur fond noir.

Pour s\'electionner plusieurs niveaux qui se suivent et se trouvent sur 
l'\'ecran, il faut cliquer sans relacher sur le premier num\'ero  du groupe et 
se deplacer jusqu'au dernier num\'ero du groupe puis relacher le bouton de la 
souris : ces num\'eros apparaissent alors sur fond noir.
Pour s\'electionner plusieurs niveaux qui se suivent on peut aussi cliquer 
sur le premier num\'ero  du groupe et {\tt Shift+cliquer} sur le dernier 
num\'ero  du groupe : cela s\'electionne les niveaux interm\'ediaires.

Pour d\'es\'electionner, on clique ailleurs dans la session
(on peut aussi cliquer sur un niveau non sélectionné
ce qui sélectionnera uniquement ce niveau).

\subsection{D\'eplacer un ou plusieurs niveaux}
Lorsqu'on s'approche du num\'ero du niveau \`a d\'eplacer, le curseur prend la 
forme d'une petite fl\`eche $\Leftarrow$ rouge (sous Linux) ou 
 la forme d'une main (sous Windows). On enfonce alors un bouton de 
la souris et en laissant le bouton 
enfoncé, on d\'eplace la fl\`eche, avec la souris, sur la zone destination.
On relache alors le bouton de la souris. 

\subsection{Recopier l'entr\'ee ou la r\'eponse d'un niveau}\label{sec:colle}
\begin{itemize}
\item M\'ethode \`a la Unix~:\\
On s\'electionne avec la souris ce que l'on veut recopier, puis on met le 
curseur l\`a o\`u l'on veut recopier, puis on utilise 
{\tt Coller} du menu {\tt Edit} ou on
clique sur le bouton du milieu de la souris.
\item
M\'ethode \`a la Windows~:\\
On peut aussi recopier un niveau dans un autre niveau avec la touche 
{\tt Ctrl} et une autre touche.
Il faut cliquer sur le num\'ero du niveau que l'on veut recopier :
ce num\'ero apparait alors sur fond noir. Puis on tape {\tt Ctrl+x} pour 
supprimer ce niveau et
recopier l'entr\'ee dans le presse-papier  ou bien on 
tape {\tt Ctrl+c} pour recopier l'entr\'ee de ce niveau dans le presse-papier 
sans la supprimer, 
puis on tape {\tt Ctrl+v} dans le niveau o\`u on veut faire la recopie
du presse-papier.
\item
Ou peut aussi parcourir l'historique des entr\'ees en tapant~:
\begin{center}
 {\tt Ctrl+}$\uparrow$ ou {\tt Ctrl+}$\downarrow$.
\end{center}
On modifie \'eventuellement, puis on valide la ligne de commandes.
\end{itemize}

\subsection{Annuler une modification}
{\tt Ctrl+z} annule la derni\`ere modififcation faite dans une ligne de 
commandes : vous avez par exemple effacer par erreur une partie de la ligne de 
commandes parce que celle-ci \'etait en surbrillance, {\tt Ctrl+z} vous 
restitue votre ligne. 

\subsection{Effacer une ligne de commandes}
{\tt Ctrl+u} efface la ligne de commandes.

\subsection{Supprimer un niveau}
Il faut cliquer sur le num\'ero du niveau que l'on veut supprimer :
ce num\'ero apparait alors sur fond noir. Puis on tape {\tt Ctrl+x} ou bien, 
dans le menu {\tt Edit}, on choisit~:
{\tt Supprimer les niveaux selectionnes}.
%{\tt Delete selected levels}.

\subsection{Redimensionner la hauteur des niveaux}
Pour pouvoir lire ais\'ement les r\'eponses trop longues, 
les r\'eponses \'editeurs d'\'equation ont deux barres de scroll, 
l'une situ\'ee en bas pour se d\'eplacer 
horizontalement et l'autre situ\'ee \`a droite pour se d\'eplacer
verticalement.

Vous pouvez redimensionner la taille de l'entr\'ee et de la sortie de 
chaque niveau en d\'eplacant la ligne de s\'eparation : en s'approchant d'une 
ligne de s\'eparation (entre l'entr\'ee et la sortie d'un m\^eme niveau ou 
entre deux niveaux) le curseur prend la forme : $\updownarrow$. Il suffit 
alors de cliquer sans relacher et de d\'eplacer la ligne de s\'eparation 
en haut (resp. en bas) pour r\'eduire (resp. agrandir) le niveau situ\'e au 
dessus de cette ligne.

\subsection{Pour modifier l'entr\'ee d'un niveau}
Il suffit de faire la modification et de la valider par {\tt Enter},
mais attention les autres niveaux ne seront pas recalcul\'es m\^eme si ils 
d\'ependent du niveau modifi\'e (pour les recalculer
cf. la section \ref{sec:recalculer}). Pour faire une modification, on met
en surbrillance ce que l'on veut modifier en s\'electionnant avec la souris
puis on tape la modification (quand on tape un caractère normal,
la sélection en surbrillance est effacée automatiquement).

Pour ne pas avoir \`a retaper une commande, on peut afficher les commandes 
tap\'ees pr\'ec\'edemment en mettant le curseur dans une ligne de commandes et
en tapant une ou plusieurs fois {\tt Ctrl+$\uparrow$} ou 
{\tt Ctrl+$\downarrow$} .

\subsection{Pour recalculer \`a partir d'un niveau d'une session} 
\label{sec:recalculer}
Pour recalculer la session \`a partir d'un niveau, on clique sur le
numéro de ce niveau avec la souris puis on utilise le menu {\tt Edit} puis 
{\tt Execute} puis {\tt en\_dessous}.

Vous pouvez aussi recalculer toute la session en utilisant le menu {\tt Edit} 
puis {\tt Execute} puis {\tt session}.

\subsection{Pour \'ecrire plusieurs lignes dans un niveau}
L'ex\'ecution d'une ligne se fait simplement par la touche {\tt Enter}. 
On peut faire plusieurs entr\'ees dans un m\^eme niveau \`a condition de les
s\'eparer par un point-virgule ({\tt ;}), ou par  \verb|:;|
si on ne souhaite pas afficher le r\'esultat.
 
Pour plus de lisibilit\'e, il est souhaitable de passer \`a la ligne apr\`es
une ou deux instructions, pour cela, il ne faut pas utiliser {\tt Enter} car 
{\tt Enter} valide l'entr\'ee, mais le menu {\tt Edit} puis 
{\tt Add newline} ou le raccourci {\tt Shift+Enter}.
Cela est valable dans les commentaires et dans 
les lignes d'entr\'ee. Pour \'ecrire une entr\'ee longue, par
exemple un programme, il est conseill\'e d'utiliser un niveau
de programmes (\verb|Alt+p|), dans ce mode {\tt Enter} cr\'ee
une nouvelle ligne vide, et il faut cliquer sur le bouton {\tt OK}
pour valider.

L'\'ecriture des formules est assez directe. Les parenth\`eses ont le sens 
usuel pour sp\'ecifier l'ordre des op\'erations. Notez que :
\begin{itemize}
\item Les crochets sont r\'eserv\'es aux listes, vecteurs, matrices.
\item Les priorit\'es entre op\'erations sont standards. 
La multiplication doit \^etre
not\'ee par une \'etoile dans les commandes, mais est not\'ee par un point dans
les sorties.
\item
Le signe \verb|==| d\'esigne une \'egalit\'e bool\'eenne, le signe \verb|!=| 
d\'esigne une diff\'erence bool\'eenne, 
\item le signe \verb|=| 
d\'esigne une \'equation et \verb|:=| d\'esigne une affectation.
\end{itemize}

\subsection{Pour utiliser la fen\^etre de script}\label{sec:script}\index{fen\^etre de script}
Cette fen\^etre s'ouvre avec le menu :\\
{\tt Session$\blacktriangleright$Montrer$\blacktriangleright$ Montrer la fenetre de script}\\
C'est un \'editeur de programme qui contient en plus un bouton 
{\tt exe}. Ce bouton {\tt exe} permet d'ex\'ecuter pas \`a pas les lignes 
situ\'ees dans cette fen\^etre.
Pour cela il faut~:
\begin{itemize}
\item placer la fen\^etre de script pour que le bouton {\tt exe} soit 
visible m\^eme lorsqu'elle est en arri\`ere-plan (par rapport
\`a la fen\^etre de {\tt Xcas Nouvelle}\\
{\tt Interface}),
\item placer le curseur sur la premi\`ere ligne de script \`a
  ex\'ecuter,
\item cliquer dans la fen\^etre {\tt Xcas Nouvelle Interface}  
\`a l'endroit o\`u on va ins\'erer la premi\`ere ligne de script en vue de son 
ex\'ecution,
\item cliquer sur le bouton {\tt exe} autant de fois que n\'ecessaire en 
laissant la fen\^etre de script en arri\`ere-plan. 
Faire attention \`a laisser la fen\^etre {\tt xcas Nouvelle Interface}  en
avant-plan (ne pas mettre la fen\^etre de script en avant-plan,
c'est pour cela qu'il faut voir le bouton {\tt exe} lorsque
la fen\^etre de script est en arri\`ere-plan).
\end{itemize}

\subsection{Pour plier, d\'eplier, fermer ou ouvrir une session}
On peut plier une session  en appuyant sur le petit bouton \framebox{\tt -} qui
devient \framebox{\tt +}. On peut alors utiliser cette session 
ult\'erieuremment en appuyant sur ce bouton \framebox{\tt +}.

Pour fermer une session il suffit de cliquer sur la croix situ\'ee tout \`a 
droite de la barre des menus : avant de fermer une session, il ne faut pas 
oublier de sauver la session en cliquant sur \framebox{\tt Save}.

On peut ouvrir une nouvelle session avec le menu
{\tt Session$\blacktriangleright$Nouveau}.
\subsection{Pour imprimer}\index{impression}
Vous pouvez :
\begin{itemize}
\item faire une capture d'\'ecran (menu {\tt Session}),
\item imprimer toute la session ou seulement les niveaux s\'electionn\'es
en utilisant \LaTeX ou pas (menu {\tt Fich} de la session),
\item imprimer un programme (menu {\tt Prog} d'un niveau \'editeur de
 programmes),
\item imprimer une figure g\'eom\'etrique 2D /3D ou un graph 2D /3D en 
utilisant \LaTeX ou pas (menu {\tt Geo} d'un niveau de g\'eom\'etrie),
\item imprimer un tableur (menu {\tt Table} d'un niveau tableur),
\item imprimer un dessin tortue en utilisant \LaTeX ou pas (menu {\tt Prog} 
d'un niveau tortue).
\end{itemize}
\subsection{Les diff\'erents fichiers de sauvegarde et d'impression}\index{sauvegarde}\index{impression}
Les diff\'erents fichiers se diff\'erencient par leur suffixe qui sont :
\begin{itemize}
\item {\tt .xws} est le suffixe des fichiers sauvant toute une session. On 
cr\'ee ce fichier en appuyant sur \framebox{\tt Save} de la barre de menu d'une
session (\framebox{\tt Save} passe alors au vert) ou on utilisant le menu :
{\tt Session$\blacktriangleright$Sauver tout} \\
ou encore en utilisant le 
raccourci clavier {\tt Alt+s}.
\item {\tt .cas} est le suffixe des fichiers sauvant les entr\'ees d'une 
session de g\'eom\'etrie. 
On cr\'ee ce fichier en appuyant sur \framebox{\tt Save} d'un niveau 
de type g\'eom\'etrie.
\item {\tt .cxx} est le suffixe des fichiers sauvant un programme. On cr\'ee ce
 fichier en appuyant sur \framebox{\tt save} d'un niveau de type programme.
\item {\tt .tor} est le suffixe des fichiers sauvant un script de dessin
tortue. On cr\'ee ce fichier en appuyant sur \framebox{\tt save} d'un niveau de
type dessin tortue.
\item {\tt .tab} est le suffixe des fichiers sauvant un tableur. On cr\'ee ce 
fichier en appuyant sur \framebox{\tt Save} d'un niveau de type tableur.
\item {\tt .eps} et {\tt .png} sont les suffixes 
des fichiers sauvant une capture d'\'ecran ou 
le graphique des \'ecrans graphiques 2D, 3D et tortue. 
On les cr\'ee en appuyant sur {\tt Session$\blacktriangleright$capture 
ecran} du menu g\'en\'eral
ou avec le bouton \index{Menu}
{\tt Menu$\blacktriangleright$Export/Print$\blacktriangleright$EPS/PNG} 
des \'ecrans graphiques 2D, 3D et tortue.
On pourra ensuite inclure ce type de fichier (par exemple {\tt window.eps})
dans un texte \LaTeX en mettant~:
\begin{itemize}
\item dans l'en-t\^ete :\\
\verb|\usepackage{graphicx} |
\item
et dans le texte \`a l'endroit d\'esir\'e :\\
\verb|\includegraphics{window}|
\end{itemize}
\item {\tt .ps} est le suffixe des fichiers sauvant un fichier servant \`a 
l'impression. On cr\'ee ce 
fichier en appuyant sur 
{\tt  Fich$\blacktriangleright$Imprimer$\blacktriangleright$Previsualisation} 
d'une session.
\item {\tt .tex} est le suffixe des fichiers sauvant un dessin selon le
format \LaTeX. On cr\'ee ce fichier en utilisant \index{Menu}
{\tt Menu$\blacktriangleright$Export/Print$\blacktriangleright$Previsualiser avec Latex} des \'ecrans graphiques 2D, 3D et tortue.
\end{itemize}

\section{Les commentaires}
Un niveau de commentaire se cr\'ee avant le niveau actif avec le raccourci 
clavier {\tt Alt+c} ou bien en utilisant le menu {\tt Edit},
 puis {\tt Ajouter}, puis {\tt commentaire}.

Il suffit d'\'ecrire le commentaire. Pour passer \`a la ligne dans un
commentaire, on utilise le raccourci clavier
{\tt Shift+Enter}.

{\bf Attention} si vous voulez voir plusieurs lignes et pas seulement celle 
que vous \^etes en train d'\'ecrire, il peut \^etre n\'ecessaire d'agrandir la 
fen\^etre de commentaires en d\'epla\c{c}ant avec la souris la ligne 
horizontale de s\'eparation basse du niveau.

\section{Les lignes de commandes (calcul formel).}
Une nouvelle ligne de calcul se cr\'ee avant le niveau actif avec le raccourci 
clavier {\tt Alt+n} ou bien en utilisant le menu {\tt Edit},
 puis {\tt Ajouter}, puis {\tt nouvelle entr\'ee}.

On trouvera le nom de toutes les commandes de calcul formel class\'ees par 
ordre alphab\'etique, en ouvrant le sous-menu {\tt Index} du menu 
g\'en\'eral {\tt Aide}.
On peut taper le d\'ebut d'une commande dans une ligne de commandes puis sur la
 touche de tabulation, cela permet d'ouvrir
l'{\tt Index} \`a cette position.

En cliquant sur une commande de l'{\tt Index} ou sur une commande situ\'ee 
dans un des menus de calcul formel, vous avez une 
aide succincte qui s'affiche dans 
le bandeau g\'en\'eral \`a l'endroit des messages. Pour avoir une
aide plus compl\`ete, on clique sur \framebox{\tt Details},
elle s'affiche dans le navigateur choisi (par d\'efaut Mozilla sous
Linux, on peut  
ic\^onifier Mozilla et ne l'afficher en plein \'ecran 
qu'au moment o\`u on veut lire l'aide d\'etaill\'ee).

Vous pouvez aussi taper {\tt ?nom\_de\_commande} pour avoir en 
r\'eponse l'aide sur cette commande. Voir aussi \ref{sec:aide}.


\section{L'\'editeur d'\'equations}
Un \'editeur d'\'equations se cr\'ee avant le niveau actif avec le raccourci 
clavier {\tt Alt+e} ou bien en utilisant le menu {\tt Edit},
 puis {\tt Ajouter}, puis {\tt equation}.

Vous pouvez alors \'ecrire comme sur le papier vos formules : il suffit de 
mettre les expressions en surbrillance au lieu de mettre des
parenth\`eses.

Par exemple, on veut \'ecrire~:
\[ \left(\frac{x+1}{x+2}\right) \cdot \left(3+\frac{4}{x} \right)^5 \]
On ouvre un \'editeur d'\'equation (Alt+e)
puis on tape :\\
$x+1 \ \uparrow$ (on met $x+1$ en surbrillance soit avec la fl\`eche vers le 
haut soit en le s\'electionnant avec la souris)\\
/ (symbole pour la division) puis $x+2 \ \uparrow \ \uparrow$ \\
* 3 $\uparrow$ + 4 $\uparrow$ / x\\
$\uparrow \ \uparrow \ \uparrow$ \verb|^| 5\\
Vous pouvez maintenant gr\^ace aux fl\`eches de d\'eplacements parcourir 
l'arbre associ\'e \`a cette expression :
\begin{itemize}
\item 
$\uparrow$ permet de mettre en surbrillance la partie s\'electionn\'ee (un 
membre d'une expression), l'op\'erateur qui concerne cette 
partie et les autres membres de cette expression,
\item
$\downarrow$ permet de mettre en surbrillance le membre de droite de 
 l'expression s\'electionn\'ee
\item
$\rightarrow$ ou $\leftarrow$ permettent de mettre en surbrillance l'autre 
membre d'une expression que celui s\'electionn\'e
(le membre de droite si le membre de gauche est s\'electionn\'e et
vice versa).
\end{itemize}

\section{La g\'eom\'etrie plane (2D)}
Pour avoir un \'ecran de g\'eom\'etrie plane, il faut utiliser le menu 
{\tt Edit}, puis {\tt Ajouter}, puis {\tt geo2d} ou le raccourci 
{\tt Alt+g}.

\subsection{Que voit-on ?}
On obtient un niveau contenant :
\begin{itemize}
\item en haut, \`a gauche, la barre de menu de ce niveau de g\'eom\'etrie :\\
\framebox{\tt Geo Edit},
\item en haut, \`a droite, des boutons indiquant les modes et les attributs 
choisis et un bouton {\tt Save} :
\begin{itemize}
\item le nom du mode dans lequel on se trouve et le bouton {\tt Mode} qui 
permet de choisir ce mode, 
\item un bouton qui permet de choisir une couleur et qui indique la couleur 
choisie et son num\'ero, 
\item un bouton qui permet de choisir les attributs de la repr\'esentation 
des points et des lignes et qui indique les attributs choisis,
\item  un bouton {\tt Save} pour sauver ce niveau dans un fichier 
d'extension {\tt .cas} dont le nom se marquera dans la ligne situ\'ee \`a 
cot\'e du bouton {\tt Save},
\end{itemize}
\item au centre, un \'ecran de g\'eom\'etrie plane interactif,
\item \`a droite, 
\begin{itemize}
\item la position de la souris,
\item des fl\`eches sur fond de couleur pour d\'eplacer le cadrage selon l'axe 
de m\^eme couleur (la couleur bleu sert en 2D
\`a faire un zoom selon $Oy$), 
\item des fl\`eches sur fond gris pour retrouver
les cadrages pr\'ec\'edents, un bouton $\perp$ pour avoir un rep\`ere 
orthonorm\'e,
\item des boutons {\tt in} et {\tt out} pour faire un zoom avant ou arri\`ere,
\item un bouton {\tt cfg} pour configurer ce graphique (enlever ou mettre les 
axes et modifier les param\`etres de cadrage et de graduation des axes) et 
choisir d'avoir les commandes et l'\'ecran graphique l'un en dessous de l'autre
ou c\^ote \`a c\^ote en cochant, ou pas, {\tt Paysage}\index{Paysage},
\item un bouton $\blacksquare$ \index{$\blacksquare$} permettant de faire une 
pause lors d'une animation graphique,
\item un bouton {\tt Menu} \index{Menu} avec les sous-menus :
\begin{itemize}
\item {\tt Voir} (dont les items sont identiques aux boutons
situ\'es au dessus), 
\item {\tt 3-d} utile uniquement pour la g\'eom\'etrie 3D 
\item {\tt Imprimer} pour r\'ealiser facilement l'insertion du graphique dans
un texte \LaTeX ou autre,
\end{itemize}
\end{itemize}
\item une ligne de commandes de num\'ero 1 \`a gauche qui se remplira 
automatiquement lorsque l'on cr\'ee un point en cliquant dans l'\'ecran 
graphique ou que l'on peut remplir avec une commande graphique ou non.
Chaque fois qu'une commande a \'et\'e execut\'ee, une nouvelle ligne est 
cr\'e\'ee. Lorsqu'on modifie une ligne de commandes, toutes les lignes
qui suivent sont recalcul\'ees (ceci permet \`a la figure d'\^etre
interactive).
\end{itemize}

\subsection{Comment r\'egler le graphique}
Il n'y a pas de commande d'effacement de la figure, 
en effet, soit on modifie les commandes d'entr\'ee, soit on fait un nouveau 
graphique en ouvrant un \'ecran de g\'eom\'etrie sur un autre niveau.

On peut augmenter ou diminuer la taille de la 
figure en cliquant sur l'une des lignes de s\'eparation verticales pour 
modifier l'unit\'e des {\tt x} et sur la barre horizontale inf\'erieure pour 
modifier l'unit\'e des {\tt y} : en s'approchant d'une 
ligne de s\'eparation le curseur prend la forme : $\updownarrow$ et il suffit 
alors de cliquer sans relacher pour d\'eplacer la ligne de s\'eparation.

On peut r\'egler la configuration graphique par d\'efaut\index{Configuration graphique}
gr\^ace au menu :\\
{\tt Cfg$\blacktriangleright$Configuration graphique}.\\ 
Cela affectera alors tous les
graphiques cr\'e\'es ult\'erieurement ainsi que les calculs graphiques 
ult\'erieurs (graphes de fonctions par exemple) mais pas les graphiques 
d\'ej\`a cr\'e\'es. On peut aussi modifier la configuration graphique d'un
niveau gr\^ace au bouton {\tt cfg} situ\'e \`a droite de cet \'ecran.

\subsection{Comment d\'efinir des objets g\'eom\'etriques}
Il y a deux fa\c{c}ons d'obtenir la plupart des objets g\'eom\'etriques :
\begin{itemize}
\item avec la souris : il faut choisir \`a l'aide du bouton {\tt Mode} l'objet 
g\'eom\'etrique \`a construire. Par exemple, il faut  \^etre en mode 
{\tt triangle} pour tracer un triangle ou \^etre en mode {\tt point} pour 
tracer un point etc....puis il faut cliquer pour d\'efinir l'objet 
g\'eom\'etrique d\'esir\'e. Les commandes correspondantes s'inscrivent alors
automatiquement dans les lignes de commandes, 
\item avec des commandes : on utilise les commandes du menu {\tt Geo}.
\end{itemize}

Pour corriger une erreur, il suffit de 
supprimer ou de modifier la ligne de commandes erron\'ee.

Notez que si on a coch\'e {\tt $\ \tilde{ }\ $}\index{$\ \tilde{ }\ $} dans la
configuration des attributs (cliquer sur le bouton des attributs pour
cocher ou d\'ecocher {\tt $\ \tilde{ }\ $}), tous les points auront des 
coordonn\'ees avec des 
d\'ecimales alors que si {\tt $\ \tilde{ }\ $} n'a pas \'et\'e coch\'e
les points auront des coordonn\'ees rationnelles.
Par exemple, on clique dans l'\'ecran graphique en mode {\tt point} :
\begin{itemize}
\item si on a coch\'e {\tt $\ \tilde{ }\ $}, on obtient quelque
chose comme~:\\
{\tt A:=point(1.494,1.538,'affichage'=0)}
\item
si on n'avait pas coch\'e {\tt $\quad \tilde{ }\quad $}, on aurait obtenu~:\\
{\tt A:=point(3/2,3/2,'affichage'=0)}
\end{itemize}
cela permet de d\'efinir des points \`a coordonn\'ees enti\`eres 
ou rationnelles, tr\`es facilement, en cliquant et aussi de d\'eplacer les 
objets plus rapidement.

\subsection{Comment d\'eplacer des objets g\'eom\'etriques}\index{$\ \tilde{ }\ $}\index{Pointer}
Pour d\'eplacer une figure il faut \^etre en mode {\tt Pointer}.
Lorsqu'on s'approche d'un objet g\'eom\'trique, le curseur change de forme 
quand on est sur cet objet : il devient une petite fl\`eche rouge $\Leftarrow$.
On clique alors sur l'objet \`a d\'eplacer puis sans relacher le bouton de la 
souris, on d\'eplace l'objet en bougeant la souris. Pour annuler
un d\'eplacement, il suffit de relacher la souris en-dehors de la figure.
Il faut savoir que le d\'eplacement est plus rapide si on a coch\'e
{\tt $\ \tilde{ }\ $} dans la configuration des attributs.
 
\subsection{La couleur}\index{couleur}
La couleur des prochains objets cr\'e\'es se choisit en cliquant sur le bouton 
des attributs ou sur le bouton couleur qui permet de choisir parmi la palette 
des couleurs. Les couleurs de la palette sont numerot\'ees de 0 \`a 255 et les
couleurs de l'arc en ciel sont numerot\'ees de 256 \`a 381. Pour voir les 
couleurs de l'arc en ciel il suffit d'ex\'ecuter le programme suivant :
\begin{verbatim}
ciel():={
local j,C;
C:=[];
for (j:=256;j<382;j++){
C:=append(C,carre(j,j+1,couleur=j+rempli));
}
C;
}
\end{verbatim}
Pour voir l'arc en ciel, on tape {\tt ciel()} et le num\'ero d'une couleur est 
alors \'egal \`a son abscisse et pour voir la couleur de num\'ero 300, on tape
{\tt ciel()[300-256]}.  

On peut aussi choisir la couleur d'un objet particulier en mettant dans sa 
d\'efinition un param\`etre suppl\'ementaire qui sera par exemple 
{\tt affichage=rouge} ou {\tt affichage=1}.

\subsection{Les attributs des lignes et des points}\index{Pointer}
\index{attribut}
Les attributs des lignes et des points sont utilis\'es pour  tracer des lignes 
epaisses ou fines, des lignes en trait continu ou 
en pointill\'e de diverses sortes, pour tracer des points avec des croix, des 
carr\'es...de mettre les noms dans l'un des 4 cadrans, de tracer des figures 
pleines etc...Tous ces choix se font avec le bouton qui indique les attributs 
choisis. Pour cela on clique sur ce bouton ce qui ouvre l'\'ecran de 
configuration des attributs qui permet de faire diff\'erents choix qui
seront valider par {\tt OK}.

On peut aussi choisir les attributs d'un objet particulier 
en mettant dans sa d\'efinition un param\`etre suppl\'ementaire qui sera, 
par exemple, pour un point :\\
{\tt point(1,2,affichage=rouge+point\_losange)}.

On peut aussi modifier les attributs des lignes et des points d\'ej\`a 
trac\'es, pour cela il faut \^etre en mode {\tt point} ou {\tt Pointer} et 
cliquer avec le bouton droit de la souris sur l'objet (on peut aussi double 
cliquer avec le bouton gauche de la souris sur l'objet). 
Cela ouvre l'\'ecran de configuration des attributs o\`u figure
le nom de l'objet et ainsi les diff\'erents choix valid\'es par {\tt OK} ne s
eront faits que pour cet objet.
\subsection{Pour donner \`a un point des coordonn\'ees symboliques}\index{symb}
\index{assume}\index{attribut}
Vous savez que {\tt Xcas} permet de faire des d\'emonstrations en 
g\'eom\'etrie~: pour cela il faut savoir \`a la fois faire les calculs 
n\'ecessaires avec des points \`a coordonn\'ees symboliques et faire 
une figure en donnant une valeur \`a ces coordonn\'ees symboliques.\\
Pour donner \`a un point des coordonn\'ees symboliques, on utilise :
\begin{itemize}
\item La commande {\tt assume(a=2.1); assume(b=3.5)} puis par exemple 
{\tt A:=point(a+i*b)} : la figure se fera avec {\tt A:=point(2.1+i*3.5)} mais 
les calculs se feront en fonction des param\`etres formels {\tt a} et {\tt b} 
avec {\tt A:=point(a+i*b)}.
\item On suppose que l'on a d\'efini, par exemple,
{\tt A:=point(2.1+i*3.5)}. Puis, si on est en mode {\tt point} ou en mode 
{\tt Pointer} et uniquement dans ces 2  modes, \`a l'aide du bouton droit de la
souris on fait apparaitre  l'\'ecran de configuration des attributs du point 
{\tt A} o\`u figure la rubrique {\tt symb}. On coche {\tt symb} avec la souris 
et cela a pour effet de d\'efinir automatiquement le point avec les 
coordonn\'ees symboliques {\tt (Ax,Ay)}. \\
{\bf Attention} la rubrique {\tt symb} n'apparait que  dans l'\'ecran de 
configuration des attributs d'un point non symbolique : autrement dit si on a 
d\'efini un point avec des coordonn\'ees symboliques c'est d\'efinitif !
\end{itemize}
\section{La g\'eom\'etrie 3D}
Pour avoir un \'ecran de g\'eom\'etrie 3D, il faut utiliser le menu 
{\tt Edit}, puis {\tt Ajouter}, puis {\tt geo3d} ou le raccourci 
{\tt Alt+h}.
\subsection{Que voit-on ?}
On obtient un niveau ayant le m\^eme environement qu'un niveau de g\'eom\'etrie
2D :
\begin{itemize}
\item en haut, \`a gauche la barre de menu de ce niveau de g\'eom\'etrie 
\framebox{\tt Geo Edit},
\item en haut, \`a droite, des boutons indiquant les modes et les attributs 
choisis et un bouton {\tt Save} :
\begin{itemize}
\item le nom du mode dans lequel on se trouve et le bouton {\tt Mode} qui 
permet de choisir ce mode, 
\item un bouton qui permet de choisir une couleur et qui indique la couleur 
choisie et son num\'ero, 
\item un bouton qui permet de choisir des attributs pour la repr\'esentation 
 des lignes et qui indique les attributs choisis (pour les points la seule
repr\'esentation posible est un carr\'e plus ou moins gros)
\item  un bouton {\tt Save} pour sauver ce niveau dans un fichier 
d'extension {\tt .cas} dont le nom se marquera dans la ligne situ\'ee \`a 
cot\'e du bouton {\tt Save},
\end{itemize}
\item au centre, un \'ecran de g\'eom\'etrie 3D interactif avec un
parall\'el\'epip\'ede servant \`a la repr\'esentation et en haut et \`a 
gauche, l'\'equation du plan de vision qui est un plan perpendiculaire \`a 
l'axe de vision : c'est dans ce plan que seront situ\'es les points d\'efinis 
par un clic de souris,
\item \`a droite, 
\begin{itemize}
\item la position de la souris,
\item des fl\`eches sur fond de couleur pour d\'eplacer le cadrage selon l'axe de m\^eme couleur, 
\item des fl\`eches sur fond gris pour retrouver
les cadrages pr\'ec\'edents, un bouton $\perp$ pour avoir un rep\`ere 
orthonorm\'e selon les valeurs de {\tt WX-} et {\tt WX+},
\item des boutons {\tt in} et {\tt out} pour faire un zoom avant ou arri\`ere,
\item un bouton {\tt cfg} pour configurer ce graphique (enlever ou mettre les 
axes et modifier les param\`etres de cadrage et de graduation des axes) ou pour
avoir les commandes et l'\'ecran graphique l'un en dessous de l'autre,
ou c\^ote \`a c\^ote, en cochant, ou pas, {\tt Paysage}\index{Paysage},
\item un bouton $\blacksquare$ \index{$\blacksquare$} permettant de faire une pause lors d'une animation 
graphique,
\item un bouton {\tt Menu} \index{Menu} avec les sous-menus :
\begin{itemize}
\item {\tt Voir} (dont les items sont identiques aux boutons
situ\'es au dessus), 
\item {\tt 3-d} utile pour avoir diff\'erentes vues du graphique 3D
\item {\tt Imprimer} pour r\'ealiser facilement l'insertion du graphique dans
un texte \LaTeX ou autre,
\end{itemize}
\end{itemize}
\item une ligne de commandes de num\'ero 1 \`a gauche que l'on peut remplir 
avec une commande graphique ou non.
Chaque fois qu'une commande a \'et\'e execut\'ee, une nouvelle ligne est 
cr\'e\'ee.
\end{itemize}
Il n'y a pas de commande d'effacement de la figure, 
en effet, soit on modifie les commandes 
d'entr\'ee, soit on fait un nouveau graphique en ouvrant un \'ecran de 
g\'eom\'etrie sur un autre niveau.


\subsection{Le plan de vision et l'axe de vision}\index{plan de vision}
\index{axe de vision}
L'axe de vision est une droite passant par l'observateur et de vecteur 
directeur la direction de la vis\'ee de l'objet : tous les points situ\'es sur 
une parall\`ele \`a l'axe de vision seront repr\'esent\'es par un seul point.

Le plan de vision est un plan perpendiculaire \`a l'axe de vision et dont 
l'\'equation est inscrite en haut de l'\'ecran. On peut le 
faire bouger le long de l'axe de vision gr\^ace \`a la molette de la souris :
les plans successifs sont obtenus par une translation de vecteur
parall\`ele \`a l'axe de vision.

{\bf Attention}\\
Si le rep\`ere est orthonorm\'e et si le plan de vision a pour \'equation~:
\[ ax+by+cz=d \] 
l'axe de vision est dirig\'ee selon le vecteur $[a,b,c]$ mais
si le rep\`ere n'est pas orthonorm\'e ce n'est plus vrai!!!!

\subsection{Comment d\'efinir des objets g\'eom\'etriques}
Comme en g\'eom\'etrie 2D, y a deux fa\c{c}ons d'obtenir la plupart des objets 
g\'eom\'etriques :
\begin{itemize}
\item avec la souris\\
Les points d\'efinis par un clic de souris seront dans le plan de vision
c'est \`a dire situ\'es dans le plan perpendiculaire \`a l'axe de vision et 
dont l'\'equation se trouve en haut et \`a gauche de l'\'ecran.
Il faut choisir \`a l'aide du bouton {\tt Mode} l'objet 
g\'eom\'etrique \`a construire. Par exemple, il faut  \^etre en mode 
{\tt segment} pour tracer un segment ou \^etre en mode {\tt point} pour 
tracer un point etc....puis il faut cliquer dans le
parall\`el\'epip\`ede servant \`a la repr\'esentation pour d\'efinir les points
servant \`a la construction de l'objet 
g\'eom\'etrique d\'esir\'e. 
Les commandes correspondantes s'inscrivent alors
automatiquement dans les lignes de commandes.\\
{\bf Attention} certains modes ne fonctionnent qu'en g\'eom\'etrie plane, il 
faut alors  utiliser les commandes du menu {\tt Geo}, 
\item avec des commandes\\
On utilise les commandes du menu {\tt Geo}.
\end{itemize}
Pour corriger une erreur, il suffit de 
supprimer ou de modifier la ligne de commandes erron\'ee.

Notez que si on a coch\'e {\tt $\ \tilde{ }\ $}\index{$\ \tilde{ }\ $} dans la 
configuration des attributs (cliquer sur le bouton des attributs pour
cocher ou d\'ecocher {\tt $\ \tilde{ }\ $}), tous les points auront des 
coordonn\'ees avec des 
d\'ecimales alors que si {\tt $\ \tilde{ }\ $} n'a pas \'et\'e coch\'e
les points auront des coordonn\'ees rationnelles.
Par exemple, on clique dans l'\'ecran graphique en mode {\tt point} :
\begin{itemize}
\item si on a coch\'e {\tt $\ \tilde{ }\ $}, on obtient :\\
{\tt A:=point(-5.001,2.511,1,012,'affichage'=0)}
\item
si on n'avait pas coch\'e {\tt $\quad \tilde{ }\quad $}, on aurait obtenu :\\
{\tt A:=point(-5,5/2,1,'affichage'=0)}
\end{itemize}
cela permet de d\'efinir des points de coordonn\'ees enti\`eres, tr\`es 
facilement, en cliquant et aussi de d\'eplacer les objets plus rapidement.

\subsection{Comment d\'eplacer des objets g\'eom\'etriques}\index{plan de vision}\index{$\ \tilde{ }\ $}\index{Pointer}
Les objets g\'eom\'etriques peuvent se d\'eplacer, en bougeant la souris, 
dans le plan de vision (comme en g\'eom\'etrie plane).  Ils peuvent aussi se 
d\'eplacer sur la normale au plan de vision gr\^ace \`a la molette de la 
souris. Il faut savoir que le d\'eplacement est plus rapide si on a coch\'e
{\tt $\ \tilde{ }\ $} dans la configuration des attributs.
 

Pour d\'eplacer une figure il faut \^etre en mode {\tt Pointer}.
On clique alors sur l'objet \`a d\'eplacer puis sans relacher le bouton de la 
souris, on le d\'eplace :
\begin{itemize}
\item dans le plan de vision en bougeant la souris,
\item parall\`element \`a l'axe de vision en bougeant la molette de la souris.
Le plan de vision bouge avec le point et ainsi le point reste dans le plan de 
vision.
\end{itemize}

\subsection{Comment modifier l'axe de vision}\index{axe de vision}
On peut faire tourner le rep\`ere en cliquant en dehors du 
parall\`el\'epip\`ede servant \`a la repr\'esentation, puis sans relacher le 
bouton de la souris, on bouge la souris. Cela fonctionne quelque soit le mode 
choisi.

\subsection{Comment modifier le plan de vision}\index{plan de vision}
L'orientation du plan de vision peut \^etre modifi\'ee en changeant l'axe de 
vision comme expliqu\'e ci-dessus. On
peut aussi en tournant la molette de la souris
faire bouger le plan de vision par translation le 
long de l'axe de vision : cela permet d'obtenir successivement des plans 
parall\`eles entre eux et perpendiculaires \`a l'axe de vision.
Cela fonctionne quelque soit le mode choisi.

On peut aussi indiquer dans \verb|cfg| l'\'equation du plan
de vision.

{\bf Attention}\index{Pointer}\\
Lorsqu'on d\'eplace un point en mode {\tt Pointer} \`a l'aide de la molette de 
la souris, ce point reste dans le plan de vision, donc cela permet aussi de
translater le plan de vision.

\section{Le tableur}
\subsection{G\'en\'eralit\'es}
Le tableur de {\tt Xcas} utilise les conventions habituelles des tableurs~:
\begin{itemize}
\item Nom de cellule\index{cellule}.\\
Le tableur est une matrice dont on numérote les lignes par des nombres
et les colonnes par une ou plusieurs lettres. 
Le nom d'une cellule est composé d'abord
de la (des) lettre(s) (donc du numéro de colonne) puis du nombre.
Par exemple ligne 2, colonne 3 se note \verb|C2|.
Les num\'eros de lignes commencent \`a 0 en mode Xcas, 1 sinon.
\item Valeur et formule de calcul.\\
La valeur d'une cellule peut être une constante ou être calculée par une 
formule pouvant faire
intervenir les autres cellules, qui sont alors désignées par une
référence (cf. ci-dessous). Lorsqu'on modifie une cellule,
on entre soit une valeur constante, soit une formule de calcul
commencant par \verb|=|.
\item Référence relative et absolue.\\
Lorsqu'on désigne une cellule depuis une formule, on peut la désigner
relativement à la cellule que l'on définit, ou
de manière absolue. Cela affecte les copies de la formule dans d'autres
cellules, les références absolues copiées correspondront au même
numéro de ligne ou colonne, alors que les références relatives correspondent
au même décalage de lignes ou colonnes. Une référence absolue se note
en précédant la (les) lettre(s) ou/et le nombre de la cellule par le signe \$.
\item  Plage de cellules.\index{cellules (plage de)}
%\index{plage@plage!cellule}
Cela permet de faire référence à un ensemble rectangulaire de cellules,
par exemple pour en calculer la moyenne. On indique les noms
des cellules des sommets en haut \`a gauche et en bas \`a droite du rectangle 
s\'epar\'es par le signe {\tt :}  (par exemple {\tt mean(A0:B5)}).
\end{itemize}
\subsection{Comment avoir un tableur}
Pour cr\'eer un tableur, 
il faut utiliser le menu {\tt Edit}, puis {\tt Ajouter},
puis {\tt tableur} ou le raccourci {\tt Alt+t}.

On vous demande un nom pour ce tableur : lors de la sauvegarde de ce tableur, 
c'est ce nom qui servira de nom de variable et ce nom avec le suffixe 
{\tt .tab} servira de nom de fichier. Par exemple si vous donnez comme nom 
{\tt M}, la variable {\tt M} contiendra la matrice d\'efinie par le tableur 
et {\tt M.tab} sera  le fichier qui contiendra le tableur avec ses
formules.

On obtient un niveau contenant :
\begin{itemize}
\item en haut la barre de menu  de ce niveau :\\
\framebox{\tt Table Edit Statistics} et\\
\`a cot\'e de cette barre de menus les boutons :\\
{\tt reeval val Save <No filename>}
\item en dessous, le tableur avec une case s\'election, une ligne de commandes,
une  ligne d'\'etat et les cellules,
\item  en dessous du tableur, l'\'ecran de représentation graphique du tableur.
\end{itemize}
{\bf Remarque}\index{Graphe paysage}\index{Graphe portrait}\\
On peut choisir de :
\begin{itemize}
\item ne pas avoir d'\'ecran graphique, il faut alors choisir
{\tt Cacher graphe} dans {\tt Edit$\blacktriangleright$Configuration} du 
tableur, ou encore ne pas cocher {\tt Graphe} dans 
l'\'ecran de configuration du
tableur (que l'on obtient en cliquant sur la ligne d'\'etat du tableur),
\item d'avoir l'\'ecran de représentation graphique du tableur \`a droite du 
tableur il faut alors choisir {\tt Graphe portrait} dans 
{\tt Edit$\blacktriangleright$Configuration} du tableur, ou encore ne pas 
cocher {\tt Graphe paysage} dans l'\'ecran de configuration du tableur (que 
l'on obtient en cliquant sur la ligne d'\'etat du tableur),
\item d'avoir l'\'ecran de représentation graphique du tableur en dessous du 
tableur il faut alors choisir {\tt Graphe paysage} dans 
{\tt Edit$\blacktriangleright$Configuration} du tableur ou encore cocher
{\tt Graphe paysage} dans l'\'ecran de configuration du tableur 
(cet \'ecran de configuration du tableur s'obtient en cliquant sur la ligne 
d'\'etat du tableur ou avec 
{\tt Edit$\blacktriangleright$Configuration$\blacktriangleright$ Fenetre cfg}).
\end{itemize}
\subsection{Description du tableur}
Les deux premi\`eres lignes du tableur sont  : 
\begin{itemize}
\item une ligne compos\'ee 
de deux cases :
\begin{itemize}
\item une case de s\'election qui permet soit de s\'electionner une cellule 
(en tapant par exemple {\tt B0}) ou un sous tableau (en tapant par exemple 
{\tt B0..D3}), ou des colonnes non contigües (par exemple 
{\tt B0..3,D}), soit de savoir ce que l'on a s\'electionn\'e. 
\item une ligne de commandes qui permet de modifier une cellule du tableur ou 
de savoir ce qui se trouve dans cette cellule.

{\bf Attention}
Si le curseur
est dans cette ligne de commandes, lorsqu'on clique dans une case, c'est le 
nom de cette case qui va s'afficher dans cette ligne, sans changer la case de 
s\'election. Pour enlever le curseur tapez sur {\tt Echap} ou {\tt Escape} ou
encore sur la touche d'effacement $\longleftarrow$ jusqu'au d\'ebut
de ligne puis encore une fois.

Si le curseur n'est pas dans la ligne de commandes, lorsqu'on clique dans une 
case, c'est la formule de cette case qui va s'afficher dans cette ligne, en
mettant son nom dans la case de s\'election (pour avoir la valeur de cette case
il faut appuyer sur le bouton {\tt val}). 
\end{itemize}
\item la ligne d'\'etat rappelant la configuration choisie et servant aussi de 
bouton permettant de changer cette configuration.
 On d\'etermine la configuration dans le menu 
{\tt Edit$\blacktriangleright$Configuration} du tableur ou en cliquant sur 
cette ligne d'\'etat.
On a par exemple dans la ligne d'\'etat :\\
{\tt * Spreadsheet A R40C6 auto down fill} \\
cela veut dire que l'on a un tableur qui a \'et\'e modifi\'e depuis la 
derni\`ere sauvegarde ({\tt *}), de nom de variable {\tt A} qui a 40 lignes
et 6 colonnes, il est r\'e\'evalu\'e automatiquement, le curseur se d\'eplace 
vers le bas lorsqu'on vient de remplir une cellule et une matrice remplit 
plusieurs cellules.

Autre exemple :\\
{\tt - Matrix <> R4C6 manual right cell}\\
cela veut dire que l'on a une matrice qui n'a pas \'et\'e modifi\'ee depuis la 
derni\`ere sauvegarde ({\tt -}), il ne lui correspond pas de nom de variable
({\tt<>}), elle a 4 lignes et 6 colonnes, elle n'est r\'e\'evalu\'ee que si on 
appuie sur le bouton {\tt reeval}, le curseur se d\'eplace vers la droite 
lorsqu'on vient de remplir une cellule et une matrice remplit une seule 
cellule.
\end{itemize}
\subsection{L'\'ecran de représentation graphique du tableur}
Tous les r\'esultats des commandes graphiques situ\'ees dans les cellules du 
tableur s'afficheront dans l'\'ecran de représentation graphique du tableur.
Si on met {\tt 1} dans {\tt A0},
{\tt 2} dans {\tt B0}, {\tt =cercle(A0,B0)} dans {\tt C0} et 
{\tt =cercle(B0,A0)}
 dans {\tt D0}, alors on obtient le trac\'e de deux cercles et une modification
de l'une des deux cases {\tt A0} ou {\tt B0} modifira ce trac\'e. 


\subsection{La barre de menu du tableur}
Le menu {\tt Table} est compos\'e de :
\begin{itemize}
\item {\tt Sauver} pour sauver le tableur dans un fichier d'extension 
{\tt .tab}.
%Il faudra donner un nom  si il y a {\tt No filename} \`a cot\'e du bouton {\tt Save},
\item {\tt Sauver comme}  pour sauver le tableur sous un autre nom (d'extension
{\tt .tab}) que celui not\'e \`a cot\'e du bouton {\tt Save},
\item {\tt Save selection to variable} pour stocker dans une variable
 la matrice mise en surbrillance et pouvoir ainsi utiliser cette variable 
ailleurs (calcul formel par exemple). Par exemple si le nom de la variable est
{\tt a}, {\tt a[0,2]} donnera la valeur de la colonne 2 de la 
ligne 0 de la sous-matrice s\'electionn\'ee
(cette m\'ethode d'export est plus robuste que l'utilisation de 
la commande {\tt current\_sheet})
\item {\tt Inserer} pour ins\'erer 
\`a partir de la cellule mise en surbrillance 
un tableur sauv\'e pr\'ec\'edemment,
\item {\tt Nom de variable} pour donner un nom de variable au tableur.
Si le nom de la variable est {\tt tab}, {\tt tab[0,1]} renvera la valeur 
situ\'ee en {\tt B0},
\item {\tt Imprimer} pour imprimer le tableur. Vous pouvez pr\'evisualiser 
avant d'imprimer.
\end{itemize}
Le menu {\tt Edit} est compos\'e de :
\begin{itemize}
\item {\tt Eval sheet} ou {\tt F9} pour r\'e\'evaluer la feuille du tableur ou
encore on appuie sur le bouton {\tt reeval}.
\item {\tt Copier la cellule} pour mettre le contenu d'une cellule dans le 
buffer. En effet la s\'election d'une plage avec la souris n'est possible que 
si la plage a au moins deux cellules. On clique dans la cellule \`a copier, 
puis on clique sur {\tt Copier la cellule}. On peut aussi cliquer dans la 
cellule \`a copier et taper {\tt Ctrl+c}, puis cliquer dans la cellule o\'u 
l'on veut faire la copie, et taper {\tt Ctrl+v}. 
\item {\tt Coller} pour copier le buffer dans une cellule. Sous Linux, on peut
utiliser le bouton du milieu de la souris pour copier le buffer. On peut copier
le buffer dans la ligne de commandes du tableur ou d'une autre entr\'ee, mais 
on ne peut pas copier directement dans une cellule : il faut passer 
obligatoirement par la ligne de commandes. 
\item {\tt Configuration} 
La ligne d'\'etat rappelle la configuration choisie et est aussi un bouton 
ouvrant un \'ecran de configuration du tableur.\\
Les sous menus sont :
\begin{itemize}
\item {\tt Fenetre cfg} permet d'ouvrir l'\'ecran de configuration du tableur
(on peut aussi cliquer sur la ligne d'\'etat du tableur),
\item {\tt Format} permet d'avoir un tableur ou un \'editeur de matrice 
qui \'edite facilement des matrices sym\'etriques, antisym\'etriques,
hermitiennes, antihermitiennes,
\item {\tt Changer le nombre de lignes} permet de choisir le nombre de lignes,
\item {\tt Changer le nombre de colonnes} permet de choisir le nombre de 
colonnes,
\item {\tt Deplacer ->} permet de choisir de diriger le curseur automatiquement
vers la gauche lors du remplissage d'une cellule (on peut aussi utiliser la 
souris au coup par coup),
\item {\tt Deplacer vers le bas} permet de choisir de diriger le curseur 
automatiquement vers le bas lors du remplissage d'une cellule (on peut aussi 
utiliser la souris au coup par coup),
\item {\tt Recalculer automatiquement} pour que le tableur soit recalcul\'e
automatiquement,
\item {\tt Ne pas recalculer automatiquement} pour que le tableur ne soit 
pas recalcul\'e automatiquement : le recalcul ne se fait alors que si on appuie
sur le bouton {\tt reeval},
\item {\tt Distribuer une matrice sur plusieurs cellules} va permettre de 
remplir 
plusieurs cellules avec une matrice : par exemple si on s\'electionne {\tt A0}
et que l'on tape dans la ligne de commandes du tableur {\tt [1,2,3]}, cela 
remplira 3 cellules, en mettant 1 dans {\tt A0}, 2 dans {\tt B0} et 3 dans 
{\tt C0}, par contre si on tape dans la ligne de commandes du tableur
 {\tt =[1,2,3]} cela mettra [1,2,3] dans {\tt A0}.
\item {\tt Conserver une matrice dans une seule cellule} permet de remplir une 
cellule avec une matrice : par exemple si on s\'electionne {\tt A0}
et que l'on tape dans la ligne de commandes du tableur {\tt [1,2,3]} ou 
{\tt =[1,2,3]}, cela mettra [1,2,3] dans {\tt A0}.
\item {\tt Portrait} pour avoir l'\'ecran de représentation graphique du 
tableur \`a droite du tableur,
\item {\tt Paysage} pour avoir l'\'ecran de représentation graphique du 
tableur en dessous du tableur,
\item {\tt Cacher graph} pour ne pas avoir d'\'ecran de représentation
graphique associ\'e au tableur.
\end{itemize}
\item {\tt Trier} pour trier par ordre croissant ou d\'ecroissant par rapport
\`a une ligne ou une colonne (on vous demande laquelle) la sous-matrice mise 
en surbrillance (mais attention cela ne respecte pas les r\'ef\'erences),
\item {\tt Remplir} :
\begin{itemize}
\item pour copier automatiquement dans la colonne 
({\tt Copier vers le bas}) ou dans la ligne ({\tt Copier vers la droite}) la 
formule relative situ\'ee dans la cellule mise en surbrillance ou,
\item pour remplir toute la matrice mise en surbrillance avec la formule ou 
la valeur situ\'ee dans la premi\`ere cellule enfonc\'ee lors de la mise en 
surbrillance c'est \`a dire situ\'ee dans un des "coins" de la matrice : on 
s\'electionne la matrice en commen\c{c}ant par le coin o\`u se trouve la valeur
 ou la formule \`a recopier, puis 
{\tt Edit$\blacktriangleright$Copier la cellule enfoncee vers la selection} 
remplira cette matrice avec ce qui se trouve dans ce "coin". On peut aussi 
placer la souris dans le coin en bas \`a droite de la cellule : le curseur se 
transforme en une petite fl\`eche rouge $\Leftarrow$, puis on clique et on 
bouge la souris sans relacher le bouton de la souris pour mettre la matrice que
l'on veut remplir en surbrillance, puis on relache le bouton de la souris,
\item {\tt Remplir le tableur de 0} ou {\tt Remplir selection de 0}\\ 
pour remplir tout le tableur ou la matrice mise en surbrillance avec des 
z\'eros,
\item {\tt tablefunc} ou {\tt tableseq} pour avoir dans le tableur, le tableau 
de valeurs d'une fonction (avec la fonction {\tt tablefunc}) ou d'une suite 
(avec la fonction {\tt tableseq}).
\end{itemize}
\item {\tt Add/Delete} permet de g\'erer le nombre de lignes et de colonnes du 
tableur 
(on peut en inserer, en effacer etc..),
\item {\tt Col+grande} pour avoir la colonne d'une cellule s\'electionn\'ee
 plus large,
\item {\tt Col+petite}  pour avoir la colonne d'une cellule s\'electionn\'ee
 moins large,
\end{itemize}

Le menu {\tt Statistics} ouvre pour chaque item une boite de dialogue o\`u l'on
peut pr\'eciser~: la s\'election, la cellule cible (c'est dans cette cellule 
que s'inscrira la commande choisie), si on doit consid\'erer les lignes ou les 
colonnes de la  s\'election comme argument de la commande (en cochant ou non
{\tt Lignes}) et 
si on doit mettre les valeurs ou les r\'ef\'erences de la  s\'election 
(en cochant ou non {\tt valeur}).\\
Le menu {\tt Statistics} est compos\'e de :
\begin{itemize}
\item {\tt 1-d}\index{cellule cible}
\begin{itemize}
\item {\tt Boite \`a moustache}  \index{Boite a moustache} permet de tracer, 
sur l'\'ecran graphique,
associ\'e au tableur, les boites \`a moustaches des colonnes (ou des lignes si 
{\tt Lignes} est coch\'ee) des donn\'ees qui ont \'et\'e s\'electionn\'ees. C'est dans la 
cellule cible  que s'inscrit la commande {\tt moustache} avec comme argument
les valeurs ou les r\'ef\'erences de la plage s\'electionn\'ee  selon que 
l'on coche ou non {\tt valeur}.
\item {\tt Classes} \index{Classes} permet de regrouper en classes la colonne 
de donn\'ees s\'electionn\'ee (ou la ligne si on a  coch\'e {\tt Lignes})  
 ou les deux colonnes (ou les deux lignes si {\tt Lignes} est 
coch\'ee) s\'electionn\'ees representant les
 donn\'ees et leurs effectifs : il faut remplir la valeur minimum de la classe,
la largeur des classes et aussi la cellule cible qui est la premi\`ere cellule 
\`a partir de laquelle on \'ecrira les classes sur deux colonnes,

\item {\tt Histogramme}\index{Histogramme} permet de tracer, sur l'\'ecran graphique, 
l'histogramme de  deux colonnes s\'electionn\'ees representant les intervalles 
de donn\'ees et leurs effectifs,
\end{itemize}
\item {\tt 2-d}
\begin{itemize}
\item {\tt Scatterplot} \index{Scatterplot} permet de tracer sur l'\'ecran graphique :\\
si {\tt lignes} n'est pas coch\'e, les points 
d'abscisse la premi\`ere colonne s\'electionn\'ee et d'ordonn\'ee les autres 
colonnes s\'electionn\'ees ou,\\
si {\tt lignes} est coch\'e, les points d'abscisse la premi\`ere ligne 
s\'electionn\'ee et d'ordonn\'ee les autres lignes s\'electionn\'ees.\\
 Les couleurs seront diff\'erentes pour les points
dont les ordonn\'ees sont dans des colonnes (resp lignes) diff\'erentes.\\
Par exemple,
\begin{itemize}
\item  si {\tt lignes} n'est pas coch\'e, on remplit :\\
{\tt A0,A1,A2,A3} avec {\tt 1,2,3,4} et \\
{\tt B0,B1,B2,B3} avec {\tt 1,4,9,16}, puis \\
on s\'electionne la matrice {\tt A0:B3} et on ouvre le menu 
{\tt Statistiques 2-d  Scatterplot}.
\item  si {\tt lignes} est coch\'e, on remplit :\\
{\tt A0,B0,C0,D0} avec {\tt 1,2,3,4} et \\
{\tt A1,B1,C1,D1} avec {\tt 1,4,9,16}, puis \\
on s\'electionne la matrice {\tt A0:D1} et on ouvre le menu 
{\tt Statistiques 2-d  Scatterplot}.\index{cellule cible}
\end{itemize}
Une boite de dialogue s'ouvre o\`u la plage s\'electionn\'ee est marqu\'ee 
(si vous n'avez rien s\'electionn\'e il faut remplir cette case) puis,
il faut donner le nom de la {\tt cellule cible} l\`a o\`u la commande 
{\tt scatterplot} va s'inscrire. Selon que l'on coche ou non {\tt valeur}, ce 
sont soient les valeurs soient les r\'ef\'erences de la plage 
s\'electionn\'ee qui seront en argument de la commande {\tt scatterplot}. \\
Supposons que {\tt lignes} n'est pas coch\'e.
\begin{itemize}
\item Si {\tt valeur} n'est pas coch\'e dans la boite de dialogue et si la 
cellule cible est {\tt C0}, dans la ligne de 
commandes du tableur et dans {\tt C0} il s'inscrit alors :\\
{\tt =scatterplot(matrix(4,2,(A0):(B3)))}
\item Si {\tt valeur} est coch\'e dans la
boite de dialogue et si la cellule cible est {\tt C1}, dans la ligne de 
commandes du tableur et dans {\tt C1} il s'inscrit alors :\\
{\tt =scatterplot([[1,1],[2,4],[3,9],[4,16]])}.
\end{itemize}
 Ainsi une modification des 
valeurs de  {\tt A0:B3} modifira, lors d'une r\'e\'evaluation du tableur, le 
graphique command\'e par la case {\tt C0} 
mais ne modifira pas le graphique command\'e par la case {\tt C1}. Autrement 
dit, si vous ne travaillez pas en valeur, c'est \`a dire avec des 
r\'ef\'erences, \`a chaque modification, on aura
une modification du graphique et si vous travailler en valeur \`a chaque 
modification il faudra inscrire dans une nouvelle cellule cible la commande 
{\tt scatterplot} et on aura alors plusieurs graphiques correspondant chacun 
aux commandes {\tt scatterplot} situ\'es dans les cellules cibles.\\
{\bf Attention}\\
Lorsqu'on s\'electionne une plage avec la souris on ne peut s\'electionner que 
des colonnes contig\"{u}es. On peut n\'eanmoins remplir la plage de s\'election
de la boite de dialogue avec des colonnes non contig\"{u}es par exemple :\\
si {\tt lignes} n'est pas coch\'e, on mettra {\tt C0..5,A,D} pour dire, que les
points que l'on veut repr\'esenter ont pour abscisses la colonnes {\tt C} et 
pour ordonn\'ees la colonne {\tt A} d'une part et pour abscisses la colonnes 
{\tt C} et pour ordonn\'ees la colonne {\tt D} d'autre part.\\
Mais dans ce cas {\tt scatterplot} s'affichera comme si 
{\tt valeur} etait coch\'e (m\^eme si ce n'est pas le cas). 
\item {\tt Polygonplot}\index{Polygonplot} permet de tracer sur l'\'ecran graphique les points 
d'abscisse la premi\`ere colonne s\'electionn\'ee et d'ordonn\'ee les autres 
colonnes s\'electionn\'ees, en reliant entre eux les points dont les 
ordonn\'ees sont dans une m\^eme colonne.\\
La m\^eme  boite de dialogue que pour {\tt scatterplot} s'ouvre. Dans la ligne
 de commandes du tableur il s'inscrit alors, par exemple, dans {\tt D5} :\\
{\tt =polygonplot(matrix(3,3,A0:C2))} si ni {\tt lignes} ni {\tt valeur} ne 
sont coch\'es, si la cellule cible est {\tt D5} et si la plage s\'electionn\'ee
est {\tt A0:C2}.
\end{itemize}
\end{itemize}

\subsection{Les boutons reeval val Save}
\begin{itemize}
\item {\tt reeval} permet de r\'e\'evaluer le tableur.
\item {\tt val} permet d'afficher la valeur de la case au lieu de la formule
dans la ligne de commandes situ\'ee \`a cot\'e de la case de s\'election.
Il faut bien sur que cette valeur existe. Cette case doit donc \^etre 
calcul\'ee en cliquant auparavant s\^ur {\tt reeval} si on n'est pas en recalcul 
automatique.
\item {\tt save} permet de sauver le tableur sous le nom indiqu\'e \`a droite
de {\tt Save}, si c'est {\tt No filename} on vous demande le nom choisi qui
doit \^etre un {\tt .tab}. 
\end{itemize}

\subsection{Pour recopier une cellule du tableur \`a la souris}
Pour recopier une cellule du tableur \`a la souris on peut :
\begin{itemize}
\item Si n\'ecessaire, on remplit la cellule qui sera recopi\'ee~:
si le curseur n'est pas dans la ligne de commandes, 
on clique dans la cellule \`a remplir, puis on tape {\tt =} suivi de la 
formule en d\'esignant les \'eventuelles r\'ef\'erences avec la
souris, puis on valide par {\tt Entree} ; sinon,
il faut au pr\'ealable enlever le curseur de la ligne de commandes
en tapant sur la touche {\tt esc},
\item Pour recopier le contenu d'une cellule, on clique sur cette cellule, puis
on appuie sur un bouton de la souris au m\^eme endroit : 
le curseur de la souris change de forme, 
on d\'eplace alors la souris (bouton 
enfonc\'e) pour s\'electionner la
zone o\`u l'on veut recopier cette cellule, 
puis on relache le bouton de la souris. 
Cela a le m\^eme effet que l'un des menus obtenus avec 
{\tt Edit$\blacktriangleright$Remplir$\blacktriangleright$Copier la cellule...}.
\end{itemize}
\section{L'\'editeur de programmes}
Il faut utiliser le menu {\tt Edit},
 puis {\tt Ajouter}, puis {\tt program} ou le raccourci {\tt Alt+p} pour 
cr\'eer un \'editeur de programmes et sa barre de menus.

On peut \'ecrire des programmes dans cet \'editeur avec coloration
syntaxique, et indentation
automatique exp\'erimentale
de la ligne en mode {\tt Xcas} (appuyer sur la touche de 
tabulation pour indenter). 

\subsection{La barre de menus de l'\'editeur de programmes}
On a les menus : {\tt Prog Edit Ajouter}
et les boutons : {\tt nxt OK save}.

Le menu {\tt Prog} :
\begin{itemize}
\item {\tt Charger} permet de recopier dans l'\'editeur de programmes le 
fichier dont vous sp\'ecifiez le nom,
\item {\tt Inserer} permet d'ins\'erer un texte \'eventuellement
\'ecrit avec une autre syntaxe (Maple..) en le traduisant,
\item {\tt Sauver} permet de sauver le texte situ\'e dans l'\'editeur de 
programmes dans un fichier de l'extension courante (par exemple {\tt .cxx})
\item {\tt Sauver comme} permet de sauver le texte situ\'e dans l'\'editeur de 
programmes dans un autre fichier de l'extension courante (par exemple 
{\tt .cxx})
\item {\tt Extension de fichier} vous propose de d\'efinir l'extension 
par d\'efaut. Cette extension sera rajout\'ee automatiquement lorsque vous 
sauver ou charger un fichier m\^eme si vous donnez une autre extension !
Si vous voulez donner vous m\^eme votre extension \`a chaque fois, 
il ne faut rien mettre c'est
\`a dire mettre une ligne vide dans la boite de dialogue d'
{\tt Extension de fichier}. 
\item {\tt Exporter} permet de traduire votre texte selon une autre syntaxe,
\item {\tt Imprimer} permet d'imprimer votre texte, avec la 
possibilit\'e de le pr\'evisualiser, 
\end{itemize}
Le menu {\tt Edit}~:
\begin{itemize}
\item {\tt Coller} permet de recopier ce qui a \'et\'e s\'electionn\'e,
\item {\tt Rechercher} permet de rechercher un mot et aussi de remplacer ce mot par un autre. Quand on s\'electionne {\tt Rechercher}, cela ouvre une fen\^etre
dans laquelle on tape le mot recherch\'e dans la case {\tt recherche}
et eventuellement le mot qui doit le remplacer dans la case {\tt remplace}. \\
Puis on clique sur {\tt suivant} pour trouver le mot recherch\'e suivant ou 
sur {\tt remplace} pour remplacer le mot recherch\'e en surbrillance et passer 
au mot recherch\'e suivant. On peut aussi, si on est s\^ur de soi, cliquer sur 
{\tt remplace tous} pour faire l'op\'eration de remplacement en une seule fois.
\item {\tt Execute tout} permet de faire executer toute
la liste des commandes situ\'ees dans cet \'editeur : il faut pout cela mettre 
le curseur dans une ligne de commandes de calcul formel ou dans une 
ligne de commandes d'un dessin Tortue.
\end{itemize} 
Le menu {\tt Ajouter} :
\begin{itemize}
\item {\tt Func} donne la syntaxe voulue pour \'ecrire une fonction dans le 
mode choisi,
\item {\tt Test} donne la syntaxe voulue pour \'ecrire une instruction 
conditionnelle dans le mode choisi,
\item {\tt Loop} donne la syntaxe voulue pour \'ecrire une boucle dans le 
mode choisi,
\end{itemize} 
Les boutons~:
\begin{itemize}
\item {\tt nxt} permet de chercher la prochaine apparition du mot
sp\'ecifi\'e dans le menu {\tt Edit$\blacktriangleright$Rechercher} (m\^eme si 
la boite de dialogue de {\tt Rechercher} a \'et\'e ferm\'ee).
\item {\tt OK} permet de compiler le programme ou le script se trouvant dans 
l'\'editeur pour pouvoir utiliser le programme dans un autre niveau. 
Si il y a une erreur, le num\'ero de la ligne o\`u se
trouve l'erreur est indiqu\'e apr\'es le programme dans l'emplacement pour les 
affichages interm\'ediaires et aussi dans la zone de messages 
du bandeau g\'en\'eral. Si il n'y a pas d'erreur, il y a {\tt Success} dans ces
deux zones.

\item {\tt save} permet de sauver le programme ou le script.
\end{itemize}

\section{L'\'ecran DispG et l'instruction {\tt ClrGraph} pour effacer}\index{DispG}\index{ClrGraph}
On obtient cet \'ecran avec le menu : {\tt Session}$\blacktriangleright${\tt
  Montrer}$\blacktriangleright${\tt Montrer DispG}

L'\'ecran {\tt DispG} enregistre toutes les commandes graphiques
depuis le d\'ebut de la session, sans distinction de niveau. Il
permet en particulier de visualiser les affichages graphiques
interm\'ediaires d'un programme (en effet seuls les objets graphiques
renvoy\'es par {\tt return} peuvent \^etre affich\'es en
r\'eponse dans un niveau o\`u on ex\'ecute un programme).
Par exemple, si vous avez fait un programme r\'ealisant un dessin
r\'ecursif, vous pouvez voir votre dessin sur l'\'ecran {\tt DispG}.
L'\'ecran {\tt DispG} est aussi utilis\'e par la commande
{\tt interactive\_odeplot} pour cliquer des courbes int\'egrales
\`a visualiser sur fond de champ de vecteur.

La commande {\tt ClrGraph()} permet 
d'effacer l'\'ecran {\tt DispG}.

\section{Mise au point d'un programme.}\index{debugger}
La commande {\tt debug} permet de lancer un programme en mode
d'ex\'ecution pas \`a pas. Elle ouvre une fen\^etre permettant
de diriger l'ex\'ecution du programme pass\'e en argument.

Par exemple, on entre le programme~:
\begin{verbatim}
carres(n):={
  local j,k;
  k:=0;
  for (j:=1;j<n+1;j++) {
    k:=k+j^2;
  }
  return k;
}
\end{verbatim}
On tape pour debugger le programme {\tt carres} ci-dessus~:
\begin{center}
{\tt debug(carres(5))}
\end{center}
cela ouvre la fen\^etre du debugger o\`u l'on a :
\begin{itemize}
\item un \'ecran o\`u se trouve le programme,
\item une ligne de commandes rep\'er\'ee par {\tt eval} dans laquelle on peut
faire un calcul, \'ecrire une commande {\tt watch} par exemple ou modifier un 
param\`etre,
\item une ligne d'\'etat, o\`u est affich\'e le r\'esultat de la
  derni\`ere \'evaluation, le nom du programme debuggu\'e, ses
  arguments, la liste des points d'arr\^et et le num\'ero de la ligne 
ex\'ecut\'ee,
\item 7 boutons {\tt sst dans cont tuer rmwtch voir break}~:
\begin{enumerate}
\item {\tt sst} permet de passer \`a l'instruction suivante,
\item {\tt dans} permet d'entrer dans un sous-programme pour qu'il soit 
ex\'ecut\'e pas \`a pas,
\item {\tt cont} pour continuer l'ex\'ecution jusqu'au point d'arr\^et suivant,
\item {\tt tuer} pour arr\^eter pr\'ematur\'ement l'ex\'ecution
du programme et donc fermer l'\'ecran du debugger.
\item {\tt rmwatch} permet d'enlever une variable de la liste des variables 
affich\'ees automatiquement (cf. {\tt voir})
\item {\tt voir} permet de demander l'affichage automatique du contenu
de variables lors du d\'eroulement  du programme,
\item {\tt break} permet de marquer un point d'arr\^et pour que l'ex\'ecution 
se fasse d'un seul coup jusqu'au point d'arr\^et,
\end{enumerate}
\item un \'ecran o\`u va s'afficher les valeurs des variables
que l'on a demand\'ees de voir 
gr\^ace au bouton {\tt voir} ou \`a la commande {\tt watch}, 
\end{itemize}

Pour mettre au point un programme, on utilise aussi la commande 
{\tt print} qui permet de r\'ealiser un affichage en cours de programmme.
Cet affichage s'\'ecrira alors en bleu.
On tape par exemple dans un \'editeur de programmes :
\begin{verbatim}
carres(n):={
  local j;
  for (j:=1;j<n+1;j++) {
    print(j^2);
  }
  return n^2;
}
\end{verbatim}
Puis on compile ce programme en cliquant sur {\tt OK}.

On tape ensuite dans une ligne de commandes :
{\tt carres(5)}\\
On obtient :\\
{\tt 1\\
4\\
9\\
16\\
25}\\
 \'ecrit en bleu\\
et\\
{\tt 25}\\
le r\'esultat \'ecrit en noir.  

\section{L'\'ecran de g\'eom\'etrie tortue}
Pour cr\'eer un niveau de g\'eom\'etrie tortue, il faut utiliser le menu 
{\tt Edit}, puis {\tt Ajouter}, puis {\tt dessin tortue} ou le raccourci 
{\tt Alt+d}.

On obtient :
\begin{itemize}
\item au centre, un \'ecran de g\'eom\'etrie permettant de piloter une tortue,
avec en bas des boutons avec les abr\'eviations des commandes et le 
bouton {\tt Menu}\index{Menu}, 
\item \`a droite, un \'ecran et sa barre de menu qui contiendra la suite de 
toutes les commandes que l'on aura ex\'ecut\'ee. Cet \'ecran est, en fait, 
un \'editeur de programmes (sans les boutons {\tt OK nxt}) et fonctionne donc 
comme un \'editeur de programmes, sa particularit\'e etant de se remplir 
automatiquement par les instructions au fur et \`a mesure qu'on les ex\'ecute
dans les lignes de commandes situ\'ees \`a gauche du dessin.
\item une ligne de commandes de num\'ero 1 \`a gauche que l'on peut remplir
 avec une commande graphique ou non.\\
 Lorsque l'on clique sur l'abr\'eviation d'une commande, cette commande
s'\'ecrira l\`a o\`u se trouve le curseur, soit dans la ligne de commandes soit
dans un \'editeur de programmes. 

Chaque fois qu'une commande situ\'ee dans la ligne de commandes a \'et\'e 
execut\'ee (on appuie pour cela sur {\tt Enter}), une nouvelle ligne est 
cr\'e\'ee. Mais attention, si on valide plusieurs fois la m\^eme ligne cela 
aura pour effet de d\'eplacer la tortue plusieurs fois : c'est pour cela que 
l'on garde une trace des commandes effectu\'ees dans l'\'ecran de droite.\\
Il faut bien s\^ur laisser les commandes s'\'ecrire les unes \`a la suite des 
autres : il ne faut donc pas changer le curseur de place et donc ne pas cliquer
dans l'\'ecran de droite au cours du travail.
\`A noter que toutes les commandes situ\'ees dans l'\'ecran de droite peuvent
s'ex\'ecuter en une seule fois avec le menu 
{\tt Edit$\blacktriangleright$Execute tout} et que ces commandes peuvent aussi
\^etre modifi\'ees.
\end{itemize}


\newpage
\appendix
\section{Pour les habitu\'es de l'ancien {\tt Xcas}}

La nouvelle interface de {\tt Xcas} est plus facile d'acc\`es que l'ancienne 
car les diff\'erents \'ecrans sont visibles les uns \`a la suite des autres.\\
Il faut savoir que :
\begin{itemize}
\item l'ancien \'ecran {\tt hist io} de {\tt xcas} qui servait \`a 
l'\'ecriture des r\'esultats interm\'ediaires d'un programme est remplac\'e 
par un emplacement situ\'e entre la commande et le r\'esultat et o\`u les 
r\'esultats interm\'ediaires seront \'ecrits en bleu. Bien s\^ur lorsqu'il n'y
a pas de  r\'esultats interm\'ediaires, cet emplacement n'est pas visible.
On tape par exemple :\\
{\tt for (j:=1;j<5;j++) \{print(3*j);\}} \\
On obtient :\\
{\tt 3\\6\\9\\12}\\
\'ecrit en bleu dans la zone des r\'esultats interm\'ediaires et,\\
{\tt 1}\\
 \'ecrit en noir dans la zone pour la r\'eponse car l'instruction 
{\tt print} renvoie {\tt 1}. 
\item l'ancien \'ecran {\tt geo io} de {\tt Xcas} qui servait aux sorties 
graphiques interm\'ediaires d'un programme est remplac\'e par un \'ecran que 
l'on obtient \`a l'aide du menu {\tt Session} puis {\tt Montrer} puis 
{\tt Montrer DispG}.\\
Par exemple, les dessins r\'ecursifs ne seront visibles que dans cet \'ecran.
On ne peut pas avoir plusieurs \'ecrans de ce type et donc cet \'ecran 
refl\`ete toutes les sorties graphiques de la session. On peut l'effacer : 
l'instruction {\tt ClrGraph()} tap\'ee depuis une ligne de commandes de la 
session efface cet \'ecran.
\end{itemize}
Il faut savoir que :
les boutons rouges {\tt cas geo gen} qui servaient \`a ouvrir des fen\^etres 
permettant de r\'egler les diff\'erentes configurations, sont remplac\'es par :
\begin{itemize}
\item la ligne d'\'etat  rouge qui est aussi un bouton ouvrant la 
configuration du {\tt cas} ou le  menu 
{\tt Cfg$\blacktriangleright$Cas configuration},
\item le menu {\tt Cfg$\blacktriangleright$Graph configuration},
\item le menu {\tt Cfg$\blacktriangleright$Gen configuration}. 
\end{itemize}
Il faut savoir que :
les boutons jaunes {\tt eqw geo hist mtrw prg} qui servaient \`a ouvrir des
fen\^etres permettant d'avoir diff\'erents \'ecrans, sont remplac\'es par :
\begin{itemize}
\item {\tt Alt+e} pour ouvrir une nouvelle entr\'ee de type \'editeur 
d'\'equations,
\item {\tt Alt+g} pour ouvrir une nouvelle entr\'ee de type \'ecran de 
g\'eom\'etrie plane,
\item {\tt Alt+h} pour ouvrir une nouvelle entr\'ee de type \'ecran de 
g\'eom\'etrie 3D,
\item {\tt Alt+n} pour ouvrir une nouvelle entr\'ee de type ligne de 
commandes,
\item {\tt Alt+t} pour ouvrir  une nouvelle entr\'ee de type tableur,
\item {\tt Alt+p} pour ouvrir  une nouvelle entr\'ee de type \'editeur de 
programmes.
\end{itemize}
ou on utilise le menu 
{\tt Edit$\blacktriangleright$Ajouter$\blacktriangleright$equation} de la 
session \`a la place des raccourcis clavier {\tt Alt+e} etc...

\end{document}


\subsection{L'instruction d'affichage : {\tt print}}
{\tt print} permet de r\'ealiser un affichage en cours de programmme.\\
Cet affichage s'\'ecrira alors en bleu.\\
On tape par exemple dans un \'editeur de programmes :
\begin{verbatim}
carres(n):={
local j;
for (j:=1;j<n+1;j++) {
print(j^2);
}
return n^2;
}
\end{verbatim}
Puis on complile ce programme en cliquant sur {\tt OK}.\\
On tape ensuite dans une ligne de commandes :
{\tt carres(5)}\\
On obtient :\\
{\tt 1\\
4\\
9\\
16\\
25}\\
 \'ecrit en bleu\\
et\\
{\tt 25}\\
 le r\'esultat \'ecrit en noir.  
