Record — записи в Pascal
Запись — это структура данных, состоящая из фиксированного числа компонент, называемых полями. Каждое поле может иметь свой тип данных. Общий вид описания типа record в языке программирования Pascal:
type t = record id11, id12, ...: type1; id21, id22, ...: type2; ... end;
здесь начинаются с id идентификаторы полей; с type — типы полей; t — имя типа.
Пример. Данные комплексного типа можно описать переменной типа record.
type complex = record re, im: real end; var c: complex;
Здесь complex — имя типа, а c — имя переменной. Переменная c состоит из двух полей: re и im, имеющих один и тот же тип (real). Эти поля переменной c обозначаются как c.re и c.im.
Пример. Даты событий можно описать следующим образом:
type date = record month: 1..12; day: 1..31; year: integer end; var d: date;
В этом примере описан тип date и переменная d, принадлежащая этому типу.
Переменная d описана как запись, состоящая из трех полей: month, day и year. Каждое поле содержит соответственно данные: целое число в пределах от 1 до 12 (номер месяца), целое число от 1 до 31 (день), целое число (год).
Поле day переменной d записывается как d.day.
Например, чтобы заслать в d дату 12.01.2003, надо выполнить следующие операторы:
d.month := 1; d.day := 12; d.year := 2003;
Пример. Вычислить сумму s двух комплексных чисел x = 2 + 7i и y = 6 + 3i (то есть x, y, s: complex;).
x.re := 2.0; x.im := 7.0; y.re := 6.0; y.im := 3.0; s.re := x.re + y.re; s.im := x.im + y.im;
Запись может быть элементом других структур. Например, введем тип family (семья: отец, мать, 1-й ребенок, 2-й ребенок):
type family = (father, mother, child1, child2); var birthday: array[family] of date;
где date — описанная выше запись.
Переменная birthday есть массив, состоящий из записей — дат рождения членов семьи. Каждая дата рождения имеет тип date, который может быть описан в программе.
Для занесения даты рождения, например, mother, достаточно выполнить операторы:
birthday[mother].month := 5; birthday[mother].day := 1; birthday[mother].year := 1995;
Оператор With
Оператор with используется для удобства работы с переменными типа record (запись).
Общий вид:
with a do st;
здесь a — имя переменной типа record, st — операции.
В операциях st при ссылках на компоненты записи имя a можно опускать.
Пример. Присвоение полям записи при использовании оператора with:
with birthday[mother] do begin month := 5; day := 1; year := 1965 end;