Записи – это структурированный тип данных, позволяющий хранить вместе определённое число элементов (полей или переменных), имеющие различные типы данных. Под структурой данных обычно понимают данные, объединённые в упорядоченное множество.
Записи удобны при обработке взаимосвязанных однородных данных.
Элементами записи могут быть и структурированные типы данных, например, массивы и вложенные записи. Для того чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Объявить запись можно в разделе var и в разделе type. Для описания переменных типа «запись» используется зарезервированное слово record.
Полный формат объявления переменной типа «запись»:
Type
<имя_типа> = record
имя_поля1: тип;
имя_поля2: тип;
…
имя_поляN: тип;
end;
Var
< имя_записи>: <имя_типа>;
Краткий формат объявления переменной типа «запись»:
Var
<имя_записи>: record
имя_поля1: тип;
имя_поля 2: тип;
…
имя_поля N: тип;
end;
Здесь, <имя_типа>, <имя_записи> и имя_поляN - правильные идентификаторы. В описании указывается идентификатор каждого поля и его тип.
Например, переменная "Клиенты" типа записи "Клиент":
{полный формат объявления переменной}
Type
CLIENT = record // Клиент
family: string[20]; // Фамилия
name: string[10]; // Имя
patronymic: string[15]; // Отчество
year_birthday: integer; // Год рождения
address: string[30]; // Адрес
telephone: integer; // Телефон
end;
Var
clients: CLIENT;
или {краткий формат объявления переменной}
Var
CLIENT: record // Клиент
family: string[20]; // Фамилия
name: string[10]; // Имя
patronymic: string[15]; // Отчество
year_birthday: integer; // Год рождения
address: string[30]; // Адрес
telephone: integer; // Телефон
end;
Запись, описанная через var, называется «анонимной».
В Паскале различают:
· записи с фиксированными частями и
· записи с вариантами (с переменными частями).
Записи с фиксированными частями
Записи с фиксированными частями называются так, потому, что в различных ситуациях имеют одинаковую структуру.
Например, запись "Личная карточка студента" может быть описана с помощью записи с фиксированными частями:
Type
student = record
family: string[20];
name: string[10];
patronymic: string[15];
year_birthday: integer;
number_of_group: integer; // Номер группы
Predmet1: byte; // МатАнализ
Predmet2: byte; // ИнжГрафика
Predmet3: byte; // Химия
Predmet4: byte; // Информатика
end;
Если поля несут одинаковую смысловую нагрузку, то их целесообразно объединить в отдельную структуру типа record.