Мегаобучалка Главная | О нас | Обратная связь


Вспомогательные алгоритмы и процедуры



2016-01-26 888 Обсуждений (0)
Вспомогательные алгоритмы и процедуры 0.00 из 5.00 0 оценок




В теории алгоритмов известно понятие вспомогательного алгоритма. Вспомогательным называется алгоритм решения некоторой подзадачи из основной решаемой задачи. В таком случае алгоритм решения исходной задачи называется основным алгоритмом.

В качестве примера рассмотрим следующую задачу: требуется составить алгоритм вычисления степенной функции с целым показателем: y = xk, где k – целое число, x¹0. В алгебре такая функция определена следующим образом:

Для данной задачи в качестве подзадачи можно рассматривать возведение числа в целую положительную степень.

Учитывая, что 1/x-n =(1/x)-n, запишем основной алгоритм решения этой задачи.

алг Степенная функция

цел n; вещ x, y;

начввод x, n

если n=0

тоy:=1

иначе если n>0

то СТЕПЕНЬ(x, n, y)

иначе СТЕПЕНЬ(1/x, -n, y)

кв

кв

вывод y

Кон

Здесь дважды присутствует команда обращения к вспомогательному алгоритму с именем СТЕПЕНЬ. Это алгоритм возведения вещественного основания в целую положительную степень путем его многократного перемножения. Величины, стоящие в скобках в команде обращения к вспомогательному алгоритму, называются фактическими параметрами.

В учебном алгоритмическом языке вспомогательные алгоритмы оформляются в виде процедур. Запишем на АЯ процедуру СТЕПЕНЬ.

процедура СТЕПЕНЬ(веща, цел k, вещ z)

цел i

нач z:=1; i:=1

пока i£k, повторять

нцz:=z´a

i:=i+1

кц

Кон

Заголовок вспомогательного алгоритма начинается со слова “процедура”, после которого следует имя процедуры и в скобках – список формальных параметров. В этом списке перечисляются переменные-аргументы и переменные-результаты с указанием их типов. Здесь a и k – формальные параметры-аргументы, z – параметр-результат. Следовательно, процедура СТЕПЕНЬ производит вычисления по формуле: z=ak.

В основном алгоритме «Степенная функция» обращение к процедуре производится путем указания ее имени с последующим в скобках списком фактических параметров. Между формальными и фактическими параметрами процедуры должны выполняться следующие правила соответствия:

- по количеству (сколько формальных, столько и фактических параметров);

- по последовательности (первому формальному соответствует первый фактический параметр, второму – второй и т.д.);

- по типам (типы соответствующих формальных и фактических параметров должны совпадать).

Фактические параметры-аргументы могут быть выражениями соответствующего типа.

Обращение к процедуре инициирует следующие действия:

1) значения параметров-аргументов присваиваются соответствующим формальным параметрам;

2) выполняется тело процедуры (команды внутри процедуры);

3) значение результата передается соответствующему фактическому параметру, и происходит переход к выполнению следующей команды основного алгоритма.

В процедуре СТЕПЕНЬ нет команд ввода исходных данных и вывода результатов. Здесь присваивание начальных значений аргументам (a, n) производится через передачу параметров-аргументов. А присваивание результата переменной (y) происходит через передачу параметра-результата (z). Таким образом, передача значений параметров процедур – это третий способ присваивания (наряду с командой присваивания и командой ввод).

Использование процедур позволяет строить сложные алгоритмы методом последовательной детализации.

Упражнения

1. Даны декартовы координаты трех вершин треугольника на плоскости. Составить алгоритм определения площади треугольника.

2. Дана скорость ракеты при выходе за пределы атмосферы Земли. Составить алгоритм определения, как будет двигаться ракета после выключения двигателей? (Напомним величины трех космических скоростей: 7,5 км/сек; 11,2 км/сек; 16,4 км/сек).

3. Даны три положительных числа. Составить алгоритм, определяющий, могут ли они быть длинами сторон треугольника?

4. Пусть компьютер способен выполнять только две арифметические операции: сложения и вычитания. Составить алгоритмы:

а) умножения двух целых чисел;

б) целочисленного деления двух чисел;

в) получения остатка от целочисленного деления двух чисел.

5. Построить алгоритм решения биквадратного уравнения, используя как вспомогательный алгоритм решения квадратного уравнения.

6. Составить алгоритм нахождения НОД трех натуральных чисел, используя вспомогательный алгоритм нахождения НОД двух чисел.

 



2016-01-26 888 Обсуждений (0)
Вспомогательные алгоритмы и процедуры 0.00 из 5.00 0 оценок









Обсуждение в статье: Вспомогательные алгоритмы и процедуры

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (888)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)