Как мы уже знаем, массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, указывая положение точки в пространстве, мы можем воспользоваться одним и тем же типом для указания ее координат, но, описывая человека, мы должны указать его имя, рост, цвет глаз и волос, то есть в одном описании объединим разнородную информацию. Точно так же, описывая автомобиль, мы укажем не только его марку, но и год выпуска, модификацию, да и цвет кузова может нас заинтересовать. Составляя автоматизированный каталог книгохранилища, мы для каждой книги должны указать ее название, имя автора, область знания, количество страниц, год издания, а также, возможно, признак нахождения на руках или в хранилище.
Данные такого рода, описывающие существенные признаки того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называют записью англ.-(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)

 
