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