ВУЗ:
Составители:
Рубрика:
73
sep,oct,nov,dec);
Day : 1..31;
Year : 1900..2000
End;
Person = Record
Fio : string[20];
Special : word;
Birthday : date;
PersonPol: (M,W);
Case pol : PersonPol of
M: (Army : boolean;
D_Army : date);
W: (EyesColor : (blue,brown,
gray,green))
End;
Записи с вариантами имеют фиксированную и вариантную части. Изменяющаяся часть
записи называется вариантом. Вариант всегда располагается в конце записи. Поле ( в
данном случае POL), позволяющее различать варианты, называется полем признака.
Вариантная часть содержит несколько альтернатив (в данном примере - M и W), в каждой
из которых в круглых скобках задается список полей, присущих данному варианту ( ARMY
и D_ARMY -> M, EYESCOLOR -> W ). Списку полей предшествует метка, являющаяся
конкретным значением признака POL. Метка служит критерием выбора вариантов.
Перечисление альтернатив начинается с определения признака POL.
Началом вариантной части является служебное слово CASE; после признака выбора
вариантов записывается служебное слово OF. Вариантная часть завершается служебным
словом END вместе с завершением всей записи. В определении комбинированного типа
может быть только одна вариантная часть и она должна быть задана в конце записи.
Альтернативы вариантной части помечаются допустимыми значениями поля POL, которое
определено в фиксированной части. Иногда поле, значения которого задают варианты,
называют дискриминантом записи.
Идентификаторы полей во всех вариантах должны быть различными и отличаться от
идентификаторов полей фиксированной части. В этом случае после метки,
соответствующей этим значениям может стоять пустой список вида ( ).
Любой вариант, в свою очередь, может иметь свою вариантную часть, которая должна
располагаться в конце списка полей данного варианта.
При использовании вариантных записей необходимо учитывать следующие особенности:
1. Для размещения переменной комбинированного типа всегда отводится фиксированный
объем памяти, причем если в записи есть варианты, то объем определяется по самому
большому варианту. Различные варианты одной записи как бы накладываются " друг на
друга" в памяти, занимая одну и ту же область.
2. Система Турбо-Паскаль не содержит никаких средств контроля за правильностью работы
с вариантами записей. За соответствием текущего значения дискриминанты и доступа к
полям записи должен следить программист.
10.4. Оператор присоединения
Оператор присоединения предназначен для более наглядной и эффективной организации
работы с данными комбинированного типа и используется для доступа к полям записи.
Оператор присоединения начинается со служебного слова WITH, далее следует имя
записи и служебное слово DO. Операторы, содержащие имена полей записи, заключаются в
операторные скобки:
WITH < имя записи > DO
BEGIN
< операторы, содержащие имена полей записи >
фиксированная
часть
вариантная
часть
sep,oct,nov,dec);
Day : 1..31;
Year : 1900..2000
End;
Person = Record
Fio : string[20]; фиксированная
Special : word; часть
Birthday : date;
PersonPol: (M,W);
Case pol : PersonPol of
M: (Army : boolean;
D_Army : date); вариантная
W: (EyesColor : (blue,brown, часть
gray,green))
End;
Записи с вариантами имеют фиксированную и вариантную части. Изменяющаяся часть
записи называется вариантом. Вариант всегда располагается в конце записи. Поле ( в
данном случае POL), позволяющее различать варианты, называется полем признака.
Вариантная часть содержит несколько альтернатив (в данном примере - M и W), в каждой
из которых в круглых скобках задается список полей, присущих данному варианту ( ARMY
и D_ARMY -> M, EYESCOLOR -> W ). Списку полей предшествует метка, являющаяся
конкретным значением признака POL. Метка служит критерием выбора вариантов.
Перечисление альтернатив начинается с определения признака POL.
Началом вариантной части является служебное слово CASE; после признака выбора
вариантов записывается служебное слово OF. Вариантная часть завершается служебным
словом END вместе с завершением всей записи. В определении комбинированного типа
может быть только одна вариантная часть и она должна быть задана в конце записи.
Альтернативы вариантной части помечаются допустимыми значениями поля POL, которое
определено в фиксированной части. Иногда поле, значения которого задают варианты,
называют дискриминантом записи.
Идентификаторы полей во всех вариантах должны быть различными и отличаться от
идентификаторов полей фиксированной части. В этом случае после метки,
соответствующей этим значениям может стоять пустой список вида ( ).
Любой вариант, в свою очередь, может иметь свою вариантную часть, которая должна
располагаться в конце списка полей данного варианта.
При использовании вариантных записей необходимо учитывать следующие особенности:
1. Для размещения переменной комбинированного типа всегда отводится фиксированный
объем памяти, причем если в записи есть варианты, то объем определяется по самому
большому варианту. Различные варианты одной записи как бы накладываются " друг на
друга" в памяти, занимая одну и ту же область.
2. Система Турбо-Паскаль не содержит никаких средств контроля за правильностью работы
с вариантами записей. За соответствием текущего значения дискриминанты и доступа к
полям записи должен следить программист.
10.4. Оператор присоединения
Оператор присоединения предназначен для более наглядной и эффективной организации
работы с данными комбинированного типа и используется для доступа к полям записи.
Оператор присоединения начинается со служебного слова WITH, далее следует имя
записи и служебное слово DO. Операторы, содержащие имена полей записи, заключаются в
операторные скобки:
WITH < имя записи > DO
BEGIN
< операторы, содержащие имена полей записи >
73
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »
