--- /dev/null
+PROGRAM ARITHMETIK(INPUT, OUTPUT);
+ VAR W: REAL;
+
+FUNCTION ZIFFER(Z: CHAR): BOOLEAN;
+ BEGIN ZIFFER := ("0"<=Z) AND (Z<="9") END;
+
+FUNCTION AUSDRUCK: REAL;
+VAR Z: CHAR;
+ FUNCTION FAKTOR: REAL;
+ VAR W: INTEGER;
+ BEGIN
+ READ(Z); WRITE(Z);
+ IF ZIFFER(Z)
+ THEN BEGIN W := 0;
+ REPEAT W := 10*W + ORD(Z) - ORD("0");
+ READ(Z); WRITE(Z)
+ UNTIL NOT (ZIFFER(Z));
+ FAKTOR := W
+ END
+ ELSE IF Z = "("
+ THEN BEGIN FAKTOR := AUSDRUCK;
+ READ(Z); WRITE(Z)
+ END
+ END;
+
+ FUNCTION TERM: REAL;
+ VAR W: REAL;
+ BEGIN W := FAKTOR;
+ WHILE (Z="*") OR (Z="/") DO
+ IF Z = "*" THEN W := W*FAKTOR
+ ELSE W := W/FAKTOR;
+ TERM := W
+ END;
+
+ BEGIN
+ W := TERM;
+ WHILE (Z="+") OR (Z="-") DO
+ IF Z = "+" THEN W := W + TERM
+ ELSE W := W - TERM;
+ AUSDRUCK := W
+ END;
+
+BEGIN
+REPEAT WRITE(" ");WRITELN(AUSDRUCK:7:3);
+ READLN
+UNTIL EOF
+END.