' Einfacher Taschenrechner mit umgekehrter polnischer Notation DIM s!(20) DO LINE INPUT "Ausdruck (leer=Ende):"; a$ IF a$ <> "" THEN a1$ = LTRIM$(a$) sp% = 0 fe% = 0 WHILE a1$ <> "" AND NOT fe% p% = INSTR(a1$ + " ", " ") t$ = LEFT$(a1$, p% - 1) SELECT CASE t$ CASE "+" IF sp% >= 2 THEN s!(sp% - 2) = s!(sp% - 2) + s!(sp% - 1) sp% = sp% - 1 ELSE PRINT "Fehler: Zu wenig Argumente fr Addition" fe% = -1 END IF CASE "-" IF sp% >= 2 THEN s!(sp% - 2) = s!(sp% - 2) - s!(sp% - 1) sp% = sp% - 1 ELSE PRINT "Fehler: Zu wenig Argumente fr Subtraktion" fe% = -1 END IF CASE "*" IF sp% >= 2 THEN s!(sp% - 2) = s!(sp% - 2) * s!(sp% - 1) sp% = sp% - 1 ELSE PRINT "Fehler: Zu wenig Argumente fr Multiplikation" fe% = -1 END IF CASE "/" IF sp% >= 2 THEN IF s!(sp% - 1) <> 0! THEN s!(sp% - 2) = s!(sp% - 2) / s!(sp% - 1) sp% = sp% - 1 ELSE PRINT "Fehler: Division durch Null" fe% = -1 END IF ELSE PRINT "Fehler: Zu wenig Argumente fr Division" fe% = -1 END IF CASE ELSE ' Zahl s!(sp%) = VAL(t$) sp% = sp% + 1 END SELECT a1$ = LTRIM$(MID$(a1$, p%)) WEND IF sp% = 1 THEN PRINT "Ergebnis:"; s!(0) ELSEIF NOT fe% THEN PRINT "Fehler: Nicht abgeschlossener Ausdruck" END IF END IF LOOP UNTIL a$ = ""