- •1. Краткие теоретические сведения
- •1.1. Понятие циклического вычислительного процесса
- •1.2. Типовая блок-схема организация цвп
- •1.3. Классификация цвп
- •Повторений и специальной переменной - счетчиком циклов
- •1.4. Общие сведения об операторах цикла
- •1. Оператор while:
- •2. Оператор do…while:
- •3. Оператор for:
- •1.5. Оператор цикла типа "прогрессия" for
- •1.6. Основные правила и порядок выполнения оператора цикла for:
- •Оператор цикла со спецификацией, заданной скалярным выражением
- •1.7. Оператор цикла while
- •1.5.4.1. Оператор цикла while
- •1.5.4.3. Оператор цикла while
- •1.5.5.4. Оператор цикла while
- •1. Цикл с предусловием:
- •1.5.5.5. Основные правила использования и порядок выполнения оператора цикла while:
- •1.5.5.6. Пример № 1
- •1.8. Оператор цикла do...While
- •1.5.5.1. Оператор цикла do while
- •1.5.5.2. Оператор цикла с постусловием do
- •1.5.5.3. Оператор цикла do while
- •1.5.5.4. Оператор цикла do-while
- •2. Цикл с постусловием:
- •1.9. Табулирование функций
- •1.10. Вычисление конечных сумм и произведений
- •1.11. Правила организации циклических алгоритмов
- •1.12. Операторы перехода и их использование в циклах
- •1.12.1. Оператор прерывания циклов break
- •1.Break – оператор прерывания цикла.
- •1.12.2. Оператор перехода к следующей итерации цикла continue
- •Оператор продолжения continue для циклов do, while, for
- •1.12.3. Оператор перехода goto
- •1.12.4. Оператор возврата из функции return
- •Замечание:
- •2. Задание
- •2.1. Изучить теоретические сведения
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Табуляция неразветвляющейся функции
- •2.4.1.1. Условие задания
- •Варианты заданий
- •2.4.2. Задание 2. Табулирование разветвляющейся функции
- •2.4.2.1. Условие задания
- •2.4.3. Задание 3. Табулирование разветвляющейся функции
- •2.4.3.1. Условие задания
- •2.5. Задания для дома
- •2.5.1. Задание 1. Табулирование неразветвляющейся функции в равноотстоящих точках
- •2.5.1.1. Условие задания
- •2.5.2. Задание 2. Табулирование разветвляющейся функции в равноотстоящих точках
- •2.5.2.1. Условие задания
- •2.5.2.2.Пример программы табулирования функции
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие циклического вычислительного процесса 2
1.5.5.2. Оператор цикла с постусловием do
Общий вид оператора:
do
{
тело цикла;
}
while (условие);
Операторы тела цикла повторяются до тех пор, пока условие истинно.
1.5.5.3. Оператор цикла do while
Все представленные выше операторы циклов, так или иначе, проверяют условие перед выполнением цикла, благодаря чему существует вероятность, что операторы внутри цикла никогда не будут выполнены. Такие циклы называют циклы с предусловием. Однако бывают ситуации, когда целесообразно выполнять проверку условия после того, как будут выполнены операторы, стоящие внутри цикла. Это достигается путем использования операторов do while, которые реализуют цикл с постусловием. Следующий пример демонстрирует реализацию такого цикла.
const int secret_code = 13;
int code_ent;
do
{
printf("Введите секретный код: ");
scanf("%d",&code_ent);
}
while(code_ent != secret_code);
Из приведенного примера видно, что цикл с постусловием работает до тех пор, пока истинно условие, т.е. в данном случае пока значение введенного кода будет отличаться от значения секретного кода. Также следует обратить внимание на то, что после ключевого слова while должна стоять точка с запятой. При реализации данного цикла можно использовать составные условия, подобно циклу while, а также принудительно выходить из цикла с помощью оператора break.
Язык С поддерживает три варианта циклов.
2. Цикл с постусловием:
do тело цикла while (условие)
отличается от цикла с предусловием тем, что здесь вначале выполняется тело цикла, затем вычисляется заданное условие. Повторное выполнение тела цикла происходит до тех пор, пока указанное условие не окажется ложным. При использовании цикла с постусловием тело цикла всегда будет выполнено по крайней мере один раз.
Блок-схема цикла с постусловием представлена на рис. 4.1, б.
Рис. 4.1. Схемы выполнения операторов циклов: б — оператор do... while;
1.5.5.4. Оператор цикла do-while
Оператор цикла do-while является оператором цикла с постусловием, так как в нем анализ конца цикла производится после операторов тела цикла. Он используется, как и оператор while, когда количество итераций цикла заранее неизвестно и определяется в процессе выполнения цикла.
Особенностью оператора является выполнение тела цикла хотя бы один раз.
Общий вид оператора:
do S while (b );
Здесь S – простой или составной оператор – тело цикла. Он должен включать рабочую часть цикла и операторы изменения операндов выражения b (подготовки данных для очередного шага цикла); b – выражение любого типа, например, логическое, приводимое к арифметическому типу, определяющее условие повторения цикла.
Оператор цикла do-while выполняется по схеме цикла с постусловием, изображенной на рис. 10.1б.
Пример. Найти сумму первых N членов ряда
Решение. Введем обозначения: C – сумма ряда, U – произвольный член ряда. Сумму вычислим в цикле как нарастающую сумму: C = C + U. Для вычисления значения очередного члена ряда достаточно значение предыдущего члена ряда умножить на , т.е.
Полученная формула называется рекуррентной. Она позволяет вычислить любой член ряда, если известен первый член ряда.
К моменту исполнения первой итерации цикла значения C и U должны быть определены:
C = 0;
Параметром цикла пусть будет переменная k. Параметр k должен изменяться от 1 до N с шагом 1. Выражение C = C + U должно быть выполнено хотя бы один раз (для N=1 – один раз; для N=2 – два раза и т. д.), поэтому для вычисления суммы следует использовать цикл с постусловием.
Графическая схема алгоритма приведена на рисунке 10.5.
Рисунок 9.5. Графическая схема алгоритма