showcase6.mod 767 B

12345678910111213141516171819202122232425262728
  1. MODULE Showcase6;
  2. // Step 3.1 tour: 1-D + nested arrays, whole copies (incl. nested),
  3. // strings, bounds-checked indexing. Expected ExitCode: 34.
  4. TYPE Vec = ARRAY [0..5] OF INTEGER;
  5. TYPE Mat = ARRAY [0..1, 0..2] OF INTEGER;
  6. VAR ExitCode, i, sum : INTEGER;
  7. VAR v, v2 : Vec;
  8. VAR m, m2 : Mat;
  9. VAR s : ARRAY [0..3] OF CHAR;
  10. BEGIN
  11. (* 0+1+..+5 = 15 *)
  12. sum := 0;
  13. FOR i := 0 TO 5 DO v[i] := i; sum := sum + v[i] END;
  14. m[0, 0] := 1; m[0, 1] := 2; m[0, 2] := 3;
  15. m[1, 0] := 4; m[1, 1] := 5; m[1, 2] := 6;
  16. (* 15 + 3 + 4 = 22 *)
  17. sum := sum + m[0, 2] + m[1, 0];
  18. s := "abcd";
  19. (* +2 = 24 *)
  20. IF s[3] = 'd' THEN sum := sum + 2 END;
  21. v2 := v;
  22. (* +5 = 29 *)
  23. sum := sum + v2[5];
  24. m2 := m;
  25. (* +5 = 34 *)
  26. sum := sum + m2[1, 1];
  27. ExitCode := sum
  28. END Showcase6.