![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Вспомогательные алгоритмы и процедуры
В теории алгоритмов известно понятие вспомогательного алгоритма. Вспомогательным называется алгоритм решения некоторой подзадачи из основной решаемой задачи. В таком случае алгоритм решения исходной задачи называется основным алгоритмом. В качестве примера рассмотрим следующую задачу: требуется составить алгоритм вычисления степенной функции с целым показателем у = хk, где k – целое число, х ≠ 0. В алгебре такая функция определена следующим образом:
Для данной задачи в качестве подзадачи можно рассматривать возведение числа в целую положительную степень. Учитывая, что 1/х-n = (1/х) -n, запишем основной алгоритм решения этой задачи. алгстепенная функция цел n; вещ x,y начввод x,n еслиn=0 то y:=1 иначе еслиn>0 тоСТЕПЕНЬ(x,n,y) иначеСТЕПЕНЬ(1/n,-n,y) Кв Кв выводy Кон Здесь дважды присутствует команда обращения к вспомогательному алгоритму с именем СТЕПЕНЬ. Это алгоритм возведения вещественного основания в целую положительную степень путем его многократного перемножения. Величины, стоящие в скобках в команде обращения к вспомогательному алгоритму, называются фактическими параметрами. В учебном алгоритмическом языке вспомогательные алгоритмы оформляются в виде процедур. Запишем на алгоритмическом языке процедуру СТЕПЕНЬ. Заголовок вспомогательного алгоритма начинается со слова «процедура», после которого следует имя процедуры и в скобках – список формальных параметров. В этом списке перечисляются переменные-аргументы и переменные-результаты с указанием их типов. Здесь а и k – формальные параметры-аргументы, z – параметр-результат. Следовательно, процедура СТЕПЕНЬ производит вычисления по формуле z = аk. В основном алгоритме «Степенная функция» обращение к процедуре производится путем указания ее имени с последующим в скобках списком фактических параметров. Между формальными и фактическими параметрами процедуры должны выполняться следующие правила соответствия: - по количеству (сколько формальных, столько и фактических параметров); - по последовательности (первому формальному соответствует первый фактический параметр, второму – второй и т.д.); - по типам (типы соответствующих формальных и фактических параметров должны совпадать). Фактические параметры-аргументы могут быть выражениями соответствующего типа. Обращение к процедуре инициирует следующие действия. 1. Значения параметров-аргументов присваиваются соответствующим формальным параметрам. 2. Выполняется тело процедуры (команды внутри процедуры). 3. Значение результата передается соответствующему фактическому параметру, и происходит переход к выполнению следующей команды основного алгоритма. В процедуре Степень нет команд ввода исходных данных и вывода результатов. Здесь присваивание начальных значений аргументам (а, n) производится через передачу параметров-аргументов. А присваивание результата переменной (у) происходит через передачу параметра-результата (z). Таким образом, передача значений параметров процедур – это третий способ присваивания (наряду с командой присваивания и командой ввода). Использование процедур позволяет строить сложные алгоритмы методом последовательной детализации.
![]() |