Listing: 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. 0 errors