You are on page 1of 78

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

Продовження 1
Загальний формат структури for
for (вираз1; вираз2; вираз3) {тіло циклу}

вираз1 ініціює змінну керування циклом,


вираз2 є умовою продовження циклу,
вираз3 вказує, як змінюється змінна керування
циклом.
Формат структури повторення while
у загальному випадку може бути записаний так:
while (вираз) {блок;}
Якщо вираз має значення, що не дорівнює нулю (true),
виконуються оператори тіла циклу (блок).
Після цього програма знову повертається до обчислення виразу.
Як тільки значення виразу стало збігатися з 0 (false), цикл
припиняється, і програма починає працювати з першого
оператора після структури while.
Формат структури повторення do/while
do {блок;} while (вираз);

де
блок– послідовність дій (тіло циклу)

вираз - умова закінчення циклу


Приклад
Вивести значення змінної b за формулою i+j, де і змінюється від 1
до 10, j змінюється від 1 до 5
#include <stdio.h>
int main()
{
int a,b,i,j; b=0;
for (i=1; i < =10; ++i)
{
for (j = 1; j <= 5; j++)
{
b=j+i;
printf(" b=%d",b);
}
printf("\n");
}
return 0;
}
Вивести значення змінної b за формулою i+j,
де і змінюється від 0 до 9,
j змінюється від 0 до 4
#include <stdio.h>

int main()
{
int a,b,i,j; b=0;
for (i=0; i < 10; ++i) {
for (j = 0; j < 5; j++) {
b=j+i;
printf(“ b=%d",b);
}
printf("\n");
}
return 0;
}
Приклад
Вивести значення змінної b за формулою b=b+i+j,накопичуючи
значення в змінній в кожному рядку
де і змінюється від 0 до 9,
j змінюється від 0 до 4
#include <stdio.h>

int main()
{ int a,b,i,j; b=0;
for (i=0; i < 10; ++i) {
//b=0;
for (j = 0; j < 5; j++) {
b+=j+i; //b=b+i+j;
printf("\t %d+%d=b=%d",i,j,b);
}
printf("\n");
}
return 0;
}
#include <stdio.h>
int main()
{ int a,b,i,j; b=0;
for (i=0; i < 10; ++i)
{b=0;
for (j = 0; j < 5; j++)
{ b+=j+i; //b=b+i+j;
printf("\t %d+%d=b=%d",i,j,b);
}
printf("\n");
} return 0;
}
ПРИКЛАДИ РІЗНИХ УМОВ
#include <stdio.h>
int main()
{ int i,x,j=5,y;
for (i=0; i<5,j>3; i++,j--)
{
y=i+j;
printf("%d+%d=y=%d \n",i,j,y);
}
printf(“Ok!!!");
return 0;
}
#include <stdio.h>
int main()
{ int i,x,j=13,y;
for (i=0; i<6,j>7; i++,j--)
{ y=i+j;
printf("%2d+%2d=y=%2d \n",i,j,y);
}
return 0;
}
#include <stdio.h>
int main()
{ int i,x,j=20,y;
for (i=0; j>7,i<6; i++,j--)
{ y=i+j;
printf("%2d+%2d=y=%2d \n",i,j,y);
}
return 0;
}
#include <stdio.h>
int main()
{ int i,x,j=20,y;
for (i=0;i<6,j>7; i++,j--)
{
y=i+j;
printf("%2d+%2d=y=%2d \n",i,j,y);
}
return 0;
}
#include <stdio.h>
int main()
{ int i,x,j=20,y;
for (i=0; j>7,i<6; i++,j--)
{ y=i+j;
printf("%2d+%2d=y=%2d \n",i,j,y);
}
printf("\nj=%d\n",j);printf("\n\n************************\n");
for (i=0;i<6,j>7; i++,j--)
{ y=i+j;
printf("%2d+%2d=y=%2d \n",i,j,y);
} }
{ int i,x,j=20,y;
for (i=0; j>7,i<6; i++,j--)
{ y=i+j;
printf("%2d+%2d=y=%2d \n",i,j,y);
} j=20;
printf("\nj=%d\n",j);printf("\n\n**************************\n");
for (i=0;i<6,j>7; i++,j--)
{ y=i+j;
printf("%2d+%2d=y=%2d \n",i,j,y);
}}
Приклад. Обчислити значення за
формулою
=
=(3*1++(

за допомогою всіх циклічних структур


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}

printf("\n\tresult = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
n=1;
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}
printf("\n\tResult = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n=1,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);
printf("\n\tResult_ = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}
printf("\n\tResult_1 = %d\n",y);
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}
printf("\n\tResult_2 = %d\n",y);
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);
printf("\n\tResult_3 = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}
printf("\n\tResult_1 = %d\n",y);
n=1;
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}
printf("\n\tResult_2 = %d\n",y);
n=1;
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);
printf("\n\tResult_3 = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}
printf("\n\tResult_1 = %d\n",y);
n=1;
y=0;
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}
printf("\n\tResult_2 = %d\n",y);
n=1;
y=0;
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);
printf("\n\tResult_3 = %d\n",y);
return 0;
}
ПРИКЛАДИ
Факториал
1!=1
2!=1*2=2
3!=1*2*3=6
4!=1*2*3*4=24
5!=1*2*3*4*5=120
6!=1*2*3*4*5*6=720
7!=1*2*3*4*5*6*7=5040
Обчислення факторіалу
#include <stdio.h>
#include <stdlib.h>

