29. Записи

 Запись представляет собой совокупность ограниченного  числа логи-

чески связанных компонент,  принадлежащих к разным типам. Компоненты

записи называются полями, каждое из которых определяется именем. Поле

записи содержит имя поля, вслед за которым через двоеточие указывает-

ся тип этого поля. Поля записи могут относиться к любому типу, допус-

тимому в языке Паскаль, за исключением файлового типа.

 Описание записи в языке ПАСКАЛЬ осуществляется  с помощью

служебного слова RECORD,  вслед за которым описываются компоненты за-

писи. Завершается описание записи служебным словом END.

 Например, записная книжка содержит фамилии,  инициалы и номера те-

лефона, поэтому отдельную строку в записной книжке удобно представить

в виде следующей записи:

 

 type Row=Record

 FIO: String[20];

 TEL: String[7]

  end;

 var str: Row;

 

 Описание записей возможно и без использования имени типа, напри-

мер:

 var str: Record

 FIO: String[20];

 TEL: String[7]

 end;

 

 Обращение к записи в целом допускается только в операторах присва-

ивания, где слева и справа от знака присваивания используются имена

записей одинакового типа. Во всех остальных случаях оперируют отдель-

ными полями записей. Чтобы обратиться к отдельной компоненте записи,

необходимо задать имя записи и через точку указать имя нужного поля,

например:

 

 str.FIO, str.TEL

 

 Такое имя называется составным. Компонентой записи может быть так-

же запись, в таком случае составное имя будет содержать не два,  а

большее количество имен.

 Обращение к компонентам записей можно упростить, если воспользо-

ваться оператором присоединения with.

 Он позволяет заменить составные имена, характеризующие каждое по-

ле, просто на имена полей, а имя записи определить в операторе присо-

единения:

 

 with M do OP;

 

 Здесь М -  имя записи, ОР - оператор,  простой или составной.

Оператор ОР представляет собой область действия оператора присоедине-

ния, в пределах которой можно не использовать составные имена.

 Иногда содержимое отдельной записи зависит от значения одного из

ее полей.  В языке ПАСКАЛЬ допускается описание записи,  состоящей из

общей и вариантной частей.  Вариантная часть задается с помощью конс-

трукции

 case P of,

 

где Р - имя поля из общей части записи. Возможные значения, прини-

маемые этим полем,  перечисляются так же, как и в операторе варианта.

Однако вместо указания выполняемого действия, как это делается в опе-

раторе варианта,  указываются поля варианта, заключенные в круглые

скобки. Описание вариантной части завершается служебным словом end.

 Тип поля Р можно указать в заголовке вариантной части, например:

 

 case P: Integer of

 

 Инициализация записей осуществляется с помощью типизированных

констант:

 

 type

 RecType= Record

 x,y: Word;

 ch: Char;

 dim: Array[1..3] of Byte

 end;

 

 const

 Rec: RecType= ( x: 127; y: 255;

 ch: 'A';

 dim: (2, 4, 8) );

Электротехника курсовые, лабораторные, практика Математика, физика