Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Соответствие между сфап и сфоп по видам параметровСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Соответствие по количеству и порядку следования является тривиальным. Остановимся на понятиях - соответствие по типу и виду параметров. Соответствие по типу означает, что значение фактического параметра должно быть того типа, который указан для формального в описании подпрограммы. Разберемся с соответствием по виду. Каждый формальный параметр классифицируется по виду в зависимости от статуса и типа данных. Это однозначно определяет какой фактический параметр может находиться на его месте при обращении. Как было указано ранее, существуют три разновидности формальных параметров - формальный параметр-переменная; - формальный параметр-значение; - формальный параметр-константа. Формальный параметр-переменная означает, что при обращении к подпрограмме на месте этого параметра может находиться только имя переменной величины, действующей в программном блоке, из которого вызывается подпрограмма. В этом случае при исполнении подпрограммы имя формального параметра-переменной заменяется именем фактической переменной, и с этой фактической переменной производятся действия подпрограммы. Таким образом, подпрограмма может изменять значение фактической переменной. Такой механизм передачи данных в подпрограмму называется обращением по наименованию. Формальный параметр-значение означает, что при обращении к подпрограмме на месте этого параметра может стоять любое выражение, дающее результат типа, определенного для формального параметра-значения в СФоП. Формальному параметру-значению соответствует переменная такого же имени, существующая при исполнении подпрограммы. При вызове подпрограммы в эту переменную передается результат вычисления фактического выражения, подставленного на место формального параметра-значения. Такой механизм передачи данных в подпрограмму называется передачей по значению. Формальный параметр-константа означает, что при обращении к подпрограмме на данном месте может находиться только имя переменной величины, действующей в программном блоке, из которого вызывается подпрограмма. В этом случае при исполнении подпрограммы имя формального параметра-переменной заменяется именем фактической переменной. Но в действиях подпрограммы невозможно изменять значение этой фактической переменной (это проверяется при синтаксическом анализе текста подпрограммы – при компиляции). Здесь также работает механизм передачи данных в подпрограмму по наименованию Механизм обработки вызова подпрограммы 1. В свободном участке памяти создается динамический экземпляр данных подпрограммы, в который входят: а) (только для функций) участок памяти, поименованный именем функции. Структура участка соответствует типу результата функции (автоматическая переменная с именем функции; б) участки памяти, поименованные именами формальных параметров – значений, структура участков определяется типом этих параметров; в) участки памяти под локальные переменные (переменные, описанные в соответствующем разделе подпрограммы); 2. Осуществляется передача фактических параметров в подпрограмму: а) фактические параметры-значения вычисляются. Полученные значения поступают в динамический экземпляр данных на место соответствующих формальных параметров; б) фактические параметры–переменные и фактические параметры-константы передаются в подпрограмму в виде адресов оперативной памяти, в которой они располагаются (это можно трактовать следующим образом - в операторы подпрограммы на место имен формальных параметров-переменных и параметров-констант подставляются имена фактических переменных); 3. Над переданными фактическими параметрами и локальными переменными выполняются действия подпрограммы; 4. а) При завершении процедуры динамический экземпляр данных процедуры уничтожается и выполняется следующий по порядку оператор, стоящий за оператором обращения к процедуре; б) При завершении функции из динамического экземпляра данных функции значение, находящееся в автоматической переменной с именем функции, передается в стек, из которого вызывалась функция. Затем динамический экземпляр данных функции уничтожается и продолжает вычисляться стек, из которого вызывалась функция. Термин "уничтожение динамического экземпляра данных" означает, что участок оперативной памяти, в котором располагался динамический экземпляр, включается в список свободных участков оперативной памяти. Пример применения подпрограмм В качестве наглядного примера рассмотрим математическую задачу вычисления числа сочетаний из n по m Правило вычисления этого значения следующее: Исходя из этого, видим, что трижды необходимо вычислить факториал натурального числа. Целесообразно реализовать вычисление факториала в виде вспомогательного алгоритма. Разработка подпрограммы
|
||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 516; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.141.201 (0.006 с.) |