extendedchars=true, %
showspaces=false, %
showstringspaces=false, %
- % numbers=left,
- % numbersep=0.8em,
- % numberstyle=\tiny, %
+ numbers=left,
+ numbersep=0.8em,
+ numberstyle=\tiny, %
breaklines=true, %
breakautoindent=true,
captionpos=b,
\newcommand\variable[1]{\texttt{#1}}
\newcommand\typeMP[1]{\texttt{#1}}
\newcommand\typeGDD[1]{\texttt{#1}}
+\newcommand\foncGDD[1]{\texttt{#1}}
\begin{document}
\mpgdd utilise des tables comme structure principale.
Chaque objet est numéroté via le compteur \variable{gddO}, son
-type\footnote{Les types son propres à \mpgdd et seront décrit plus
+type\footnote{Les types sont propres à \mpgdd et seront décrit plus
tard.} est stocké dans la table \variable{gddT[]} à la place
\variable{gddT[gddO]}. Les propriétés des objets sont définies dans, là
encore, des tables de type \typeMP{numeric} qui sont
\typeMP{string}. Nous verrons plus tard quelle est leur utilité.
Bien entendu, lors d'une utilisation classique de \mpgdd, l'appel à
-toutes ces tables n'est pas chose courante.
+toutes ces tables n'est pas chose courante. Les fonctions que nous
+allons décrire dans la suite de ce documents permettent de ne pas
+avoir recours trop précisément à cette machinerie.
\section{Les types}
enddef;
\end{lstlisting}
-\LTXinputExample[graphic=../exemples/cercles/cercles1-1.pdf,pos=r]{../exemples/cercles/cercles1.mp}
+Cette fonction «retourne» le compteur \variable{gdd0} et crée dans la
+table de type une entrée \typeGDD{point} et les attributs (coordonnées)
+correspondants \variable{a} et \variable{b} dans les tables
+\variable{gddA} et \variable{gddB}.
+
+Avec un tel type de fonctionnement, la plupart des manipulations se
+fait sur des \typeMP{numeric}s. En effet, pour déclarer un
+\typeGDD{point}, il suffit d'écrire
+\begin{lstlisting}
+A = point(2,3);
+\end{lstlisting}
+\variable{A} prend alors la valeur courante de \variable{gddO}. C'est
+l'identifiant de du point.
+
+\paragraph{Le type \typeGDD{vecteur}} Ce type correspond aux vecteurs
+définis à l'aide de deux points de l'espace euclidien. La fonction
+créatrice d'un tel objet est celle-ci
+%
+\begin{lstlisting}
+vardef Vecteur(expr a,b) =
+ save n; n = incr gddO;
+ gddT[n] = "vecteur"; gddA[n] = PointImp(a); gddB[n] = PointImp(b); n
+enddef;
+\end{lstlisting}
+Cette fonction a la même architecture que celle correspondante au
+\typeGDD{point} : elle retourne la valeur courante de \variable{gddO}
+après incrémentation, puis affecte le type \typeGDD{vecteur} à
+l'entrée correspondante dans la table \variable{gddT}. Par contre, les
+entrées des tables \variable{gddA} et \variable{gddB} sont
+différentes. En effet, on stock ici les identifiants des points
+formant le vecteur. La fonction \foncGDD{PointImp} s'assure que
+l'entrée correspond bien à un identifiant de point et non pas une
+\typeMP{pair} \MP. Elle sera décrite plus en détail ultérieurement.
+
+
\section{Fonctions générales}