Продолжая изучение структурированных типов данных, переходим к записям.
Как и массивы, записи являются структурами прямого доступа, однако, в отличие от массивов, могут хранить элементы, относящиеся к разным типам данных.
Таким образом, запись - это вектор, компоненты которого (поля) могут относиться к разным типам данных.
Описание записей
В разделе var переменную типа запись описывают так:
var <имя_записи>: record <имя_поля1>: <тип_поля1>; [<имя_поля2>: <тип_поля2>;] [...] end; |
Имена полей должны подчиняться общим правилам построения идентификаторов. Повторение имен полей внутри одной записи не допускается.
Замечание: Имена полей могут совпадать с именами других переменных, поскольку на самом деле являются составными:
<имя_записи>.<имя_поля> |
Поэтому можно записать:
var x: real; r: record x: real; y: real end; |
Поля могут относиться к любым стандартным (базовым или сконструированным) или определенным ранее типам, даже к файловому или процедурному.
Если несколько подряд идущих полей принадлежат к одному типу данных, их описания можно объединить:
|
|
var <имя_записи>: record<имя_поля1>,_,<имя_поляN>:<тип_полей>; <имя_поляS>: <тип_поляS>;... end; |
Например:
var zap1: record x,y: real; i,j,k: integer; flag: boolean; s: set of ' a '..' z '; a: array[1..100] of byte; data: record day:1..31; month: 1..12; year: 1900..2100; end; end; |
Эта запись содержит 9 полей, три из которых сами являются составными. Наиболее распространенный способ использования записей - двумерная таблица, каждый столбец которой имеет свой тип. Такую структуру описывают, например, следующим образом:
var tabl: array[1..100] of zap1; |