Rufen Sie mit ‚ @FUNCa den Inhalt von FUNCa in den Stack.
« "Enter a: " {" :a: " {2 0} V } INPUT OBJ→ → a «
'2*a^2+3'
Modifizieren Sie sie wie folgt:
« "Enter a: " {" :a: " {2 0} V } INPUT OBJ→ → a «
'2*a^2+3' EVAL "F" →TAG a SWAP» »
(Beachten
Sie,
dass
„°@) S TACK @SWAP@) aufgerufen wird. Speichern Sie das modifizierte
Programm wieder mithilfe von „ @FUNCa unter FUNCa. Starten Sie das
Programm durch Drücken von @FUNCa. Geben Sie, wenn Sie hierzu
aufgefordert werden, den Wert 2 ein, und drücken `. Als Ergebnis
erhalten Sie die gekennzeichneten Zahlen a:2. in Stack-Ebene 2 und F:11.
in Stack-Ebene 1.
Hinweis: Da wir einen Eingabestring für die Eingabe der Daten verwenden,
speichert die lokale Variable a einen gekennzeichneten Wert (in obigem
Beispiel :a:2 ). Daher müssen wir die Eingabe nicht markieren. Wir müssen
nur in das Unterprogramm ein a vor die SWAP-Funktion einfügen und die
gekennzeichnete Eingabe wird in den Stack geschrieben. Es soll noch mal
darauf hingewiesen werden, dass bei der Kalkulation einer Funktion die
Markierung der Eingabe automatisch weggelassen und nur deren numerischer
Wert bei der Berechnung verwendet wird.
Um sich die Funktion FUNCa Schritt für Schritt anzuschauen, können Sie die
Funktion DBUG wie folgt verwenden:
³ @FUNCa `
„°LL @) @ RUN@ @@DBG@
@SST
@
↓
@SST
@
↓
@SST
@
↓
NUM "F" →TAG » »
die
Funktion
SWAP
Kopiert den Programmnamen in Stack-
Ebene 1
Startet die Fehlersuche (den Debugger)
Fehlersuche Schritt für Schritt, Ergebnis:
"Enter a:"
Ergebnis: {" a:" {2 0} V}
Ergebnis: Anwender wird aufgefordert, für a
über
die
Tastenfolge
Seite 21-38