Лабораторный практикум по программированию на языке Паскаль. Найханова Л.В - 73 стр.

UptoLike

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