Линейные и разветвляющиеся алгоритмы
Рис. 10.1. Алгоритмические структуры
Циклический- это алгоритм, в котором предусмотрено многократное выполнение одной и той же последовательности действий, называемых телом цикла. Цикл — повторение этой последовательности действий. При выполнении цикла изменяется значение некоторой переменной, которая называется параметром цикла. Когда параметр цикла достигнет заданного значения, цикл прекращается. Приведем общепринятые положения организации цикла:
1. Установить начальное значение параметра цикла;
2. Выполнить тело цикла;
3. Изменить параметр цикла;
4. Выполнить проверку: если параметр цикла не достиг заданного значения — возврат к пункту 2, иначе — к пункту 5;
5. Выход из цикла.
Проверка значения параметра цикла может выполняться в начале цикла (рис. 10.1,в). Такой алгоритм называют циклическим с предусловием или с защитой входа. Если проверка значения параметра цикла помещается в конце цикла (рис. 10.1,г), то такой тип алгоритма называют постусловием или свободным входом в цикл.
Существуют алгоритмы с заранее известным числом выполняемых циклов. Параметром цикла в таком случае является переменная, в которой накапливается количество выполняемых циклов - счетчик цикла. Когда будет выполнено заданное число циклов – осуществляется выход из цикла. Например, задачи обработки массивов данных сводятся к алгоритмам с заданным числом циклов.
Ряд задач сводятся к ЦА, в которых заранее неизвестно число выполняемых циклов. Например, определение суммы членов ряда с заданной точностью E , если задан общий член ряда аn. Параметром цикла в данном случае является значение текущего члена ряда. Выход из цикла произойдет при an ≤ E. При уточнении корня алгебраического уравнения методом половинного деления параметром цикла является переменная z= b-a. Выход из цикла при выполнении условия z ≤ E.
При решении задач с использованием итерационных формул yi+1 = f(yi,x),выход из цикла осуществляется при выполнении условия | yi+1 - yi | <=E, где Е— заданная точность.
Циклические алгоритмы бывают простые (рис. 10.1,в,г) и сложные (на рис. 10.1,д представлен сложный циклический алгоритм без детализации начальной установки и изменения параметров внутреннего и внешнего циклов). Например, при решении задачи табулирования функции двух переменных Z=f(x,y) используется сложный циклический алгоритм, где параметром внутреннего цикла является х = xнач., xкон., dxшаг., а параметром внешнего цикла y= yнач.,yкон.,dyшаг.. К сложным циклическим алгоритмам сводятся задачи обработки элементов двумерных массивов и т.д.
Иерархические алгоритмы (рис. 10.1,е) используют подчиненные алгоритмы (подпрограммы). Алгоритм, из которого происходит обращение к подчиненному алгоритму, называют основным. Из основного алгоритма может происходить неограниченное число обращений к подчиненным алгоритмам.
|
|
Рис. 10.2. Линейный алгоритм Рис. 10.3. Разветвляющийся алгоритм