- •3 Программирование разветвляющихся алгоритмов
- •3.1 Понятие разветвляющегося алгоритма и программы
- •3.2 Операторы управления разветвляющимся вычислительным процессом
- •3.2.1 Логические выражения
- •3.2.2 Оператор if
- •If (выражение) оператор1;
- •If (выражение ) оператор1; else опертор2;
- •3.2.3 Примеры программирования
- •Тесты к задаче 1.2
- •3.2.4 Выбор из большого числа вариантов
- •4 Программирование циклических алгоритмов
- •4.1 Понятие цикла
- •Различают циклы с предусловием и циклы с постусловием.
- •В циклах с предусловием условие повторения цикла проверяется раньше, чем выполняется тело цикла, поэтому возможно, что цикл не выполнится ни разу.
- •В циклах с постусловием условие повторения цикла проверяется после выполнения тела цикла и подготовки данных для очередного шага цикла, поэтому цикл выполняется всегда хотя бы один раз.
- •В общем виде циклы с предусловием и постусловием графически можно изобразить, как показано на рис.4.1.
- •4.2 Программирование цикла с заранее известным числом повторений
- •4.3 Программирование цикла с заранее неизвестным числом повторений
- •4.3.1 Оператор цикла while
- •4.3.2 Оператор цикла do-while
- •4.4 Вложенные циклы
4.3.2 Оператор цикла do-while
Оператор цикла do-while является оператором цикла с постусловием, так как в нем анализ конца цикла производится после операторов тела цикла. Он используется, как и оператор while, когда количество итераций цикла заранее неизвестно и определяется в процессе выполнения цикла.
Особенностью оператора является выполнение тела цикла хотя бы один раз.
Общий вид оператора:
do S while (b );
Здесь S – простой или составной оператор – тело цикла.
Он должен включать рабочую часть цикла и операторы изменения операндов выражения b (подготовки данных для очередного шага цикла); b – выражение любого типа, например, логическое, приводимое к арифметическому типу, определяющее условие повторения цикла.
Оператор цикла do-while выполняется по схеме цикла с постусловием, изображенной на рис. 4.1 б).
Пример. Найти сумму первых N членов ряда .
Решение. Введем обозначения: – сумма ряда,– произвольный член ряда. Сумму вычислим в цикле как нарастающую сумму: .
Для вычисления значения очередного члена ряда достаточно значение предыдущего члена ряда умножить на , т.е..
Полученная формула называется рекуррентной. Она позволяет вычислить любой член ряда, если известен первый член ряда.
К моменту исполнения первой итерации цикла значения идолжны быть определены:. Параметром цикла пусть будет переменнаяk. Параметр k должен изменяться от 1 до N с шагом 1. Выражение должно быть выполнено хотя бы один раз (для N=1 – один раз; для N=2 – два раза и т. д.), поэтому для вычисления суммы следует использовать цикл с постусловием.
Графическая схема алгоритма приведена на рис.4.5.
4.4 Вложенные циклы
В теле цикла может располагаться еще один цикл. В этом случае говорят, что алгоритм или программа содержат цикл в цикле или вложенные циклы.