(* reference.5.pasc *) (* complex data structure, perform the * 1. 1- and multi-level record * 2. 1- and nulti-dimension array * 3. array of record <== * 4. record of array <== * *) program Reference is constant three = 3; nl = '\n'; type rec1 = record i: integer; ch: char endrec; arr1 = array(1..10) of integer; var mix: array(-2..1) of record i: integer; ch: array(2..5) of rec1 endrec; i, j : integer; b1rec: rec1; b2rec: record field1: integer; field2: rec1 endrec; b1arr: arr1; b2arr: array(1..2) of arr1; begin b1rec.i := 100; b2rec.field2.i := 100; b1rec.ch := '$'; b2rec.field2.ch := '$'; write(b2rec.field2.ch, b1rec.i + b2rec.field2.i, nl); b1arr(2) := 200; b2arr(2)(3) := 200; b1arr(3) := 800; b2arr(1)(3) := 800; write(b1arr(three) + b2arr(1)(three) - b2arr(2)(three), nl); i := -2; j := 1; mix(i).ch(three).i := 38; mix(j).ch(three).ch := '!'; write(mix(-2).ch(3).i, mix(1).ch(3).ch, nl); end. (* * INPUT: * none * OUTPUT: * $ 200 * 1400 * 38 ! *)