КАТЕГОРИИ: Архитектура-(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; Просмотров: 431; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |