semerr5.pl5 778 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. VAR m : array1;
  2. VAR n : arrayx; (* arrayx ist nicht definiert*)
  3. CONST CALL = 33;
  4. PROCEDURE read;
  5. VAR i : INTEGER;
  6. VAR x : array0;
  7. BEGIN
  8. i := 1;
  9. WHILE i <= 7 DO
  10. ?x[i];
  11. i := i + 1
  12. END DO;
  13. m[2] := x
  14. END;
  15. TYPE array1 = ARRAY 3 OF array0;
  16. PROCEDURE writeReverse;
  17. VAR x : arrayO;
  18. VAR i : INTEGER;
  19. BEGIN
  20. ;;;;;;;;;;;;;;;;;;;;;
  21. ;; x := m[2]; ;; (* verschiedene Typen *)
  22. ;; i := 7; ;;
  23. ;; WHILE i >= 1 DO ;;
  24. ;; !x[i]; ;;
  25. ;; i := i - 1 ;;
  26. ;; END DO ;;
  27. ;;;;;;;;;;;;;;;;;;;;;
  28. END;
  29. TYPE array0 = ARRAY 7 OF INTEGER;
  30. TYPE arrayO = ARRAY 7 OF INTEGER;
  31. BEGIN
  32. !CALL[3]; (* indizierte Konstante *)
  33. read;
  34. IF NOT ODD m[2][1] THEN
  35. writeReverse
  36. ELSE
  37. !m[2][1]
  38. END IF
  39. END.