Лекция 01. Тема Общая характеристика языков программирования высокого уровня
Механизмы обмена данными с подпрограммой
Download 4.1 Mb. Pdf ko'rish
|
Lektsii po YaP Lukinova 2 sem
- Bu sahifa navigatsiya:
- Механизм глобальных и локальных параметров.
4.2. Механизмы обмена данными с подпрограммой
Итак, если мы оформили часть алгоритма в виде подпрограммы, то основная задача – передать информацию внутрь блока и “выбросить” результат работы в вызывающую программу для дальнейшего использования. main локальные переменные Параметры f1 динамическая связь статическая связь адрес возврата в main стек (ЭЗА f1) f 1 адрес возврата в f 1 f 2 … … … Формирует f1 формирует вызывающий модуль (main) указатель вершины ЭЗА main адрес ЭЗА статического предка стек (ЭЗА f2) f 1 Существует два способа информационного обмена между подпрограммой и вызывающей программой: 1. Прямой доступ к глобальным переменным. 2. Передача через параметры подпрограммы. Этот способ является более гибким, чем глобальные переменные. Подпрограмма может вычисляться много раз для любых новых фактических данных, а глобальные переменные надо переопределять перед каждым вызовом. Кроме того, глобальные переменные будут видны и в других подпрограммах. Механизм глобальных и локальных параметров. Выше на рисунке 4.2. приведена структура подпрограммы, которая очень похожа на структуру основной программы: присутствуют те же два раздела – блок описаний локальных переменных и тела подпрограммы. Но в разделе описаний подпрограммы объявляемые объекты названы “локальными”, в отличие от “глобальных” в разделе описаний основной программы. Дело здесь в следующем. Все имена, описанные внутри подпрограммы, локализуются в ней, они как бы невидимы извне подпрограммы. Таким образом, со стороны операторов, использующих обращение к подпрограмме, она трактуется как “черный ящик», в которой реализуется тот или иной алгоритм, действуют те или иные переменные, константы и т.п. Все имена в пределах подпрограммы, в которой они объявлены должны быть уникальными и не могут совпадать с именем подпрограммы. С другой стороны, объекты верхних уровней действуют во всех подпрограммах низших уровней. Образно говоря, любая подпрограмма как бы окружена полупрозрачными стенками: снаружи подпрограммы мы не видим внутренности, но, попав внутрь, можем наблюдать все, что вне ее. Пусть имеем такое описание (здесь для удобства термин «подпрограмма» заменяется на «блок»): Program . . ; var V1 : . . . ; Блок A; var V2 : . . . ; . . . . . . end {A}; Блок B; var V3 : . . . ; Блок B1; var V4 : . . . ; Блок B11; var V5 : . . . ; . . . . . . . . Из блока B11 доступны все пять переменных V1...V5, из блока Bl доступны VI...V4, и т.д., из основной программы – только V1. При этом переменные, описанные внутри блока, с точки зрения этого блока являются локальными. Переменные, описанные в блоках высших уровней или в главной программе, называются глобальными. Так, V1 является глобальной переменной для всех блоков. V2 – локальна для А. V3 – локальна для В и глобальна для В1 и В11. При этом реализуется механизм сокрытия переменных, рассмотренный в Download 4.1 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling