X-Git-Url: https://melusine.eu.org/syracuse/G/git/?p=mp-gdd.git;a=blobdiff_plain;f=doc%2Fmp-gdd-doc.tex;fp=doc%2Fmp-gdd-doc.tex;h=f71d136e2e7d697b608dd655fbf723ef37f23fd7;hp=1116a145ad9db9fdf6ae0c40806f07a0e2528a41;hb=582bd872721899f23a1ef221b9d1abc57d39e759;hpb=6639f7110576d52cbf6516ef3036bd769bb4cb46 diff --git a/doc/mp-gdd-doc.tex b/doc/mp-gdd-doc.tex index 1116a14..f71d136 100644 --- a/doc/mp-gdd-doc.tex +++ b/doc/mp-gdd-doc.tex @@ -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}