Записи
Запись представляет собой совокупность ограниченного числа
логически связанных компонент, принадлежащих к разным типам. Компоненты
записи называются полями, каждое из которых определяется именем. Поле
записи содержит имя поля, вслед за которым через двоеточие указывается
тип этого поля. Поля записи могут относиться к любому типу,
допустимому в языке Паскаль, за исключением файлового типа.
Описание записи в языке ПАСКАЛЬ осуществляется с помощью
служебного слова 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;
Здесь М - имя записи, ОР - оператор, простой или составной.
Оператор ОР представляет собой область действия оператора присоединения,
в пределах которой можно не использовать составные имена.
Инициализация записей осуществляется с помощью типизированных
констант:
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) );