TURBO PASCAL:Учебное пособие. Терёхин В.В. - 89 стр.

UptoLike

Составители: 

89
Записи не обязательно должны содержать одни и те же
компоненты. Поэтому, если необходимо, применяется «запись
с вариантами». Запись с вариантами, кроме фиксированной
части (которая может отсутствовать) содержит вариантную
часть. Варианты могут различаться как числом компонент, так
и их типа. Например:
type
rec = record
{описания фиксированных частей}
v1, v2 : integer ;
{описание вариантной части}
case n word of
0: <список полейописаний переменных>;
1: <список полейописаний переменных>;
………………………………………………..
k: <список полейописаний переменных>;
end;
Здесь в качестве селектора оператора case используется иден-
тификатор типа.
Теперь рассмотрим конкретный пример. Часто возника-
ет необходимость в связи со значением одного поля влиять на
тип других полей. Например, в записи о студенте, в зависимо-
сти от пола (мужчина, женщина - логический тип), хранить ин-
формацию либо о цвете глаз у студентки - строковый тип, либо
о размере обуви у студентавещественный тип.
Пример:
program p42;
type
info = record
fio: string;
case pol : boolean of true: (razmer: Real) ;
false: (color: String);
end;
       Записи не обязательно должны содержать одни и те же
компоненты. Поэтому, если необходимо, применяется «запись
с вариантами». Запись с вариантами, кроме фиксированной
части (которая может отсутствовать) содержит вариантную
часть. Варианты могут различаться как числом компонент, так
и их типа. Например:

type
   rec = record
      {описания фиксированных частей}
      v1, v2 : integer ;
      {описание вариантной части}
      case n word of
         0: <список полей – описаний переменных>;
         1: <список полей – описаний переменных>;
          ………………………………………………..
         k: <список полей – описаний переменных>;
      end;

Здесь в качестве селектора оператора case используется иден-
тификатор типа.
        Теперь рассмотрим конкретный пример. Часто возника-
ет необходимость в связи со значением одного поля влиять на
тип других полей. Например, в записи о студенте, в зависимо-
сти от пола (мужчина, женщина - логический тип), хранить ин-
формацию либо о цвете глаз у студентки - строковый тип, либо
о размере обуви у студента — вещественный тип.
        Пример:
program p42;
type
   info = record
   fio: string;
   case pol : boolean of true: (razmer: Real) ;
                         false: (color: String);
   end;
                                                          89