НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

19.2. Запись с вариантами

Общий вид:


Здесь Z -переменная типа V; N - переменная, называемая переключателем TYPEN - тип переменной N.

Этому же типу должны принадлежать метки С1,С2,...СК. Каждой метке соответствует набор полей T11, Т12,... Эти поля являются компонентами варианта.

Переменную N называют также шагом (тэгом), ярлыком, признаком, дискриминантом.

Если какой-либо метке CL вообще не соответствуют поля, то пишут CL:( );

Замечания.

1. Любая запись (RECORD) может иметь только одну вариантную часть (CASE).

2. Вариантная часть должна помещаться после постоянной части.

3. Среди идентификаторов полей не должно быть одинаковых. Обращение к компоненте Z.Tij записи Z происходит так:

1) Присваивается соответствующее значение (Ci) переключателю N. В зависимости от значения N переменная Z, помимо полей А,В,..., содержит те поля, которые соответствуют той метке Ci, с какой совпадает значение N.

2) Выполняется операция с компонентой Z.Tij.

Пример записи с вариантами. Пусть необходимо собрать следующие сведения о сотрудниках института: фамилию, дату рождения и, если есть семья, то фамилию и дату рождения супруги (супруга).

Эта информация может быть описана, например, записью PERSON.

Пусть переменная типа KIND может иметь одно из значений ("женат", "холост").


Здесь NAME - строка символов (например, 'ROGOV^'); DATE- BIRTH - запись, описанная выше, содержит дату рождения (например, 15.02.62); YESNO - переключатель типа KIND, который может принимать одно из двух значений: MARRIED либо SINGLE; NAME1 - строка символов, содержащая фамилию супруги (супруга) (например, 'ROGOVA'); DATE1 - запись, содержащая дату рождения супруги (супруга). SINGLE - пустое поле.

Если ROGOV женат, то присутствует поле MARRIED, если холост - поле SINGLE, а поле MARRIED отсутствует. Паскаль допускает вложение вариантов в типе RECORD.

Пример. Пусть необходимо, помимо информации предыдущего примера, иметь о сотрудниках следующие сведения: если сотрудник холост, но состоял в браке раньше, то указать, когда разведен.

Опишем тип KIND как (женат, холост, разведен, нет):


Тогда


Здесь для варианта SINGLE имеется вложенная запись с вариантами DEVORCED (разведен) и NO.

Если сотрудник состоит в браке, то в записях информации отсутствует поле SINGLE; если разведен, то отсутствует MARRIED; если в браке не состоял, то запись содержит лишь поле NAME, DATEBIRTH и пустое поле NO.

Замечание. Перед засылкой информации в запись программист должен присвоить переключателю соответствующее значение. В противном случае информация (например, MARRIED) в поле заслана не будет, и система никакой диагностики не выдаст.

Пример засылки информации о сотруднике РОГОВЕ, родившемся 1.12.32, женатом на РОГОВОЙ, родившейся 15.3.30 (ЭВМ БЭСМ-6).



Более сложная программа, иллюстрирующая работу с переменными типа "запись", приведена в приложении.

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь