|
|
@@ -0,0 +1,28 @@
|
|
|
+MODULE Showcase6;
|
|
|
+// Step 3.1 tour: 1-D + nested arrays, whole copies (incl. nested),
|
|
|
+// strings, bounds-checked indexing. Expected ExitCode: 34.
|
|
|
+TYPE Vec = ARRAY [0..5] OF INTEGER;
|
|
|
+TYPE Mat = ARRAY [0..1, 0..2] OF INTEGER;
|
|
|
+VAR ExitCode, i, sum : INTEGER;
|
|
|
+VAR v, v2 : Vec;
|
|
|
+VAR m, m2 : Mat;
|
|
|
+VAR s : ARRAY [0..3] OF CHAR;
|
|
|
+BEGIN
|
|
|
+ (* 0+1+..+5 = 15 *)
|
|
|
+ sum := 0;
|
|
|
+ FOR i := 0 TO 5 DO v[i] := i; sum := sum + v[i] END;
|
|
|
+ m[0, 0] := 1; m[0, 1] := 2; m[0, 2] := 3;
|
|
|
+ m[1, 0] := 4; m[1, 1] := 5; m[1, 2] := 6;
|
|
|
+ (* 15 + 3 + 4 = 22 *)
|
|
|
+ sum := sum + m[0, 2] + m[1, 0];
|
|
|
+ s := "abcd";
|
|
|
+ (* +2 = 24 *)
|
|
|
+ IF s[3] = 'd' THEN sum := sum + 2 END;
|
|
|
+ v2 := v;
|
|
|
+ (* +5 = 29 *)
|
|
|
+ sum := sum + v2[5];
|
|
|
+ m2 := m;
|
|
|
+ (* +5 = 34 *)
|
|
|
+ sum := sum + m2[1, 1];
|
|
|
+ ExitCode := sum
|
|
|
+END Showcase6.
|