Студопедия — Билет №34
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Билет №34






Структура программы. Локализация объектов.

Программа на языке Паскаль имеет блочную структуру:

<программа>::=<заголовок><блок> (не пугать с сегмент-блоком!)

<описание процедуры>::=<заголовок><блок>

<блок>::=<раздел описаний ><составной оператор>

В программный блок могут быть вложены процедурные блоки, в которые, в свою очередь, могут быть вложены блоки других процедур, и т.д.

Любой объект должен быть описан в каком-либо блоке. Говорят, что объект локализован в том блоке, где он описан. Это значит, что он существует в этом блоке и перестает существовать за пределами этого блока.

Если объект используется вне того блока, где он описан, то он называется нелокальным.

Нелокальный объект называется стандартным, если он определен в самом языке. Например, константы Pi, Maxint, функции Ео? Sin - стандартные.

Если нелокальный объект описан в программе, то он называется глобаль­ным.

ПРИМЕР.

program R;

var a,i:real;

procedure P1;

var b:real;

procedure P2;

var x,i:real;

begin

i:=2

begin

end{P2};

i:=99; P2;

writeln(i); {99}

end{P1};

function F:real;

var Z:real;

begin

i:=0; F:=i;

end{F};

begin

P1; writeln(i); {99}

writeln(i+F); {99+0=0(?)}

writeln(F+i); {0+0=0}

end{R}.

Переменные a, i - локализованы в программе R; b - локализована в процедуре Р1; х - локализована в процедуре Р2 и т.д.

Переменную а можно использовать в любой процедуре программы R, так как она глобальна по отношению к этим процедурам.

Переменная b - локальна в процедуре Р1 и глобальна по отношению к про­цедуре Р2, поэтому в этих процедурах она может быть использована. Переменную b нельзя использовать функцией F и в программе R, так как она теряет свое зна­чение при выходе из процедуры Р1.

Переменная z можег быть использована только функцией F, где она описа­на.

Если некоторая переменная (i) описана и во внешнем блоке (R) и во внут­реннем (Р2), то во внутреннем блоке действует описание его локальной перемен­ной i. Значение глобальной переменной i при входе в процедуру Р2 автоматиче­ски сохраняется, а при выходе из этой процедуры - восстанавливается.

Те же правила локализации распространяются и на любые другие объекты, в том числе и на процедуры.

Процедура Р1 и функция F описаны в программе R, поэтому они могут вызываться из программы R. Проце­дура Р2 описана (а значит и локализована) в процедуре Р1, следовательно она может вызываться из процедуры Р1 и может вызывать Р1 как глобальную.

В то же время, невозможно обратиться из программы R и из функции F к процедуре Р2, так как Р2 является локальным объектом процедуры Р1.

При взаимодействии Р1 и F действует следующее правило языка Паскаль: описание объекта должно предшествовать его вызову. Поэтому F может вы­зывать Р1, а Р1 не может вызывать F, так как процедура Р1 описана раньше, чем функция F, Чтобы установить равноправие P1 и F, следует перед описанием про­цедуры Р1 добавить опережающее описание функции F:

function F:real;forward;

ЛОКАЛИЗАЦИЯ ПЕРЕМЕННЫХ:

1) R вызывает:

P1 - доступно, P2 - недоступно, F - доступно;

2) P1 вызывает:

Р1 - рекурсия, Р2 - доступно, F - недоступно;

3) Р2 вызывает:

Р1 - доступно, Р2 - рекурсия, F - недоступно;

4) F вызывает:

Р1 - доступно, Р2 - недоступно, F - рекурсия.

_____________________________________________________________________________________







Дата добавления: 2015-03-11; просмотров: 511. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Дезинфекция предметов ухода, инструментов однократного и многократного использования   Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Studopedia.info - Студопедия - 2014-2024 год . (0.044 сек.) русская версия | украинская версия