70
s = s + i
s = 0
4.2-сурет. Қосынды табу
алгоритмі
басы
i = 1,100,1
s
соңы
#include
main()
{ int s=0,i;
clrscr();
printf("1-ден 100-ге
дейінгі сандар қосындысы:");
for(i=1;i<=100;i++)
s+=i;
printf("s=%d",s);
printf("\nАяқтау үшін Enter
басыңыз\n");
getch();
}
2-мысал. Бҥтін сандардың кӛбейтіндісін ӛрнек-
тейтін n! мәнін, яғни n!=1*2*... n табу қажет.
Бҧл алгоритмді қҧру барысында for
операторының кері қарай есептейтін мҥмкіндігін
пайдаланайық (4.3-сурет).
#include
#include
main()
{ int p=1,i;
int n;
clrscr();
printf("n санын енгізіңіз
де, Enter басыңыз:");
scanf("%d",&n);
printf("1-ден n-ге дейінгі
сандар көбейтіндісі:");
for(i=n;i>1;i--)
p*=i;
printf("s=%d",p);
getch();
}
3-мысал.
/* х айнымалысы берілген алғашқы мәннен (х0) соңғы мәнге
(хk) дейін тұрақты қадаммен (dx) өзгеріп отырғанда, у
функциясының мәндерін анықтау */
#include
#include
main()
{ float x,y,x0,xk,dx;
clrscr();
i = n,2,- 1
p =1
p
n
енгізу
басы
p = p*i
соңы
4.3-сурет. Факториал табу
алгоритмі
71
printf ("х-тің алғашқы,соңғы мәндері : ");
scanf ("%f%f",&x0,&xk);
printf ("х-тің өзгеру қадамы dх: ");
scanf ("%f",&dx);
x=x0;
printf ("----------------------\n");
printf (" x | y\n");
printf ("----------------------\n");
for(x=x0;x<=xk;x+=dx)
{ y=-2.4*x*x+5*x-3; /* функция */
printf("%6.2f | %6.2f\n",x,y);
}
printf ("----------------------\n");
printf("\nАяқтау үшін Enter басыңыз");
getch ();
}
4-мысал.
10
1
2
2
i
i
y
қосындысын анықтау керек.
#include
#define n 10
main()
{
int i;
float s=0;
for(i=1,i<=n;i++)
s+=i*i/2;
printf (“нәтиже= %f\n”,s);
}
For цикл операторындағы жақша ішіндегі соңғы ӛрнек ретінде жалпы
дҧрыс жазылған кез келген ӛрнекті пайдалануға болады.
Мысалы:
for(d=0.1; d<50; d*=5)
printf(“%f”,d);
For цикл операторындағы жақша ішіндегі бір немесе бірнеше ӛрнектерді
жазбауға да болады, бірақ мҧндайда ; символын міндетті тҥрде ӛз орындарына
жазып отыру керек, мысалы:
x=2;
for(n=4; x<=100;)
x=x*n;
For цикл операторында қҧрама ӛрнектерді « , » операциясы арқылы жазуға
да болады, « , » операциясы қҧрама ӛрнекті ҧйымдастыру ҥшін қолданылады.
Осы операцияны қолданғанда, ҥтір арқылы бӛлектенген ӛрнектер сол жақтан оң
72
басы
s=0
k=1
жоқ
иә
k≤100
s=s+k
k=k+1
s
Соңы
4.5-сурет. Бҥтін сандарды қосу
алгоритмі
жаққа қарай есептеледі. « , » операциясы цикл операторының тиімді болуы
ҥшін жиі пайдаланылады. Мысалы:
main()
{
int x,y;
for(x=1,y=9;x<=10; x++,y--)
printf(“%d%d\n”, x,y);
}
Мҧнда алғашқы ; белгісіне дейін және соңғы ӛрнек арқылы осы цикл
операторында екі параметр мәні беріліп (x=1,y=9;), олар x,y айнымалыларын
ӛзгерту ҥшін қолданылып отыр.
4.2 While операторы
Орындалу саны алдын ала белгісіз болатын
циклдер қҧру кезінде шарттары алдын ала немесе
соңынан тексерілетін екі цикл тҥрі бар. Шарты
алдын ала тексерілетін цикл операторының
орындалу схемасы 4.4-суретте кӛрсетілген. Оның
жазылуы:
while (шарт-өрнек)
оператор;
Мҧнда шарт ретінде шартты ӛрнек немесе кез келген типтегі ӛрнек пайда-
ланылуы мҥмкін. Оператор қарапайым немесе қҧрама болуы мҥмкін. Ол қҧрама
оператор болса, онда операторлар жиыны жҥйелі жақшаға алынып жазылады.
While операторы орындалғанда, алдымен, жақша
ішіндегі ӛрнек есептеліп тексеріледі. Егер ӛрнек
мәні ақиқат болса немесе жалпы жағдайда 0-ге
тең болмаса, онда оператор атқарылады. Содан
соң жақшадағы ӛрнек тағы да есептеледі. Егер
ӛрнек мәні жалған болса (немесе жалпы жағ-
дайда 0-ге тең болса), онда while цикл операторы
ӛз жҧмысын аяқтайды.
Мҧнда шарт-ӛрнек қҧрамына кіретін айныма-
лы цикл ішінде ӛзгеріп отырады.
1-мысал (4.5-сурет).
/* 1-ден 100-ге дейінгі бүтін
сандар қосындысы */
#include
#include
main()
{
int s,k;
clrscr();
while
жоқ
иә
шарт?
оператор
4.4-сурет.Шарты алдын
ала тексерілетін цикл
Достарыңызбен бөлісу: |