Студопедия

КАТЕГОРИИ:


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

Вопросы для самопроверки. Глобальные и локальные объекты




Глобальные и локальные объекты

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

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

Пример: области видимости переменных t, x и y.

program primer;

var

t: boolean;

procedure A

var

x: integer;

procedure B;

var

y: real;

begin

{ здесь доступны переменные t, x и y }

end;

begin

{ здесь доступны переменные t и x }

end;

procedure C;

begin

{ здесь доступна только переменная t }

end;

begin

{ здесь доступна только переменная t }

end.

Значение глобальной переменной может быть изменено внутри любой из подпрограмм. Такой эффект иногда называют «побочным», и его использование является нежелательным, т.к. может привести к появлению непонятных ошибок в программе. Чтобы избежать такого эффекта, необходимо следить, чтобы внутри подпрограмм изменялись значения только локальных переменных и формальных параметров.

Пример: глобальная и локальная переменная

program primer;

var

global: integer;

procedure A;

var

local: integer;

begin

local:=5; { допустимо }

global:=10; { допустимо, но не желательно }

end;

begin

global:=7; { допустимо }

{ local:=3; - нельзя, т.к. это локальная переменная }

end.

Переменная global видна во всей программе, а local – только в процедуре A.

Допустима ситуация, когда имена локальных и глобальных переменных совпадают. В этом случае внутри подпрограммы локальная переменная «перекрывает» глобальную. К глобальной же переменной можно обратиться, приписав перед ее именем название программы:

<имя программы>. <имя переменной>

Пример: совпадение имен глобальной и локальной переменных

program primer;

var

test: real;

procedure AAA;

var

test: integer;

begin

test:= primer.test; { локальной переменной присваивается

значение глобальной }

end;

1. Что такое подпрограмма?

2. Чем отличается процедура от функции?

3. Что такое формальные параметры? Фактические параметры?

4. Чем отличаются параметры-переменные от параметров-значений?

5. Sqr – это функция или переменная?

6. Что понимают под глобальными и локальными объектами?

 

 





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


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


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



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




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