
- •Лабораторная работа 4 Структуры повторения
- •4.1. Оператор цикла while
- •4.2. Оператор цикла do. .While
- •Using namespace std;
- •Int main()
- •Return 0;
- •4.3. Оператор цикла for
- •Return 0;
- •Using namespace std;
- •Int main()
- •Return 0;
- •4.4. Операторы break и continue
- •Return 0;
- •4.5. Вложенные циклы
- •Using namespace std;
- •Int main()
- •Return 0;
- •4.6. Пример решения задачи. Вычисление синуса
- •Int main () {
- •4.7. Задачи для самостоятельного решения
Лабораторная работа 4 Структуры повторения
Структура повторения – это многократное повторение одних и тех же действий для решения задачи. На практике это реализуется либо с помощью рекурсии либо с помощью итерации. Итерация — это повторение одних и тех же действий определенное количество раз. Основным методом итерации является цикл.
Язык C++ предусматривает три типа структур повторения (цикла) в форме операторов for, while и do..while, которые позволяют программам многократно выполнять некоторые действия, пока условие (называемое условием продолжения цикла) остается истинной. Операторы for и while выполняют действие (или группу действий) в своем теле 0 или большее число раз. Оператор do..while по крайней мере один раз выполняет действие в своем теле.
4.1. Оператор цикла while
Оператор while имеет следующий синтаксис:
while (условие)
{
операторы;
}
Сначала проверяется условие, указанное в круглых скобках после ключевого слова while. Если условие истинно (возвращает значение true), то поочередно выполняются заключенные в фигурные скобки операторы, после чего условие проверяется снова. Так будет продолжаться до тех пор, пока условие не станет ложным (значение false): тогда цикл while завершится, а выполнение программы продолжится со следующей строки.
Листинг 4.1 демонстрирует оператор while. Условие, проверяемое в операторе while, может быть таким же сложным, как и любое другое выражение языка C++. Оно может состоять из нескольких выражений, объединенных логическими операторами && (AND — И), | | (OR — ИЛИ) и ! (NOT — HE).
Листинг 4.1. Пример использования оператора while
#include <iostream>
using namespace std;
int main()
{
unsigned short small;
unsigned long large;
const unsigned short MAXSMALL=65535;
cout << "Enter a small number: ";
cin >> small;
cout << "Enter a large number: ";
cin >> large;
cout << "small: " << small << "...";
// при каждой итерации проверять два условия
while (small < large && small < MAXSMALL)
{
// после каждых 5000 строк выводить точку
if (small % 5000 == 0)
cout << ".";
small++;
large-=2;
}
cout << "\nSmall: " << small << " Large: "
<< large << endl;
return 0;
}
Результат
Enter a small number: 2
Enter a large number: 100000
small: 2…….
Small: 33335 Large: 33334
Анализ
Это простая игра. Введите два числа. Затем меньшее число (small) начнет увеличиваться на единицу, а большее (large) — уменьшаться на два до тех пор, пока они не "встретятся". Цель игры: угадать число, на котором значения "встретятся".
В строках 9—12 осуществляется ввод значений. В строке 17 проверяются два условия продолжения цикла:
меньшее число меньше большего (small < large);
меньшее число меньше максимально допустимого (small < MAXSMALL).
В строке 20 вычисляется остаток от деления числа small на 5000, причем значение переменной small не изменяется. Если small делится на 5000 без остатка и в результате получается 0, то на экран выводится точка. Затем в строке 23 значение переменной small увеличивается на 1, а в строке 24 значение large уменьшается на 2.
Цикл завершается, когда хотя бы одно из условий перестает выполняться. После этого управление передается в строку 26, следующую за телом цикла.