Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C++ 3ья л-я ИТ

.docx
Скачиваний:
16
Добавлен:
15.03.2015
Размер:
61.34 Кб
Скачать

for(часть1; часть2; часть3)

оператор ;

for(int i=1; i<=N; i++)

{printf("Введи x");

scanf("%f",&x) ;

y=x*x ;

printf("\n y=%f",y);

}

Пример 4.

printf("Для завершения

цикла введи x=0");

for(int x=1; x!=0; )

{printf("Введи x");

scanf("%d",&x) ;

y=x*x ;

printf("\n y=%d",y);

}

Бесконечный цикл

for(i=0; i<=5; )

printf("\n %d",i);

for(i=0; ;i++)

printf("\n %d",i);

for(;;)

Пример 5.

int main()

{

char ch;

for( ; ; )

{printf("Введи Y или N");

ch=getchar();

if (ch=='N') break;

……………………

}

return 0;

}

while

do…while

while(условие) { тело цикла }

do { тело цикла } while(условие);

Пример (while).

float a=10;

while(a>=0.1)

{a=a/2;

printf("\n a=%f",a);

}

Замечания.

1. while(a>=0.1); //бесконечный

//цикл

  1. если a<0.1

  2. если вместо a=a/2,

a=a*2, то бесконечный цикл

Пример (do…while).

float a=10;

do

{a=a/2;

printf("\n a=%f",a);

}

while(a>=0.1) ;

Сумма ряда

S=b1+ b2+ b3+…+ bn

∑(i+x)2=(1+x)2+(2+x)2+(3+x)2+….

i=1

S = b1

i=2

S = b1+b2

S=S+b2

i=3

S = b1+b2+b3

S=S+b3

i=4

S = b1+b2+b3+b4

S=S+b4

• • •

• • • • • • • • • • • • • • • • • • • • • •

• • • • • • • • • • • •

i

S=S+bi

Для i=1 S=S+b1, если S=0.

Пример.

x=2.3 N=10

while

int main()

{

const int N=10;

float x=2.3, S=0;

int i=1;

while(i<=N)

{S=S+1/(x+i);

i++; // !! подготовка

// к следующему шагу

} // конец цикла while

printf("S=%f",S);

return 0;

}

do…while

i=1; S=0;

do

{S=S+1/(x+i) ;

i++ ;

}

while(i<=N) ;

Произведение

p=d1·d2·d3·…·dN

∏(i+x)=(1+x)(2+x)(3+x)…

i=1

p = d1

i=2

p = d1d2

p=pd2

i=3

p = d1d2d3

p=pd3

i=4

p = d1d2d3d4

p=pd4

• • •

• • • • • • • • • • • • • • • • • • • • • •

• • • • • • • • • • • •

i

p=pdi

Для i=1 p=pb1, если p=1.

Пример.

x=7.1

int main()

{

const int N=10;

int i=1;

float x=7.1, cx=cos(x);

float p=1;

while(i<=N)

{p=p*(cx+cos(i))/sqrt(i);

i++;

}

return 0;

}

Задача.

.

Начальное значение a для i=4

a = pow(x,4)/24;

далее

a =a* x / (i + 1);

#include<stdio.h> #include<math.h>

int main() { int i, n; double x, s, a;

printf(“n=”); scanf(“%d”, &n); printf(“x=”); scanf(“%lf”, &x); s = 0; a = pow(x, 4) / 24; for(i = 4; i <= n; i++) { s =s+a ; // s +=a; a=a*x/(i+1); // a *= x/(i+1); } printf(“s = %lf\n”, s); return 0; }

Задача.

z=(-1)i+1 a=1/(2i-1)

int main()

{float a, s=0, eps=0.001;

int i=1,z=1;

do

{

a=1.0/(2*i-1);

s=s+z*a;

printf("\n pi=%10.8f i=%d",4*s,i);

//подготовка следующего шага

z = -z; // ! z=1 или z=-1 ошибка

i++;

}

while(a>eps);

return 0;

}

eps=0.001 pi=3.14… i=500

eps=0.0001 pi=3.141… i=5000

Задача.

Вар 1.

int main()

{

float x, s=0;

printf("Для завершения

работы введи 0");

printf("\n Введи x");

scanf("%f ",&x);

while(x!=0) //while(x)

{s=s+x;

printf("\n Введи x");

scanf("%f ",&x);

}

printf("\n s=%f ",s);

return 0;

}

Вар 2.

int main()

{

float x, s=0;

printf("Для завершения

работы введи 0");

do

{ printf("\n Введи x");

scanf("%f ",&x);

s=s+x;

}

while(x!=0) ;

printf("\n s=%f ",s);

return 0;

}

Задача.

Вар 1.

int main()

{

int k, x; // % для целых

k=0; //нач. значение счётчика

for(x=1;x!=0; )

{printf("\n Введи x");

scanf("%d ",&x);

if (x%2==0) k=k+1;

}

printf("\n k=%d ",k-1);

return 0;

}

Вар 2.

k=0;

for( ; ; )

{// Ввод x

if (x==0) break ;

else

if (x%2==0) k=k+1;

}

printf("\n k=%d ", k);