Records provide a way to associate related data into a single data structure. A record consists of one or more fields that each have a name and a type. The type of a field may be any base or derived type. The names must be unique within each record type, but each record type defines a new lexical scope. A record can be declared as illustrated below:
type person = record
age : integer;
weight : integer;
end;
Individual fields of a record are accessed using the dot operator (.):
var daphne : person;
daphne.age := 10;
Records can be assigned or passed as parameters to procedures as whole
entities. When records are passed as value parameters the entire
record is copied, including any array fields. Passing large records
by value will incur an expensive copy. Therefore records should be
passed by var when possibly to avoid the cost of copying.