26
3.2. Составные типы данных
Где Constant в диапазоне [1..255].
3.2.3. Записные типы
RecordType =
'record' FieldList 'end'.
FieldList =
(FixedPart [';']) | (VariantPart [';']) | (FixedPart ';'
VariantPart [';']).
FixedPart =
IdentList ':' Type { ';'
IdentList ':' Type }.
VariantPart =
'case' TagField 'of'
   CnstList ':' '(' [FieldList] ')' { ';'
   CnstList ':' '(' [FieldList] ')' }.
TagField =
[Ident ':'] OrdinalTypeIdent.
OrdinalTypeIdent =
Ident.
Запись (RecordType) в языке программирования Pascal - это структура данных,
состоящая из фиксированного числа наименованных компонент, называемых полями.
При том поля могут быть разного типа. Эта особенность делает запись наиболее общим
и гибким типом данных. При определении записного типа для каждого поля задаются
его имя и тип. Область действия имени поля - самая внутренняя запись, в которой оно
определяется. Имя поля может совпадать как с идентификаторами блока, где описана
запись, так и с именами полей других записей, но не может совпадать с именем поля
на том же уровне структурирования записи.
Запись используется для описания упорядоченной последовательности величин.
Поля записи могут быть разных типов. В связи с этим каждая компонента должна иметь
свое имя. Как в случае массивов, так и в случае записей осуществляется прямой доступ
к компонентам. В случаях ссылки к компоненте записи следом за именем переменной
ставится точка, а затем - имя соответствующего поля.
Иногда в запись необходимо включить информацию, зависящую от другой, уже
включенной в этой записи, информации. Синтаксис записного типа предусматривает
вариантную часть (VariantPart), рассчитанную на то, что можно задавать тип,
содержащий определение нескольких вариантов структуры. Это означает, что разные
переменные, хотя и одного типа, могут иметь различные структуры. Различие может
быть как в типах компонент, так и в их числе.
Вариантная часть записи состоит из селектора варианта (TagField) и одного или
более вариантов. Структура и значения каждого варианта задаются его списком полей.
Варианты специфицируются селектором варианта (TagField). Здесь OrdinalTypeIdent -
тип, значения которого определяют варианты, а Ident - имя поля признака, в котором
записывается значение, соответствующее определенному варианту. TagFieldType
может быть имя ординального типа (OrdinalType).
Каждый вариант состоит из списка констант типа TypeIdent и соответствующего
списка описаний компонент, заключенного в скобках. Каждая константа должна
встречаться только один раз в данной вариантной части.
Если существует поле признака, то активным будет вариант, которому
предшествует константа, равная значению поля признака.
Над объектами записного типа определены операции сравнения на равенство (=)
и неравенство (<>).
<<  <  GO  >  >>

Вернуться к началу сайта