Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Case Boolean of




Type

Var

Case Nalich: Boolean of

Type

...

Case поле_признака: имя_типа of

...

Type

Const

Type

Const

Withсписок_переменных_1, список_переменных_2,..., список_переменных_N do

...

With список_переменных_2 do

Withсписок_переменных_1 do

Begin

With X, D1 do

Re: = 10.5;

Im: = 5.3;

Day: = 2 8;

Mont: = Oct;

Year: = 2009

End;

Сравните с примером в начале пункта (без использования оператора With). Понятно, что в операторе With нельзя указывать имена нескольких записей одного и того же типа.

Поскольку Паскаль допускает вложение записей друг в друга (см., пример выше), то оператор With тоже может быть вложенным (уровень вложения не должен превышать 9):

With список_переменных_N do оператор;

Последнее можно записать более коротко:

оператор;

Записи с фиксированными частями можно описывать с помощью типизованных констант:

имя_типиз_конст: тип = (список_значений_полей);

Список значений полей представляет собой список отделяемых друг от друга точкой с запятой элементов вида:

имя_поля: константа


Пример:

Point = Record

x, y: Real

end;

Vector = Array [ 0 .. 1 ] of Point;

Date = Record

Day: 1 .. 31;

Month: (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sept, Oct, Nov, Dec);

Year: 1900 .. 2010

end;

Origon: Point = (x: 1.1; y: -1.2);

Line: Vector = ((x: -4.1; y: 6.5),

(x: 5.3; y: 3.6));

SomeDay: Date = (Day: 2 8; Month: Oct; Year: 2009);

Записи с вариантами

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

Записи с вариантами состоят из необязательной фиксированной и вариантной части. Использование фиксированной части не отличается от использования, описанного выше.

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

Формат описания:

имя _ типа = Record

 

{ фиксированная часть (может отсутствовать): }

 

список_имен _ полей_1: тип_1;

список_имен _ полей_N: тип_N

 

{ вариантная часть: }

константа_выбора_1: (вариант_списка_имен _ полей_и_типов_1);

константа_выбора_M: (вариант_списка_имен _ полей_и_типов_M)

end;

Пример:

Tovar = Record

 

{ фиксированная часть: }

 

Nomer: Byte;

A rticle: String

 

{ вариантная часть: }

 

True: (Cena: Integer);

False: ()

end;

T1: Tovar;

 

При использовании записей с вариантами следует придерживаться следующих правил:

· фиксированная часть записи (если она присутствует) должна всегда предшествовать вариантной части;

· все имена полей должны отличаться друг от друга, по крайней мере, одним символом, даже если они встречаются в разных вариантах;

· запись может иметь только одну вариантную часть;

· если поле, соответствующее какой-либо метке, является пустым, то оно записывается следующим образом: константа_выбора: ();

 

Записи с вариантами также можно задавать с помощью типизированных констант. При задании такой записи указываются только один из возможных вариантов констант:

Forma = record

True: (BirthPlace: String [ 40 ]);

False: (Country: String [ 20 ];

EntryPort: String [ 20 ];

EntryDate: array [ 1 .. 3 ] of Word;

Count: Word)

end;




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 377; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.