TI-Basic: Programme und Tutorials: RPN-Rechner

Aus Wikibooks
Erstellt von: Kai Burghardt
Schwierigkeitsgrad: Anfänger
Modell: TI-82

Dieses Programm soll die Anwendung der Postfixnotation möglich machen. Da die Enter-Taste für die Rechtshänder nicht auf dem Daumen liegt, bietet sich endlich die Gelegenheit die Zahlenblockfertigkeiten auch für seine linke Hand zu trainieren.

PROGRAM:AUPNCALC
: 0 -> C
: Lbl I : Input B
: Lbl L
: Disp B
: Input A
: Lbl U
: Menu ( "", "KL STC xor C", A, "-", B, "+", C, "C", D, "/", E, "*", F, "^", G
: Lbl A
: If C=0: Then
: Disp B : Stop : End

: B -> A : C -> B : 0 -> C
: Disp B : Pause A
: Goto U
: Lbl B
: B - A -> B : Goto L
: Lbl C
: B + A -> B : Goto L
: Lbl D
: B -> C : Goto I
: Lbl E
: B/A -> B : Goto L
: Lbl F
: BA -> B : Goto L
: Lbl G
: B^A -> B : Goto L

Erläuterung[Bearbeiten]

Erstmal muss der Gedanke kommen, dass für das Beispiel Addition

: Prompt A, B
: Disp A+B

der UPN entspricht. Um nun noch verschiedene Grundrechenarten mit dem Programm anzubieten, bedarf es einer Verzweigungstelle - hier dem Menü. Praktischerweise werden die Menüelemente mit dem Zahlenblock angesprochen, wobei jeweils auf eine Marke hingelinkt wird. Hinter der steckt dann der Operand zur Ausführung beziehungsweise die Handhabung eines einzigen weiteren Stapelelementes.

"Menütitel"        // Menüs können nur bis zu sieben Paar Menüoptionen bearbeiten
1: +
2: -
3: KL STC xor C    // soll ausgeschrieben heissen "kill stack xor cancel", aber Bytes sparen!
4: *
5: /
6: C               // letztes Input zu A wird ignoriert und ein neues A & B Paar wird abgefragt
7: ^

Dazu wird einfach das letzte Ergebnis B nach C gespeichert. Für die nächste Rechnung müssen A und B neu bestimmt werden ( Goto I ).
Für das Zurückholen von C, und nebenbei auch das mögliche Verlassen des Programms, steht bei Marke C, dass zuerst das letzte Ergebnis B auf A gespeichert wird und C nun zurück auf B kommt. Andersherum hätte zurfolge, dass B=A ist. Damit das Verlassen, bedingt durch C=0 klappt, muss hierbei C 0 zugewiesen werden. A und B werden netterweise angezeigt.
Es gibt mit diesem Programm lediglich das Problem, dass wir hier ein FIFO-Stack gebaut haben, wenn mensch mehrmals die 6. Funktion, also letztes B nach hinten in'n C schieben und A & B neu definieren, aufruft. Zudem ist es allemal ärgerlich, dass der Stapel nicht stets sichtbar ist. Des Weiteren fallen die ganzen tollen Sachen, wie Matrizen, Listen und Logarithmen, aus dem Muster heraus.
195 Bytes, geschrieben während des "Unterrichts" gegen Schuljahresende