Изучение принципов алгоритмического программирования на языке Pascal

         

Записи (структуры)


Часто при передаче большого объёма разнородной (разнотипной) информации бывает удобно создавать группы значений. Такие группы называются структурами или записями (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 конца прямой».




Содержание раздела