int main()
{
int t,N, f=1;
printf("\n\tinput N ");
scanf("%d",&N);
for(t=1;t<=N;t++)
f=f*t;
printf("\n\tfactorial=%d",f);

return 0;
}
Обчислити вираз
Cтруктура for
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//𝑓(𝑥)=∑1_(𝑘=1)^Т▒( 〖 (−1) 〗 ^𝑘 𝑥^𝑘)/((𝑘+2)(𝑘+1)!)

int main()
{
int t,N, f=1,T,k;
float y=0,x,q=0;
printf("\n\tinput T ");
scanf("%d",&T);
printf("\n\tinput x ");
scanf("%f",&x);
q=(-1)*pow(x,1)/((1+2)*(1*2));
y=y+q;
printf("\nq=%f",q);
for (k=2;k<=T;k++)
{f=1;
for(t=1;t<=k+1;t++)
f=f*t;
q=pow((-1),k)*pow(x,k)/((k+2)*f) ;
printf("\nq[%d]=%f",k,q);
y=y+q;
}
printf("\ny=%f",y);
printf("\n\n\n\n");
return 0;
}
for (k=1;k<=T;k++)
{
f=1;t=1;
while (t<=k+1)
{f=f*t;
t++;}
q=pow((-1),k)*pow(x,k)/((k+2)*f) ;
printf("\n q[%d]=%f",k,q);
y=y+q;

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

return 0;
}
printf("\nq[%d]=%.12f",k,q);
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//𝑓(𝑥)=∑1_(𝑘=1)^Т▒( 〖 (−1) 〗 ^𝑘 𝑥^𝑘)/((𝑘+2)(𝑘+1)!)

int main()
{
int t,N, f=1,T,k;
float y,x,q;
y=0;
printf("\n\tinput T ");
scanf("%d",&T);
printf("\n\tinput x ");
scanf("%f",&x);
for (k=1;k<=T;k++)
{
f=1;
for(t=1;t<=k+1;t++)
f=f*t;
q=pow((-1),k)*pow(x,k)/((k+2)*f) ;
printf("\n q[%d]=%f",k,q);
if (fabs(q)<0.0001) break;
y=y+q;

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

return 0;
}
for (k=1; ;k++)
{
f=1;
for(t=1;t<=k+1;t++)
f=f*t;
q=pow((-1),k)*pow(x,k)/((k+2)*f) ;
printf("\n q[%d]=%f",k,q);
if (fabs(q)<0.0001) break;
y=y+q;

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

return 0;
}
Структура while
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//𝑓(𝑥)=∑1_(𝑘=1)^Т▒( 〖 (−1) 〗 ^𝑘 𝑥^𝑘)/((𝑘+2)(𝑘+1)!)

int main()
{
int t,N, f=1,T,k;
float y,x,q;
y=0;

printf("\n\tinput x ");
scanf("%f",&x);
q=(-1)*x/((1+2)*(1*2)) ;
k=2;
y=y+q;
printf("\n q[1]=%f",q);
while (fabs(q)>0.0001)
{
f=1;t=1;
while (t<=k+1)
{f=f*t;
t++;}
q=pow((-1),k)*pow(x,k)/((k+2)*f) ;
printf("\n q[%d]=%f",k,q);
y=y+q;
k++;
}
printf("\n y=%f",y);
printf("\n\n\n\n");
return 0;
}
do/while
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//𝑓(𝑥)=∑1_(𝑘=1)^Т▒( 〖 (−1) 〗 ^𝑘 𝑥^𝑘)/((𝑘+2)(𝑘+1)!)

int main()
{
int t,N, f=1,T,k;
float y,x,q;
y=0;

printf("\n\tinput x ");
scanf("%f",&x);
q=(-1)*x/((1+2)*(1*2)) ;
k=2;
printf("\n q[1]=%f",q);

do
{
y=y+q;
f=1;
for(t=1;t<=k+1;t++)
{f=f*t;
}
q=pow((-1),k)*pow(x,k)/((k+2)*f) ;
printf("\n q[%d]=%f",k,q);
k++;
}while(fabs(q)>0.0001);
do/while
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//𝑓(𝑥)=∑1_(𝑘=1)^Т▒( 〖 (−1) 〗 ^𝑘 𝑥^𝑘)/((𝑘+2)(𝑘+1)!)

int main()
{
int t,N, f=1,T,k;
float y,x,q;
y=0;

printf("\n\tinput x ");
scanf("%f",&x);
k=1;
do
{
f=1;
for(t=1;t<=k+1;t++)
{f=f*t;
}
q=pow((-1),k)*pow(x,k)/((k+2)*f) ;
printf("\n q[%d]=%f",k,q);
y=y+q;
k++;
}while(fabs(q)>0.0001);
Приклад
Обчислити значення функції за формулою
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int i,j,n,K,T;
float S,P;
printf("Enter N");
scanf("%d",&n);
K=1; S=0;
for(i=1;i<=n;i++)
{ K=K*2; P=1;
for(j=1;j<=i;j++) { P=P*(j+1); }
S=S+(((K+1)*(K+1))/P);
}
printf ("\n\nS=%f",S);
getch ();

}
𝑛
𝑦 =∑ ¿ ¿ ¿ ¿
𝑖 =1

N=1 i=1 4.5 4.5


j=1

N=2 i=1,j=1 4.5

i=2, j=1 4.5+4.166=8.666


i=2,j=2

You might also like