C++ 3ья л-я ИТ
.docx
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); //бесконечный
//цикл
-
если a<0.1
-
если вместо 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);