- •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. Оператор while:
while (Условие)
{ //Количество повторений любое.
Тело цикла
}
2. Оператор do…while:
do
{ //Количество повторений любое.
Тело цикла
}
while (Условие)
3. Оператор for:
for (объявление параметра цикла)
{ //Количество повторений фиксировано.
Тело цикла
}
Для принудительного завершение текущей итерации и цикла в целом. служат операторы break, continue, return, goto. Передавать управление извне внутрь цикла не рекомендуется. Использование оператора goto приводит к созданию запутанного, трудно читаемого кода, прозванного программистами "спагетти". Использование оператора goto среди программистов считается верхом неприличия. Чтобы избежать оператора goto, используют сложные условия повторения цикла.
1.5. Оператор цикла типа "прогрессия" for
Назначение. Организация многократного повторения произвольного фрагмента программы. Как правило, этот цикл используется, когда число повторений его известно заранее, и явно есть переменная величина, которая, изменяясь, составляет прогрессию. Она, как правило, является параметром цикла.
Оператор for является наиболее используемым по сравнению с другими операторами цикла, это замечание станет понятным в процессе изучения программирования на языке С++.
Оператор цикла for - оператор цикла с параметром и с предусловием. Используется, если заранее известно количество повторений тела цикла, начальные значения параметров цикла, условие повторения цикла, как изменяются параметры цикла.
Общий вид оператора цикла for:
for(p1; p2; p3) S;
Синтаксис.
for (выражение1; выражение-условие2; выражение3)
тело цикла;
Здесь
for(p1; p2; p3) - заголовок цикла.
S - простой или составной оператор языка С++ - тело или рабочая часть
цикла.
p1 - список операторов, разделенных запятой, инициирующих начальные значения (как правило) параметров цикла. Эти операторы выполняются один раз до начала выполнения рабочей части цикла. Областью действия переменных, объявленных в этой части цикла, является цикл.
p2 - список операторов и выражений, определяющих условие повторения цикла. Выполняется перед каждым выполнением тела цикла. При этом, если значение последнего выражения списка p2 истинно (!=0), то тело цикла выполняется, а если ложно (==0), происходит выход из цикла к следующему оператору программы.
p3 - список операторов и выражений изменения параметров цикла (подготовка данных для очередного шага цикла). Выполняется после каждого выполнения тела цикла.
Переменная, связанная с числом повторений цикла, значение которой изменяется от начального до конечного с постоянным шагом, называется параметром цикла, а цикл – цикл с параметром.
Здесь параметр цикла составляет прогрессию, и явно присутствует в записи заголовка цикла (так называется строка for(…)). «выражение1» задает начальное значение параметра цикла, «выражение2» задает условие завершения выполнения цикла, и является логическим, «выражение3» задает приращение параметра цикла. Тело цикла — это произвольная последовательность операторов, как правило, составной оператор. Первое и третье выражения могут состоять из нескольких, отделенных друг от друга запятой.
<выражение_1> и <выражение_3> могут состоять из нескольких выражений, разделенных запятыми. <выражение 1 > - задает начальные условия для цикла (инициализация ). <выражение-условие> -определяет условие выполнения цикла, если оно не равно 0, цикл выполняется, а затем вычисляется значение <выражения_3>. <3ыражение_3> - задает изменение параметра цикла или других переменных (коррекция) . Цикл продолжается до тех пор, пока <выражение-условие> не станет равно 0. Любое выражение может отсутствовать, но разделяющие их « ; » должны быть обязательно.
Выполнение. Перед входом в цикл, то есть до первого выполнения тела цикла однократно выполняется выражение1. Тело цикла выполняется многократно, пока «выражение2» (условие) не равно 0. Как только его значение становится равно 0, управление передается следующему по порядку оператору. Проверка условия завершения цикла происходит до выполнения тела цикла.
Блок-схема цикла, for показана на рис. 7.5.
Рис. 7.5. Схемы выполнения цикла for
Запомните:
проверка условия всегда выполняется в начале цикла, следовательно, тело цикла может ни разу не выполниться, если условие сразу будет ложным;
на месте выражение 1 и выражение 3 может использоваться несколько выражений, записанных через запятую, и выполняемых последовательно;
тело цикла for может быть пустым (такая форма оператора может быть использована для организации поиска).
тело цикла for может быть составным (обязательно использовать {});
оператор for может быть вложенным.
Пример 7.7
Вычислить и вывести квадраты чисел от 1 до 10.
for (i=1; i<=10; i++) printf("i*i=%d\n",i*i);
Здесь p1 - оператор i=1 (инициирует начальное значение параметра цикла i); p2 — выражение i<=10 (определяет условие повторения цикла); p3 - оператор i++ (оператор изменения параметра цикла).
S - оператор printf("i*i=%d\n",i*i); (рабочая часть цикла).
Пример 7.8
Вычислить сумму чисел от 1 до 15.
for (int i=1,q=0; i<=10; i++) q+=i;
Здесь p1 - список операторов, разделенных запятой. Первый из этих операторов (int i=1) объявляет параметр цикла i и инициирует его начальное значение и объявляет и инициирует начальное значение вычисляемой суммы q. Как и в первом примере p2 — выражение i<=10; p3 - оператор S - оператор
q+=i;
Пример 7.9
Вычислить сумму чисел от 1 до заданного числа n.
# include<stdio.h>
int main()
{ int i,n,s;
printf("Введите n");
scanf("%d",&n);
s=0;
for(i=1;i<=n;i=i+1) s=s+i; //или for(i=1;i<=n;s+=i++);
printf(" Сумма равна %d",s);
}