Inhaltsverzeichnis

Umgekehrt polnische Notation (UPN)

Im Gegensatz zu der Schreibweise, die wir normalerweise in der Schule lernen, werden bei der umgekehrt polnischen Notation (kurz UPN) zunächst die Zahlen niedergeschrieben und erst danach der darauf anzuwendende Operator (+, -, / ,*).

Folgende Beispiele als Erklärung:

Beispiel 1

Es soll 2 und 4 addiert werden. Die Operanden sind dann 2 und 4, der Operator ist +.

In der Schule schreibt man hier:

2 + 4

In der UPN hingegen wird geschrieben:

2,4,+

Zwischen den beiden Zahlen muss zwingend ein Trennzeichen (Komma) sein, damit die Zahlenfolge 2 4 von der Zahl 24 unterschieden werden kann).

Beispiel 2

(1+2)×3

In der UPN heißt es:

1,2,+,3,*

Es wird also auch hier zuerst der Ausdruck in den Klammern ausgerechnet und danach die daraus entstandene Zahl 3 mit 3 multipliziert. Da die Reihenfolge der Abarbeitung festgelegt ist, müssen keine Klammern oder Rechenregeln wie „Punkt vor Strich“ angewand werden.

Beispiel 3

3x(1+2)

In der UPN heisst es:

3,1,2, +, *

Hier werden die gleichen Schritte wie in Beispiel 2 ausgeführt.

Regeln im StellwerkSim

Im Sim muss zwischen jedem Wert (Zahl, Operand, Befehl, etc.) ein Komma und am Ende einer Zeile ein Semikolon gesetzt werden.

Also würde vorhergehender Befehl wie folgt aussehen:

(1,2,+,3,*);

Zur weiteren Erklärung von UPN noch folgendes:

Die Werte werden beim Auslesen des Befehls in den Speicher geladen, die Operatoren dagegen direkt auf die „letzten beiden“ dem Speicher zugeführten Werte angewendet.

Beispiel 1

(2,4,+);

Als erstes wird hier die Zahl 2 und die Zahl 4 in den Speicher geladen. Die Zahl 6 wird hier als Ergebnis ausgegeben.

Beispiel 2

(2,4,+,6,*);

Bei diesem Beispiel wird auch wieder die Zahl 2 und 4 in den Speicher geladen. Im Gegensatz zum vorherigen wird aber das Ergebnis, da noch weitere Aktionen folgen, ebenfalls in den Speicher geladen. Dies trifft auch auf die Zahl 6 zu, welche hier als Multiplikator verwendet wird.

Das Ergebnis, welches dann schlussendlich ausgegeben wird, ist die Zahl 36.

Beispiel 3

(2,4,6,+,*);

Hier werden erst alle drei Zahlen in den Speicher geladen, anschliessend die letzen beiden addiert (4+6) und zum Schluss wird zu diesem Ergebnis die letzte Zahl (2) multipliziert. Das Ergebnis ist dann 20.