A large commit.
[pdp8.git] / sw / src / pascal / ARITHM.PS
CommitLineData
81e70d48
PH
1PROGRAM ARITHMETIK(INPUT, OUTPUT);
2 VAR W: REAL;
3
4FUNCTION ZIFFER(Z: CHAR): BOOLEAN;
5 BEGIN ZIFFER := ("0"<=Z) AND (Z<="9") END;
6
7FUNCTION AUSDRUCK: REAL;
8VAR Z: CHAR;
9 FUNCTION FAKTOR: REAL;
10 VAR W: INTEGER;
11 BEGIN
12 READ(Z); WRITE(Z);
13 IF ZIFFER(Z)
14 THEN BEGIN W := 0;
15 REPEAT W := 10*W + ORD(Z) - ORD("0");
16 READ(Z); WRITE(Z)
17 UNTIL NOT (ZIFFER(Z));
18 FAKTOR := W
19 END
20 ELSE IF Z = "("
21 THEN BEGIN FAKTOR := AUSDRUCK;
22 READ(Z); WRITE(Z)
23 END
24 END;
25
26 FUNCTION TERM: REAL;
27 VAR W: REAL;
28 BEGIN W := FAKTOR;
29 WHILE (Z="*") OR (Z="/") DO
30 IF Z = "*" THEN W := W*FAKTOR
31 ELSE W := W/FAKTOR;
32 TERM := W
33 END;
34
35 BEGIN
36 W := TERM;
37 WHILE (Z="+") OR (Z="-") DO
38 IF Z = "+" THEN W := W + TERM
39 ELSE W := W - TERM;
40 AUSDRUCK := W
41 END;
42
43BEGIN
44REPEAT WRITE(" ");WRITELN(AUSDRUCK:7:3);
45 READLN
46UNTIL EOF
47END.