- •Пояснительная записка
- •Основы теории алгоритмов
- •Понятие алгоритма
- •Свойства алгоритма
- •Способы описания алгоритма
- •Условные графические обозначения, используемые в схемах алгоритмов и программ, правила их выполнения
- •Примеры применения символов при выполнении схем алгоритмов и программ
- •Типы алгоритмов
- •Линейные алгоритмы
- •Алгоритмы ветвящейся структуры
- •Алгоритмы циклической структуры
- •Циклы с известным числом повторений
- •Циклы с неизвестным числом повторений (итерационные)
- •Массивы
- •Выписка из гост 19.701-90 (исо 5807-85) Схемы алгоритмов, программ, данных и систем Условные обозначения и правила выполнения
- •Примеры выполнения алгоритмов
- •Индивидуальные задания
- •Библиографический список
- •Содержание
Алгоритмы циклической структуры
Часто при решении задач приходится многократно выполнять какую-то группу вычислений. Такие повторяемые участки вычислительного процесса называются циклами или циклической частью задачи (один проход цикла называется итерацией). Параметром цикла называется переменная, которая используется при проверке условия цикла и изменяется на каждой итерации, как правило, на одну и ту же величину. Если параметр цикла целочисленный, он называется счётчиком цикла. Использование циклов позволяет сократить схему алгоритма и длину соответствующей ему программы.
Циклы являются основными частями всяких практически используемых программ, а потому организация цикла является наиболее часто встречающейся задачей программирования. Различают циклы с заданным и неизвестным числом повторений. К последним относятся итерационные циклы, характеризующиеся последовательным приближением к искомому значению с заданной точностью.
Во всех циклах различают четыре составные его части (рис. 27):
а) подготовка цикла - до входа в цикл задаются значения переменных, которые в цикле используются;
б) рабочая часть цикла (тело цикла);
в) подготовка к следующему повторению тела цикла (модификация);
г) проверка условия завершения (продолжения) цикла - выполняется на каждой итерации.
.
Рис. 27.
Тело цикла с постусловием выполняется хотя бы один раз, после чего проверяется, надо ли выполнять ещё раз.
Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу.
Циклы с известным числом повторений
Пример 9. Составить схему алгоритма вычисления значений функции y = f (x) для x от xнач до xкон с шагом Δx.
Часто требуется вычислить значения функции при значениях аргумента, меняющегося от какого-либо начального значения до конечного с некоторым шагом.
Приведённая схема алгоритма (рис. 27) составлена для вычисления функции f (x) в общем виде. В каждом конкретном случае она может быть заменена любой нужной функцией.
Вводимыми значениями будут xнач, xкон, Δx, которые и вводим в блоке 1. Через x обозначаем текущее значение переменной, при котором будут вычислены значения искомой функции. В блоке 2 этой текущей переменной присваивается начальное значение аргумента - xнач. В блоке 3 вычисляем значение у = f (x) и выводим это значение y в блоке 4. В блоке 5 увеличиваем текущее значение x на шаг Δx. В блоке 6 проверяем не достигло ли текущее значение x конечного, и передаем управление блоку 3, где вычисляется новое значение у при новом увеличенном на шаг значении x. Таким образом, процесс вычисления повторяется много раз, т.е. организован цикл.
В данной схеме алгоритма: блоки 1 и 2 – подготовка цикла; блоки 3, 4 – тело цикла; блок 5 – изменение параметра цикла, т.е. подготовка к следующему повторению тела цикла; блок 6 – проверка условия завершения цикла.
Данная схема алгоритма будет справедлива для целого класса задач, что наглядно
подтверждает свойство массовости алгоритмов.
Рис. 27.
Пример 10. Составить схему алгоритма вычисления суммы членов ряда (рис. 28):
Для этого ряда рекуррентная формула следующая:
Для вычисления суммы n членов ряда требуется ввести это число n. Для нахождения суммы ряда организуем цикл, увеличивая сумму на очередной элемент рассматриваемого ряда. В теле цикла (блоки 5, 6) очередной элемент ряда получаем через предыдущий, пользуясь рекуррентной формулой. Блоки 1, 2, 3, 4 — подготовка цикла; блок 7 — блок модификации; блок 8 — проверка окончания цикла.
Здесь у - общий член ряда, его значение вычисляется через предыдущее значение элемента этого ряда по рекуррентной формуле. В подготовке цикла начальное значение
у = 1, так как в теле цикла для получения очередного элемента ряда предыдущее значение умножается на определенный коэффициент.
Рис. 28.
Пример 11. Составить схему алгоритма вычисления произведения членов ряда
(рис. 29):
Можно записать этот ряд в виде формулы:
где i
– параметр цикла,
- шаг.
Рис. 29.
Пример 12. Составить схему алгоритма вычисления суммы S с проверкой подкоренного выражения знаменателя, т. е. если zk+xi≤0, то слагаемое отбросить
(рис. 30):
Если шаги не
указаны, то по умолчанию они равны
единице.
При создании алгоритма используются вложенные циклы:
Рис. 30.
