Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Оператор присоединения WITH

Если в программе необходимо несколько раз подряд обратиться к полям одной записи, то это может оказаться неудобным.

Пример:

var Circle: TCircle;

Circle.color:= 0;

Circle.center.x:= 10;

Circle.center.y:= 5.5;

Circle.radius:= sqr(Circle.center.x)+ sqr(Circle.center.y);

Обращение к компонентам записи в таком случае можно упростить, если воспользоваться оператором присоединения with.

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

WITH M DO OP;

Здесь М – имя записи, ОР – простой или составной оператор. Оператор ОР представляет собой область действия оператора присоединения, в пределах которой можно не использовать составные имена.

Пример: использование оператора with

var Circle: TCircle;

with Circle do

begin

color:= 0;

center.x:= 10;

center.y:= 5.5;

radius:= sqr(center.x)+ sqr(center.y);

end;

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

Если внутри оператора with для некоторого имени явно не указано имя записи, то компилятор пытается интерпретировать его в следующей последовательности:

1) если в записи есть поле с искомым именем, то поиск заканчивается;

2) если в записи поля с таким именем нет, а рассматриваемый оператор with является вложенным в другой оператор with, то поиск производится среди полей внешней записи;

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

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

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

CASE P OF,

где Р – имя поля из общей части записи.

Возможные значения, принимаемые этим полем, перечисляются так же, как и в операторе выбора case. Однако вместо указания выполняемого действия, как это делается в операторе case, здесь указываются поля варианта, заключенные в круглые скобки. Описание вариантной части завершается служебным словом end.

Тип поля Р можно указать в заголовке вариантной части.

Пример: тип поля Р указан в заголовке вариантной части

case P: Integer of

Далее рассмотрим следующий пример: описать запись для хранения данных: имя, фамилия, дата рождения. Для граждан хранить место рождения, для иностранцев – страну, дату прибытия и дату отъезда.

Пример: описание записи с вариантной частью

record

firstName, lastName: string[40];

birthDate: Date;

case citizen: boolean of

True: (birthPlace: string[40]);

False: (country: string[20];

entryDate: Date;

exitDate: Date);

end;

<== предыдущая лекция | следующая лекция ==>
Обращение к записям | Операции над множествами
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 714; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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