| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- (*
- * Das Programm enthaelt fehlerhafte Typdefinitionen
- * mit vielen Folgefehlern.
- * Gut ist es, wenn nur fuer die gekennzeichneten Zeilen
- * Fehlermeldungen ausgegeben werden.
- *)
- VAR m : array1;
- TYPE t0 = ARRAY 3 OF ARRAY 2 OF t2; (* Fehler im Elementtyp *)
- PROCEDURE read(VAR k: array0);
- VAR i : INTEGER;
- VAR x : array0;
- BEGIN
- i := 1;
- WHILE i <= 7 DO
- input(x[i]);
- i := i + 1
- END DO;
- k := x;
- writeReverse(m);
- END;
- TYPE array1 = ARRAY 3 OF array0; (* zykl. Typdefinition *)
- TYPE t2 = ARRAY 2 OF input; (* unzul. Elementtyp *)
- PROCEDURE writeReverse(m: array1);
- VAR x : array0;
- VAR i : INTEGER;
- BEGIN
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; x := m[2]; ;;
- IF m[1][1] > 0 THEN ;;
- ;; i := 7; ;;
- ;; WHILE i >= 1 DO ;;
- ;; !x[i]; ;;
- ;; m[2][i] := 0 ;;
- ;; i := i - 1 ;;
- ;; END DO ;;
- ;; m[1][1] := m[1][1] - 1 ;;
- ;; writeReverse(m) ;;
- END IF;;;;;;;;;;;;;;;;;;;;;;;;;
- END;
- TYPE array0 = ARRAY 7 OF array; (* zykl. Typdefinition *)
- PROCEDURE input(VAR i: INTEGER);
- BEGIN
- ?i
- END;
- TYPE array = ARRAY 7 OF array0; (* zykl. Typdefinition *)
- BEGIN
- m[1][1] := 2;
- read(m[2]);
- m[1][1] := 1;
- writeReverse(m)
- END.
|