Записи (структуры)
Часто при передаче большого объёма разнородной (разнотипной) информации бывает удобно создавать группы значений. Такие группы называются структурами или записями (Record). Запись включает в себя одно или несколько полей, каждое из которых может иметь свой тип. В отличие от массивов, поля записи различаются не индексами, а идентификаторами.
Общий синтаксис объявления переменной типа запись:
Record
<ид_поля1>:<тип_поля1>;
<ид_поля2>:<тип_поля2>;
…
<ид_поляn>:<тип_поляn>;
End;
Если несколько полей имеют один и тот же тип, их идентификаторы могут быть перечислены через запятую.
Пример объявления записи – трёхмерного вектора:
TVector = Record
x,y,z: Real;
Defined: Boolean;
End;
Допустим, объявлены переменные V1 и V2
этого типа. Обращение к полям этих структур имеет следующий синтаксис:
V1.X:=-30.5;
V2.Def:=True;
V1.Z:=V2.X+V2.Y;
Поля записей могут иметь пользовательский или сложный тип. В частности, полем записи может быть ранее объявленная запись. Допустим, требуется объявить запись типа «линия»:
TLine = Record
B,E: TVector;
Style: TLineStyle;
End;
В программе дополнительно к V1
и V2
добавляем переменную L типа TLine. В программе допустимы следующие обращения к полям:
L.B:=V1;
L.E.X:=-20;
При многоуровневой адресации полей выражение следует читать с конца. Так, в последнем примере, второе выражение следует читать «координата X конца прямой».