В задачах экономики и управления часто используются данные в виде таблиц, каждая строка которых может содержать разнотипные элементы. Такие данные представляют в виде совокупностей (структур) данных. На языке Паскаль их называют записями. В составе записи (например, с данными одной строки таблицы) могут быть скалярные типы, массивы и записи такого же или другого типа. Кроме того, на языке Паскаль можно использовать массивы записей.
Запись - это структура данных, состоящая из фиксированного количества элементов, называемых полями. Поля могут быть различных типов. Записи -наиболее общий и гибкий тип данных Паскаля. Они могут быть постоянной (фиксированной) и переменной структуры (вариантные записи). Ввод-вывод и обработка записей в Паскале может производиться только поэлементно. Допускается копирование записей одного типа из одной переменной в другую с помощью оператора присваивания.
Фиксированная запись - это структура постоянного строения, состоящая из фиксированного количества элементов (компонентов, полей). Элементы записи в ней могут быть любых типов, в том числе скаляры, множества, файлы, другие записи. Описатель типа записи RECORD. Объявление записи заканчивается словом END и может быть в разделах TYPE или VAR. Форма объявления записи:
TYPE Т = RECORD список-полей END ;
где список-полей - это последовательность определений элементов записи; определение полей может быть в виде идентификатора или списка идентификаторов полей, разделенных запятыми; за идентификаторами ставится двоеточие и имя или определение типа.
Например:
TYPE TAB = RECORD { - объявление записи в разделе TYPE }
А,В : REAL; { А и В - поля одинакового типа }
END;
VAR С : TAB;
D : RECORD{ - объявление записи в разделе VAR }
Е, F : INTEGER; END;
Пример таблицы с данными различного типа:
СВЕДЕНИЯ О СТУДЕНТАХ
Номер зачетки Фамилия и инициалы
Размер стипендии
93100 Иванов И. И. 2000.55
93101 Петров П. П. 2500.40
Данные таблицы могут быть объявлены в виде:
TYPE STR = RECORD { STR - имя типа записи }
NZ : 93100. .93500;
FIO : STRING[20];
RS : REAL; END;
VAR STUD : STR; { STUD - переменная типа STR }
MST : ARRAY [1..20] OF STR; { MST - массив данных типа STR }
Обращение к полям записи производится с помощью составных имен: имен переменных типа запись и имен полей, разделенных точкой. Например:
STUD.NZ, STUD.FIO, MST[I].FIO, MST[I].RS.
Для вложенных полей (подструктур) уточнений имени может быть несколько. Например: А.В.С.
Пример копирования записи с помощью одного оператора присваивания: STUD := MST[I]; MST[I] := MST[J]; MST[J] := STUD;
Пример таблицы с элементом (полем) записи в виде массива:
СВЕДЕНИЯ О РЕЗУЛЬТАТАХ ЭКЗАМЕНОВ
Ф. И. 0.
Номер зачетки
Оценка экзамена по дисциплине
Математика
Физика
Программир.
История
Иванов И. И.
Петров П. П.
Данные таблицы могут быть объявлены в виде:
TYPE ST = RECORD { Определение типа записи }
NZ : 93100..93500;
FIO : STRING[20];
ОС : ARRAY [1..4] OF BYTE; { - поле - массив из четырех оценок }
END;
VAR EKZ : ARRAY [1..25] OF ST; { - массив записей типа ST }