MODULE Showcase3; // Stage 1.9 tour: WHILE factorial, FOR with negative BY, CASE with // range + ELSE, REPEAT, LOOP/EXIT with nested IF, BOOLEAN + CHAR. // Expected ExitCode: 183 (hand-computed). VAR ExitCode, i, f : INTEGER; VAR b : BOOLEAN; VAR c : CHAR; BEGIN (* 5! = 120 *) f := 1; i := 2; WHILE i <= 5 DO f := f * i; i := i + 1 END; (* 120 + 10 + 8 + 6 + 4 + 2 = 150 *) FOR i := 10 TO 2 BY -2 DO f := f + i END; (* 150 MOD 3 = 0 -> 157 *) CASE f MOD 3 OF 0 : f := f + 7 | 1..2 : f := f + 70 ELSE f := f + 700 END; (* 157 + 1 + 2 + 3 = 163 *) i := 0; REPEAT i := i + 1; f := f + i UNTIL i >= 3; (* 163 + 10 + 10 = 183 *) i := 0; LOOP i := i + 1; IF i > 2 THEN EXIT END; f := f + 10 END; c := 'x'; b := (f = 183) AND (c = 'x'); IF b THEN ExitCode := f ELSE ExitCode := 0 END END Showcase3.