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

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

Билет №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; просмотров: 548. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


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


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

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