06_Циклические алгоритмы.ppt
- Количество слайдов: 22
Циклические алгоритмы
Что такое циклический алгоритм? Алгоритмы, в которых для достижения результата некоторая последовательность действий должна быть выполнена несколько раз, называются циклическими
Разновидности циклических алгоритмов • С предусловием • С постусловием
Схема алгоритма с предусловием
Инструкция реализации алгоритма с предусловием
Порядок выполнения инструкции While • Вычисляется значение выражения <условие продолжения>. • Если значение выражения равно false, выполнение <инструкций тела цикла>прекращается. • Если значение выражения <условие продолжения> равно true, то выполняются <инструкции тела цикла>, расположенные между словами begin и end. • После этого снова вычисляется значение выражения <условие продолжения >, и все повторяется до тех пор, пока <условие продолжения> не примет значение false.
Пример использования цикла While Сколько нужно ежемесячных взносов (fee) на депозитный счет c месячной процентной ставкой (р), чтобы накопить сумму (target).
Реализация алгоритма function how. Many. Times. Add ( fee, p, target : real) : integer; var sum : real; n : integer; begin sum : = 0; n : = 0; while sum < target do begin sum : = sum * (1 + p) + fee; n : = n + 1; end; result: =n; end;
Схема алгоритма с постусловием
Инструкция реализации алгоритма с постусловием
Порядок выполнения инструкции Repeat • Сначала выполняются <инструкции тела цикла> находящиеся между словами repeat и until. • Затем вычисляется значение выражения <условие выхода из цикла >. Если значение выражения равно false, то инструкции тела цикла выполняются еще раз. • Если условие выполняется (значение выражения равно true), то выполнение цикла прекращается.
Пример использования цикла Repeat В качестве примера можно рассмотреть процедуру ввода пароля при запуске приложения. Эту процедуру можно связать с событием создания формы. До тех пор, пока пароль не будет введен правильно, форма не откроется.
procedure test. Parole( parole : String); var str : String; n : integer; Begin n: =0; repeat n: =n+1; if n>3 then halt(); str : = Input. Box(‘Контроль доступа', 'Введите пароль', ''); until str=parole; end;
Прерывание выполнения цикла break - сразу же прерывает выполнение цикла. Может быть записан в любом месте тела цикла. еxit - прерывает выполнение не только цикла, но и всей процедуры. halt - прерывает выполнение не только цикла и процедуры, но и всего приложения.
Итерационные алгоритмы • Так называются циклические алгоритмы в которых для вычислений в качестве исходных данных для расчета при каждом повторе используется результат полученный на предыдущем шаге. Вычисления повторяются до тех пор, пока разница между двумя последующими результатами не станет достаточно малой.
Итерационная формула для вычисления кубического корня
Алгоритмы вычисления сумм бесконечных рядов • В этих алгоритмах производится суммирование последовательно вычисляемых членов ряда. • Вычисление каждого следующего члена ряда производится по значению предыдущего. • Накопление суммы производят до тех пор, пока очередной член ряда не станет достаточно малым числом. • Алгоритм имеет смысл только в том случае, если ряд сходится, то есть значения членов ряда постепенно уменьшаются.
Бесконечный ряд для вычисления синуса