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