ЗАПИСЬ.
В практике программирования приходится иметь дело с данными, которые естественным образом состоят из других данных. Например, сведения о студентах содержат имя, фамилию, отчество, число, месяц и год рождения, домашний адрес, результаты экзаменационных сессий и прочую информацию. Для представления подобной информации в языке Pascal используется тип запись.
Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.
Формат:
type <имя типа> = record
<идентификатор поля>: <тип компонента>;
.....................................
<идентификатор поля>: <тип компонента>
end;
var <имя переменной>: <имя типа>;
Например:
type car = record
Number: integer; {номер}
Marka: string[20]; {марка автомобиля}
FIO: string[40]; {Ф.И.О. владельца}
|
|
Address: string[60] {адрес владельца}
end;
var M, V: car;
В данном примере запись car содержит четыре компонента. Доступ к полям записи осуществляется через переменную типа «запись». (Это переменные M и V типа car).
Идентификатор поля должен быть уникален в пределах записи, однако во избежание ошибок лучше делать его уникальным в пределах всей программы. Объем памяти, необходимый для записи, складывается из длин полей.
Значения полей записи могут быть использованы в выражениях. Имена отдельных полей не применяются по аналогии с идентификаторами переменных, поскольку может быть несколько записей одинакового типа. Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация называется составным именем. Например, чтобы получить доступ к полям записи car, надо записать:
M.Number, M.Marka, M.FIO, M.Address
Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания. Составные имена можно, в частности, использовать в операторах ввода-вывода. Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например: V:=M;
После выполнения этого оператора значения полей записи V станут равны значениям соответствующих полей записи M. В ряде задач удобно пользоваться массивами из записей.
Данный оператор позволяет использовать в тексте программы имена полей без указания имени переменной-записи.
Формат:
with <имя записи> do
begin
{операторы, содержащие имена элементов записи}
end;
Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными, т.е. без указания перед идентификатором поля имени переменной, определяющей запись.
Например:
with M do
begin
Number:=2347;
Marka:=’Газ-24’;
FIO:=’Петров В.И.’;
Address:=’ул. Гоголя,19’
end;