|
http://laska-samp.biz/informatika/articles/inf/teorija/algoritm/vspomalg |
Информатика :: Теория, задания, программирование :: Информатика :: Теория :: Алгоритмизация |
Вспомогательные алгоритмы
Процесс решения сложной задачи довольно часто сводится к решению нескольких более простых подзадач. Соответственно при разработке сложного алгоритма он может разбиваться на отдельные алгоритмы, которые называются вспомогательными. Каждый такой Сначала алгоритм формулируется в «крупных» блоках (командах), которые могут быть непонятны исполнителю (не входят в его систему команд) и записываются как вызовы вспомогательных алгоритмов. Затем происходит детализация, и все вспомогательные алгоритмы подробно расписываются с использованием команд, понятных исполнителю. Разбиение задачи на более простые подзадачи является важнейшим приемом алгоритмизации и программирования. Алгоритмы решения таких подзадач называются вспомогательным, а реализующие их программы – подпрограммами (процедурами).
Вспомогательный алгоритм должен:
- иметь имя, с помощью которого его можно вызвать из основного или другого вспомогательного алгоритма
- возвращать управление тому алгоритму, из которого был вызван
- быть относительно небольшим
Основной алгоритм определяет порядок вызова вспомогательных алгоритмов для решения задачи.
алг АЛГ 1 основной алгоритм
нач
серия команд
АЛГ 2 команда вызова
серия команд
кон
алг АЛГ 2
нач вспомогательный алгоритм
серия команд
кон
Примеры вспомогательных алгоритмов.
1. Алгоритм-функция, определяющая большее из двух чисел
алг вещ бид ( вещ А, В,С)
арг А,В
рез С
нач
если А > В
то С= А
иначе С= В
все
кон
2. Алгоритм-функция, вычисляющая факториал натурального числа N
алг факт ( цел N,Р)
арг N
рез Р
нач
Р:= 1
для I от 1 до N
Р := Р * I
кон
3. Вспомогательный алгоритм, вычисляющий гипотенузу прямоугольного треугольника по его катетам
алггипотенуза(арг вещ А, В, рез вещ С)
арг А, В - катеты
рез С - гипотенуза
нач
С :=SQRT(A ** 2 + В ** 2)
кон
Опубликовано 20 December 2015