t_be_full.mod 548 B

123456789101112131415161718192021
  1. MODULE BeFull;
  2. CONST Limit = 20;
  3. TYPE
  4. Range = [1 .. 10];
  5. Point = RECORD x, y : INTEGER END;
  6. Table = ARRAY Range OF INTEGER;
  7. VAR p : Point; t : Table; k, n : INTEGER; ch : CHAR;
  8. BEGIN
  9. p.x := 3; p.y := 4;
  10. FOR k := 1 TO 10 DO t[k] := k * k END;
  11. n := t[p.x] + t[p.y];
  12. CASE n OF
  13. 1, 2 : ch := 'a'
  14. | 3 .. 30 : ch := 'b'
  15. ELSE ch := 'z'
  16. END;
  17. REPEAT n := n + 1 UNTIL n >= Limit;
  18. LOOP IF n > 100 THEN EXIT END; n := n + 1 END;
  19. WITH p DO p.x := p.y END;
  20. IF (NOT (n < 0)) AND (ch # 'q') OR (16 = 10H) THEN n := 0 END
  21. END BeFull.