Type vecteur documenté
[mp-gdd.git] / doc / mp-gdd-doc.tex
index 1116a14..f71d136 100644 (file)
@@ -32,9 +32,9 @@
   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,
@@ -53,6 +53,7 @@
 \newcommand\variable[1]{\texttt{#1}}
 \newcommand\typeMP[1]{\texttt{#1}}
 \newcommand\typeGDD[1]{\texttt{#1}}
+\newcommand\foncGDD[1]{\texttt{#1}}
 
 \begin{document}
 
@@ -91,7 +92,7 @@ distributions \TeX.
 
 \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
@@ -106,7 +107,9 @@ Il y a deux tables particulières \variable{gddP[]} qui est du type
 \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}
 
@@ -130,7 +133,41 @@ vardef Point(expr a,b) =
 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}
 

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.