Как мы уже знаем, массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, указывая положение точки в пространстве, мы можем воспользоваться одним и тем же типом для указания ее координат, но, описывая человека, мы должны указать его имя, рост, цвет глаз и волос, то есть в одном описании объединим разнородную информацию. Точно так же, описывая автомобиль, мы укажем не только его марку, но и год выпуска, модификацию, да и цвет кузова может нас заинтересовать. Составляя автоматизированный каталог книгохранилища, мы для каждой книги должны указать ее название, имя автора, область знания, количество страниц, год издания, а также, возможно, признак нахождения на руках или в хранилище.

Данные такого рода, описывающие существенные признаки того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называют записью англ.-(record). В языке Паскаль запись определяется путем указания служебного слова record и перечисления входящих в запись элементов с указанием их типов.

Запись Паскаля – структурированный комбинированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа.

В Паскале эта информация может храниться в одной переменной типа record (запись). Задать тип можно следующим образом:

type < имя _ типа >=record
   <имя_поля1>: тип;
   <имя_поля2>: тип;
   ………………….
   <имя_поля K >: тип
end;
где record – служебное слово, а <имя_типа> и <имя_поля> - идентификаторы языка Паскаль.

Описание анкеты студента в Паскале будет выглядеть так:

Type anketa=record
   fio: string[45];
   pol: char;
   dat_r: string[8];
   adres: string[50];
   curs: 1..5;
   grupp: string[3];
end;

Поля записи Паскаля могут иметь любой тип, в частности сами могут быть записями.

Такая организация данных позволит, например, делать выборки по году рождения или по городу, где живут студенты. В этом случае описание соответствующей записи в Паскале будет выглядеть так:

Type anketa1=record
   fio: string[45];
   pol: char;
   dat_r: record;
   god: integer;
   mes: string[10];
   den: 1..31;
end;
adres: record
   gorod: string[25];
   ulica: string [20];
   dom, kv: integer;
end;
curs: 1..5;
   grupp: string[3];
end;

Отредактировано Ильюха ツ Яковлев (2011-06-26 14:22:02)