t_multidim.mod 817 B

123456789101112131415161718192021222324252627
  1. MODULE TMultiDim;
  2. // PIM/ISO multi-index array syntax: ARRAY [lo..hi], [lo..hi] OF T.
  3. // Both the repeated bracket groups and V3's earlier one-bracket comma
  4. // list must nest inside-out; indexing and whole-array copying follow
  5. // the same layout. Exit 42.
  6. TYPE Grid = ARRAY [0..1], [0..2] OF INTEGER;
  7. TYPE Grid2 = ARRAY [0..1, 0..2] OF INTEGER;
  8. TYPE B2 = ARRAY [FALSE..TRUE], [FALSE..TRUE] OF BOOLEAN;
  9. VAR ExitCode : INTEGER;
  10. VAR g : Grid;
  11. VAR h : Grid2;
  12. VAR b : B2;
  13. VAR i, j, sum : INTEGER;
  14. BEGIN
  15. sum := 0;
  16. FOR i := 0 TO 1 DO
  17. FOR j := 0 TO 2 DO
  18. g[i, j] := i * 3 + j + 1;
  19. h[i, j] := g[i, j];
  20. sum := sum + h[i, j]
  21. END
  22. END;
  23. b[TRUE, FALSE] := TRUE;
  24. b[FALSE, TRUE] := FALSE;
  25. IF b[TRUE, FALSE] AND NOT b[FALSE, TRUE] THEN sum := sum + 1 END;
  26. ExitCode := sum + 20
  27. END TMultiDim.