НЕКОТОРЫЕ ПРИЕМЫ АЛГОРИТМИЗАЦИИ
Рис. 3 Циклические структуры алгоритмов
Рис. 2 Разветвляющиеся структуры алгоритмов
Действие 2
Выход
Действие 1
ДА
X
Т
а)
в)
▼Выход |
а)
Нет б)
Вход
Тело внешнего цикла |
Выход
РИС. 4 ВЛОЖЕННАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА "ЦИКЛ В ЦИКЛЕ"
Особенностью рассмотренных структур является то, что все они имеют один вход и один выход и могут быть соединены друг с другом в любой последовательности. В частности, каждая структура мо-жет содержать любую другую в качестве одного из блоков. Например, на рис. 20 изображена часто встречающаяся в реальных задачах вложенная циклическая структура ("цикл в цикле"), в которой тело внешнего цикла (внешний цикл – цикл "ПОКА") является также циклом (внутренний цикл – цикл "ДО"). При этом в соответствии с принципами вложенности внутренний цикл заканчивается раньше, чем внешний цикл.
Проектирование алгоритмов — наиболее ответственный этап разработки программ для ЭВМ, кото-рый определяет, в конечном итоге, насколько создаваемая программа соответствует предъявляемым к ней требованиям. Затраты на создание, сопровождение и эксплуатацию программных продуктов, науч-но-технический уровень разработки, время морального устаревания и многое другое — все это также зависит от принятых проектных решений.
Методы проектирования алгоритмов и программ очень разнообразны, но в основе всех их лежат приведенные выше основные структуры алгоритмов и некоторые общие приемы алгоритмизации. Рас-смотрим некоторые из таких приемов.
1 Обмен значениями между двумя переменными
Замена двух (или более) переменных местами практически всегда осуществляется через третью, до-
полнительно введенную, переменную. Для этого вначале вновь введенной переменной С присваивается значение одной из меняемых переменных, например A, а затем последней присваивается значение вто-рой меняемой переменной B. И, наконец, последний шаг замены – значение вновь введенной перемен-ной С присваивается переменной B (рис. 21).
2 Вычисление произведения (суммы) чисел
Задача вычисления суммы или произведения значений очень часто встречается при разработке раз-
личных алгоритмов. Существуют некоторые общие правила, позволяющие решить эту задачу правиль-но и быстро. Они заключаются в следующем: вначале необходимо задать некоторое начальное значение для вычисляемой суммы или произведения (как правило, начальное значение суммы принимается рав-ным нулю, а произведения – единице, но в зависимости от конкретной постановки задачи эти началь-ные значения могут быть другими), а затем в цикле (повторяется столько раз, сколько значений необхо-димо сложить или перемножить) происходит накапливание данной суммы или произведения. На рис.
N
22, а приведена схема алгоритма вычисления суммы – ∑ xi , а на рис. 22, б – схема вычисления факто-
i=1
риала от N – N!.
1-й шаг замены |
3-й шаг замены |
2-й шаг замены
( А I ^------------ ( В )
\ /
ы \ /
С |
>| /3-
1. С = А
2. А = В
3. В = С