Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 87
- 88
- 89
- 90
- 91
- …
- следующая ›
- последняя »
