| 12345678910111213141516171819202122232425262728293031 |
- MODULE TLower5Arr;
- (* Lower slice L5: open-array (VAR and value) and VAR record parameters.
- Exit 42. *)
- TYPE
- Vec = ARRAY [0..3] OF INTEGER;
- Rec = RECORD a, b : INTEGER; END;
- VAR
- v : Vec;
- r : Rec;
- i, ExitCode : INTEGER;
- PROCEDURE Sum (VAR a : ARRAY OF INTEGER; n : INTEGER) : INTEGER;
- VAR k, s : INTEGER;
- BEGIN
- k := 0; s := 0;
- WHILE k < n DO s := s + a[k]; INC(k) END;
- RETURN s
- END Sum;
- PROCEDURE First (a : ARRAY OF INTEGER) : INTEGER;
- BEGIN RETURN a[0] END First;
- PROCEDURE SetB (VAR x : Rec);
- BEGIN x.b := 5 END SetB;
- BEGIN
- v[0] := 10; v[1] := 11; v[2] := 12; v[3] := 13;
- SetB(r);
- i := Sum(v, 4) + First(v) + r.b;
- ExitCode := i - 19
- END TLower5Arr.
|