Stocker une valeur
Stocker une valeur
Bonjour,
On peut faire des calculs avec LaTeX (par exemple avec le code PostScript {2 4 mul}, mais comment stocker le résultat du calcul dans une variable ?
On peut faire des calculs avec LaTeX (par exemple avec le code PostScript {2 4 mul}, mais comment stocker le résultat du calcul dans une variable ?
Re: Stocker une valeur
En Postscript, on définit une variable a ainsi:stokastik a écrit :Bonjour,
On peut faire des calculs avec LaTeX (par exemple avec le code PostScript {2 4 mul}, mais comment stocker le résultat du calcul dans une variable ?
Code : Tout sélectionner
/a{2 4 mul}def
En $\LaTeX$ je suppose qu'il faut utiliser des registres, pour des valeurs entières, sinon des registres de dimension, mais je ne l'ai jamais fait.stokastik a écrit :Et en LaTeX ???
Autre question :
Y a-t-il moyen de définir une fonction et de l'évaluer au point qu'on veut ?
En postscript voici une fonction f d'une variable x ($x\sin(x)$):
Code : Tout sélectionner
/defvar{/x 2 -1 roll def}def
/f{defvar x dup sin mul}def
La macro defvar permet de lire la valeur qui précède f et la stocke dans une variable x, puis la macro f duplique x, calcule son sinus et le multiplie avec le x et donne le résultat (pour comprendre il faut savoir que postscript fonctionne avec une pile).
On peut même tracer directement la courbe en postscript (je n'ai pas fait de changement d'échelle!):
Code : Tout sélectionner
0 0 f moveto 0 36{10 add dup dup f lineto}repeat stroke
TeX est une machine avec 246 registres (mémoires) numériques, 256 registres de listes de tokens (qui ont un comportement différent des macros, dont le nombre est virtuellement illmité), et d'autres registres pour les dimensions et le boîtes. En outre, il n'est pas très difficile de programmer un pile pour sauvegarder des nombres. Tout cela devrait tout à fait réjouir les gens qui ont déjà programmé un microprocesseur.
exemple de fonction pour TeX
C'est vraiment aussi appétissant que de l'assembleur. En tout cas bien spécifier le comportemnt des fonctions (ie la façon dont elles modifient les registres). Pour n'importe quoi de compliqué une pile est certainement nécessaire (à moins d'être une adpete de consrcuctions avec *expandafter*).
exemple de fonction pour TeX
Code : Tout sélectionner
\newcount\RA
\newcount\RB
\newcount\RC
\newcount\RD
% les quatres noms symboliques RA RB RC et RD désignent une mémoire numérique
% la fonction max écrit le maximum de RA et RB dans RC.
% RA RB et RD ont leur contenus préservés
\def\max{% coiffeur pour dames
\RC=\RA
\advance\RC by -\RB
\ifnum\RC<0 \RC=-\RC\fi
\advance\RC by \RA
\advance\RC by \RB
\divide\RC by 2 }% attention à laisser l'espace ici
\RA=45 \RB=-11 \max
Le plus grand parmi \the\RA\ et \the\RB\ est \the\RC.
-
- Sujets similaires
- Réponses
- Vues
- Dernier message