
- •Лабораторная работа 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. Задачи для самостоятельного решения
// Суммирование целых чисел в операторе for
#include <iostream.h>
int main(int argc, char* argv[])
{
int sum =0;// инициализировать сумму
// суммировать четные числа от 2 до 20
for (int number =2; number <=20; number += 2)
{
sum+=number;
}
cout << "Sum is: " << sum << endl;
// усложненный вариант
//суммировать только четные числа от 1 до 21
sum = 0;
for (int number = 1; number <= 21; number ++)
{
if ((number%2)==0)
sum +=number;
}
cout << "\nSum is: " << sum << endl;
char response;
cin >> response;
Return 0;
26. }
Во втором примере (листинг 4.4) показано вычисление с помощью оператора for сложных процентов по вкладу. Постановка задачи следующая:
Некто внес $1000.00 на депозитный счет под 5% годовых. Предполагая, что весь доход оставляется на депозите, рассчитать и напечатать суммы денег на счете в конце каждого года в течение 10 лет. Использовать для расчета следующую формулу:
,
где p – первоначальный (основной) вклад, r – годовая процентная ставка, n – число лет, a – сумма на депозите к концу n – года.
Листинг 4.4. Вычисление сложных процентов с помощью for
#include <iostream> // устройства вывода и ввода
#include <iomanip> //манипуляторы для форматирования строк
#include <cmath> // функции математической библиотеки
Using namespace std;
Int main()
{
double amount; // сумма на счете в конце каждого года
double principal = 1000.0; // исходная сумма
double rate =.05; // процентная ставка
// вывести заголовки
cout<<"Year" << setw(21) << "Amount on deposit\n";
// setw – позволяет устанавливать ширину поля
// установить формат чисел с плавающей точкой
cout << fixed << setprecision (2);
// вычислить сумму на счете для каждого года
for (int year =1;year <=10 ;year++)
{
// вычислить новую сумму для указанного года
amount = principal *pow(1.0+rate, year);
// вывести год и сумму
cout << setw(4)<< year << setw(21)<<amount<< endl;
} // конец for
char response;
cin >> response;
Return 0;
27. } // конец main
4.4. Операторы break и continue
Иногда необходимо перейти к началу цикла еще до завершения выполнения всех операторов тела цикла. Для этого используется оператор continue. Однако в ряде случаев требуется выйти из цикла еще до проверки условия продолжения цикла. Для этого используется оператор break.
Оператор continue; осуществляет переход в начало цикла while,
do..while или for, пропуская все оставшееся тело цикла, т.е. переход к следующей итерации.
Оператор break; осуществляет выход из цикла while, do..while или for, пропуская все, вплоть до закрывающей фигурной скобки.
Различие между операторами continue и break состоит в том, что оператор continue осуществляет переход к началу цикла, а оператор break — к концу.
Пример:
while (условие)
{
if (условие2)
break;
// операторы;
}
Пример использования этих операторов приведен в листинге 4.5. Это несколько усложненный вариант уже знакомой игры. Теперь, кроме меньшего и большего значений, предлагается ввести шаг и конечное значение. Как и в предыдущем случае, за каждый цикл значение переменной small увеличивается на единицу, а значение переменной large уменьшается на два. Если меньшее число кратно значению переменной skip, то уменьшение на единицу (декремент) будет пропущено. Игра заканчивается, когда меньшее число превысит большее. Если значение переменной large совпадает с конечным значением (target), игра прерывается и выводится соответствующее сообщение. Цель игры состоит в том, чтобы угадать конечное число (target).
Листинг 4.5. Использование операторов break и continue