- •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.7. Оператор цикла while
Назначение. Организация многократного повторения фрагмента программы.
Синтаксис:
while (Логическое_выражение)
{
// тело цикла;
}
Здесь тело цикла — один или несколько операторов, в общем случае составной оператор. «Логическое_выражение» — это выражение условия завершения цикла.
Выполнение. Тело цикла выполняется, когда Логическое_выражение имеет значение «истинно» (отлично от 0). Когда Логическое_выражение «ложно», управление передается оператору, стоящему за циклом.
Пример.
Найдем сумму n чисел натурального ряда
Параметр цикла i ∈ [1,n], Δi = 1. Тело цикла S = S + i.
{
int n, Sum = 0;
int i;
printf ("\nВведите число элементов прогрессии \n");
scanf ("%d", &n);
i = 1;
while (i <= n)
{
Sum += i; // очередное сложение
i++; // увеличение слагаемого
}
printf("Сумма арифметической прогрессии %d", Sum);
}
Поскольку значение суммы не зависит от порядка суммирования, то в стиле С алгоритм запишется так:
i = n;
Sum = 0;
while (i) // пока i отлично от 0
Sum += i – –;
Особенности. Проверка условия происходит до выполнения оператора, значит, возможно (для заведомо ложного выражения), что тело цикла не будет выполнено ни разу.
1.5.4.1. Оператор цикла while
Оператор цикла while называется циклом с предусловием. С помощью данного оператора реализуется цикл, который выполняется до тех пор, пока истинно условие цикла (рис. 7.ччч). Синтаксис данного оператора следующий:
while(<условие>)
{
<тело цикла>
}
Операторы тела цикла повторяются до тех пор, пока условие истинно.
Рис. 7.
В качестве выражения допускается использовать любое выражение языка С, а в качестве тела любой оператор, в том числе пустой или составной.
Схема выполнения оператора while следующая:
1. Вычисляется выражение.
2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.
3. Процесс повторяется с пункта 1.
Это важно
т.к. while – это цикл с предусловием (как и в for вначале происходит проверка условия), то возможно ситуация, при которой инструкции (операторы) тела цикла ни разу не будут выполнены; поэтому оператор while удобно использовать в ситуациях, когда тело оператора не всегда нужно выполнять;
внутри операторов for и while можно использовать локальные переменные, которые должны быть объявлены с определением соответствующих типов;
тело цикла while может быть составным (обязательно использовать {});
оператор while может быть вложенным.
Цикл с предусловием имеет следующий формат:
whi1e(<условие>) <тело цикла>;
Вычисляется условие. Если оно истинно, то выполняется тело цикла и осуществляется переход в начало цикла для очередной проверки условия.
Пример 3.3
Вычислить сумму чисел от 1 до заданного числа n.
# include<stdio.h>
void main()
{ int a,s;
printf("Введите n");
scanf("%d",&n); s=0;
a=1;
while(a<=n) { s=s+a;
a=a+1;
}
printf(" Сумма равна %d",s);
}
1. Оператор цикла с предусловием
while (выражение)
код цикла
организует повторение операторов кода цикла до тех пор, пока выражение истинно (не равно 0), если выражение = 0 (ложно) при первом входе, то код цикла не выполнится ни разу. Если код цикла состоит более чем из одного оператора, то организуется блок.