RECORDS CONTAINING ARRAYS
Records can also contain arrays as a field. Consider the
following example, which shows a record called month,
whose element name is actually an array.
type monthname = packed array[1..4] of char; month = RECORD days : integer; name : monthname END; var this_month : month; this_month.days := 31; this_month.name[0] := 'J'; this_month.name[1] := 'a'; this_month.name[2] := 'n'; this_month.name := 'Feb ';
program RECORD_TEST (output); type time = RECORD hours, minutes, seconds : integer END; procedure timeupdate ( var newtime : time ); begin newtime.seconds := newtime.seconds + 1; if newtime.seconds = 60 then begin newtime.seconds := 0; newtime.minutes := newtime.minutes + 1; if newtime.minutes = 60 then begin newtime.minutes := 0; newtime.hours := newtime.hours + 1; if newtime.hours = 24 then newtime.hours := 0 end end end; var test_times : array [1..3] of time; loop : integer; begin test_times[1].hours := 11; test_times[1].minutes := 59; test_times[1].seconds := 59; test_times[2].hours := 12; test_times[2].minutes := 0; test_times[2].seconds := 0; test_times[3].hours := 1; test_times[3].minutes := 29; test_times[3].seconds := 59; for loop := 1 to 3 do begin writeln('Time is ',test_times[loop].hours,':', test_times[loop].minutes,':',test_times[loop].seconds); timeupdate(test_times[loop]); write('One second later its '); writeln(test_times[loop].hour,s':',test_times[loop].minutes, ':',test_times[loop].seconds) end end.