PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rekursion



ROSA
27-10-2007, 10:01
Guten Morgen an alle!

Ich möchte in einem LaTeX-Dokument etwas rekursiv berechnen.Dazu habe ich eine Variable definiert mit
\def\x{0.0 }
Dieser Variablen soll (innerhalb einer Schleife) ein neuer Wert zugewiesen werden, der den alten Wert der Variablen verwendet, z.B. (naiv gedacht) so:
\def\x{x 1 add }
Das funktioniert aber nicht! (TeX capacity exceeded).
Meine Frage daher: Wie kann ich eine mit \def definierte Variable neu belegen?

Vielen Dank im voraus!
LG
Robert

rais
27-10-2007, 11:03
Moin Robert,


\def\x{x 1 add }
Das funktioniert aber nicht! (TeX capacity exceeded).
Meine Frage daher: Wie kann ich eine mit \def definierte Variable neu belegen?

Du könntest Dir eine zweite Variable anlegen, z. B. \mytmp -- in dieser legst Du eine Kopie von \x an und bei der Neuzuweisung von \x arbeitest Du dann mit dieser Kopie, also


\def\mytmp{}%nicht unbedingt notwendig
\def\x{irgendwas}
\let\mytmp\x
\def\x{\mytmp\ anderes}

so \x hier nur Deinen Schleifenzähler darstellt, dann nimmst Du vielleicht besser


\usepackage{ifthen}
\newcounter{schleife}
\setcounter{schleife}{0}%Startwert
\whiledo{\theschleife<10}{%Endwert+1
\stepcounter{schleife}%Schleifenzähler inkrementieren
%Was hier steht, wird entsprechend oft durchlaufen
}

MfG,

ROSA
27-10-2007, 17:56
Danke Rainer!

Das mit dem Schleifenzähler funktioniert nicht weil meine Variable nicht ganzzahlig ist.
An die Variante mit der zweiten Variablen, in die die erste kopiert wird, hatte ich auch schon gedacht. Es will mir nicht einleuchten, warum das nicht geht, aber es ist nunmal so!

Nochmals danke für deine Bemühungen!
Robert