End Sub. ? результате прогона программы при сохранении вводимых
В результате прогона программы при сохранении вводимых значений переменных a и b по умолчанию будет выведено:
Как видно из примера, удвоение второго формального параметра в процедуре Удвоение не вызвало изменения фактической переменной b, так как этот параметр описан в заголовке процедуры как параметр-значение. Параметры-переменные используются как средство связи алгоритма, реализованного в подпрограмме, с внешним миром: с помощью этих параметров подпрограмма может передавать результаты своей работы вызывающей программе. В распоряжении программиста всегда есть и другой способ передачи результатов – через глобальные переменные. Однако злоупотребление глобальными связями делает программу, как правило, запутанной, трудной в понимании и сложной в отладке. В соответствии с требованиями хорошего стиля программирования рекомендуется там, где это возможно, использовать передачу результатов через фактические параметры-переменные. С другой стороны, описание всех формальных параметров как параметров-переменных нежелательно по двум причинам. Во-первых, это исключает возможность вызова подпрограммы с фактическими параметрами в виде выражений, что делает программу менее компактной. Во-вторых, в подпрограмме возможно случайное использование формального параметра, например, для временного хранения промежуточного результата, т.е. всегда существует опасность непреднамеренно испортить фактическую переменную. Вот почему параметрами-переменными следует объявлять только те, через которые подпрограмма в действительности передает результаты вызывающей программе. Чем меньше параметров объявлено параметрами-переменными и чем меньше в подпрограмме используется глобальных переменных, тем проще программа в понимании и отладке. По этой же причине не рекомендуется использовать параметры-пере-менные в заголовке функции: если результатом работы функции не может быть единственное значение, то логичнее использовать процедуру или нужным образом декомпозировать алгоритм на несколько подпрограмм. Демонстрационные примеры 1. Составить рекурсивную подпрограмму-функцию вычисления факториала целого положительного числа. Рекурсивной называется подпрограмма, которая в своем описании содержит обращение к самой себе. Функцию N! рекурсивно можно определить, исходя из следующей формулы: Описание функции на VBA:
Function Factorial(N As Integer) As Long If N = 0 Then Factorial = 1 Else Factorial = Factorial(N - 1) * N End If
|