Студопедия

КАТЕГОРИИ:


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

Вопросы для проверки знаний. Область видимости данных




Область видимости данных. Локальные и глобальные величины

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

Рассмотрим некоторую программу, включающую в себя описания подпрограмм в виде процедур и функций. Имена, описанные в разделе описаний программы, называют глобальными. Это означает, что они доступны для использования не только в теле программы, но и в любой ее подпрограмме. Областью видимости глобальных переменных составляет весь код программы.

Все имена, описанные в заголовках или разделах описаний подпрограмм (процедур и функций) называют локальными, т.е. они доступны для пользователя исключительно в своем блоке. Таким образом, областью видимости локальных переменных является только тот блок, в котором они описаны. За его границами их значение не определено. В том числе, локальными являются формальные параметры подпрограмм.

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

В отличие от глобальных, локальные переменные хранятся в специальной области памяти, которая называется стек. Она создается каждый раз при входе в подпрограмму и уничтожается при выходе из нее. Максимальный объем стековой памяти в Паскале также составляет 65520 байт.

В программе из примера 1 п.7.2 величины x,y,z,c,ord_value, описанные в разделе описаний внешней программы, являются глобальными. Формальные параметры процедуры x,y,ord_val, заданные в ее заголовке, являются локальными, их область видимости составляет только процедура order. Сходство наименований глобальных и локальных переменных x,y не вызывает ошибок при выполнении программы. Единственное неудобство заключается в том, что при расчетах в процедуре order глобальные переменные x,y “не видны” за соответствующими локальными.

1. Что называют областью видимости данных?

2. Какие имена в программе называют глобальными, где помещают их описание, какова их область видимости?

3. Какие величины программы называют локальными, где они описаны и какова их область видимости?

4. Как на практике организовано хранение глобальных и локальных данных при работе программы?

Практическое задание.

1. Исправить код программы из примера 1 п.7.2 таким образом, чтобы локальные переменные процедуры order не перекрывали глобальные переменные.




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


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


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



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




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