showcase4.mod 713 B

123456789101112131415161718192021222324252627
  1. MODULE Showcase4;
  2. // Scalar-complete tour (steps 1.9-2): WHILE sum, int->real,
  3. // real arith/comparisons, FOR, CASE with range, BOOLEAN gate.
  4. // Expected ExitCode: 44 (hand-computed).
  5. CONST Pi = 3.14;
  6. CONST Half = 0.5;
  7. VAR ExitCode, i, n : INTEGER;
  8. VAR r, s : REAL;
  9. VAR b : BOOLEAN;
  10. BEGIN
  11. (* 1+..+7 = 28 *)
  12. n := 0; i := 1;
  13. WHILE i <= 7 DO n := n + i; i := i + 1 END;
  14. r := n;
  15. (* 28/4 + 0.5 = 7.5 *)
  16. s := r / 4.0 + Half;
  17. b := (s > 7.0) AND (Pi > 3.0);
  18. (* 28 + 1 + 2 + 3 = 34 *)
  19. FOR i := 1 TO 3 DO n := n + i END;
  20. (* 34 MOD 4 = 2 -> +10 = 44 *)
  21. CASE n MOD 4 OF
  22. 0 : n := n + 100
  23. | 1..2 : n := n + 10
  24. ELSE n := n + 1
  25. END;
  26. IF b THEN ExitCode := n ELSE ExitCode := 0 END
  27. END Showcase4.