пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

pogromirovanie:
» sooqa
Уася:
» History motherfuckers

Записи с вариантами, действия с ними, размещение в памяти. (Пример программ).

Общий вид:
type v = record
a: type1
b: type2
……
case n: typen of
c1:(t11: type11;
t12: type12; …);
c2:(t21: type21;
t22: type22; …);
……..
end;
var z: v;

Здесь z – переменная типа v; n – переменная, называемая переключателем; typen – тип переменной n.

Этому же типу должны принадлежать метки c1 и c2. Каждой метке соответствует набор полей t11, …. Эти поля являются компонентами варианта.

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

Замечания:
Любая запись (record) может иметь только одну вариантную часть (case).
Вариантная часть должна помещаться после постоянной части.
Среди идентификаторов полей не должно быть одинаковых.

Обращение к компоненте z.tij записи z происходит так:
Присваивается соответствующее значение c… переключателю n. В зависимости от значения n переменная z, помимо полей a, b, …, содержит те поля, которые соответствуют той метке c…, с какой совпадает значение n.
Выполняется операция с компонентой z.tij.

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

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

Пусть переменная типа kind может иметь одно из значений («женат», «холост»).
kind = (married, single);
person = record
name: string;
datebirth: date;
case yesno: kind of
married: (name1: string; date1: date);
single: ()
end;

Здесь name – строка символов; datebirth – запись, содержащая дату рождения; yesno – переключатель типа kind, который может принимать одно из двух значений: married либо single; name1 – строка символов, содержащая фамилию супруга(и); date1 – запись, содержащая дату рождения; single – пустое поле.

Если персона в браке, то будет присутствовать поле married, если нет – поле single. Паскаль допускает вложение вариантов в типе record.

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


27.01.2014; 07:11
хиты: 202
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь