Структура повторения for.

Оператор break.

Для досрочного выхода из цикла в теле оператора while и do while может использоваться оператор break. Он располагается внутри цикла, чтобы при определённых условиях закончить цикл. После выполнения оператора break выполняются операторы, следующие за циклом.

Рассмотрим следующий пример:

#include <iostream.h>

void main()

{

int k;

char ans;

do

{cout<<”С++ -отличный язык\n”;

cout<<”Введите 0 для выхода из цикла\n”;

cin>>k;

if(k==0)

break; // выход из цикла

cout<<”Повторить цикл? (N/Y)\n”;

cin>>ans;

}

while((ans==’Y’||(ans==’y’));

cout<<”Конец программы\n”;

return 0;

}

Цикл for используется в тех случаях, когда известно число повторений. Структура цикла for записывается следующим образом:

For (инициализация; контрольное выражение; счётчик)

{ Блок из одного или более операторов С++;

}

Когда структура for начинает выполняться, управляющая переменная объявляется и ей задаётся начальное значение. Счётчик вычисляется при каждом повторении цикла, обычно это инкремент или декремент переменной. Результат контрольного выражения рассматривается как истина или ложь и определяется, должно ли тело цикла выполняться ещё раз. Цикл продолжается, если условие истинно, в противном случае цикл заканчивает свою работу и управление передаётся оператору, следующему за for. Оператор for – это цикл с предусловием.

for (int counter=1; counter<=10; counter++)

cout<< counter<<endl;

 

 
 


Инициализация

counter=1

 
 


Проверка

контрольного

выражения true

counter<=1 cout<< counter counter++

 

 
 


false Тело цикла Изменение

управлящей

переменной

Если тип управляющей переменной задаётся в заголовке цикла for перед именем переменной, то управляющая переменная может использоваться только в теле структуры for, т.е. значение управляющей переменной будет неизвестным вне структуры for. Это ограниченное использование имени управляющей переменной называют областью действия переменной, определяющей, где она может быть использована в программе.

Пример: дано натуральное число n. Вычислить сумму и распечатать

S=(1/sin1 +1/(sin1+sin2)+…+1/(sin1+sin2+…+sin(n)))

#include<iostream.h>

#include<math.h>

void main()

{

float i,n,r;

double s;

s=r=o;

cout>>”Введите n\n”;

cin>>n

for (I=1; I<=n; i++)

{r+=sin(i);

s+=1/r;

}

cout<<”S=”<<s<<endl;

cout<<n;

return ;

}

Пример: Даны действительные числа а и b (а<b) и натуральное число n, функция y=x+cos(x), определённая на отрезке [a,b]. Для значений аргументов x=a+i*n (i=0,1,2,..n), h=(b-a)/n. Вычислить значение функции. Распечатать таблицу значений х и соответствующих значений у.

#include<iostream.h>

#include<math.h>

void main()

{

float a,b,h,n,I;

double x,y;

cout<<”Введите a,b,n\n”;

cin>>a>>b>>n;

h=(b-a)/n;

cout<<”x”<<” “<<”y”<<endl;

for (i=0; i<=n; i++)

{

x=a+i*h;

y=x+cos(x);

cout<<x<<” “<<y<<endl;

}

{