Бу ерда хам шарти аввал текшириладиган цикл оператори каби қоидаларга амал қилинади, яъни шартли ифода қиймати 0 га тенг бўлган ҳолда do while цикли ўз функциясини тўхтатади. while цикли учун бўлганидек do while цикли учун хам қуйидаги циклдан чиқиш ҳолатларини келтириш мумкин:
Масалан : y=sinx функцияни ҳисоблаш дастурини тузиш керак бўлсин. Бу ерда h=0,1 деб олинсин.
#include #include #include main()
{float x=1, y; clrscr();
do
{y=sin(x);
printf(“x=%g y=%f\n”, x,y);
x+=0.1;}
while(x<=2);
getch()
}
2- misol.
#include main()
{
int n;
do
scanf(“%d”, &n);
while(n!=20);
}
Изох : дастур бажарилиши клавиатурадан 20 сонини киритгунча хисоблаш давом этади. Бу ерда != белгиси тенг эмас деган маънода ишлатилади.
forоператори whileоператори ёрдамида циклларни ташкил этишда 3 та зарурий амаллар: цикл ўзгарувчисига бошланғич қиймат бериш, ҳар бир итерацияда циклни давом этиш шарти бажарилишини текшириш ва цикл ўзгарувчиси қийматини ўзгартиришни бажаришимиз керак.
Масалан: y=cosx функциясини ҳисобланг. Бу ерда қадам, dx= 0,2.
# include # include # include main()
{ float x,y; clrscr();
for(x=2; x<=3; x+=0.2)
{y=cos(x); printf(“x=%g y=%g\n”, x,y);}
getch();
}
{Циклик жараёнлар}
#include #include using namespace std;
void main()
{ double p,s=0,f1,f2,n,m;
for(n=1;n<=4;n++)
{ p=1; for(m=1;m<=5;m++)
{f1=sqrt(abs(exp(m*log(n))+exp(n*log(m))));
f2=exp(m*log(n))+exp(n*log(m));
p=p*(f1/f2);
}
s=s+p;
}
cout<<"Natija : \n";
cout<<"s= "<}
forоператори циклни ишлаши учун зарур бўладиган учта операцияни ўзида бирлаштиради. Бу операцияларни қисқача қуйидагича характерлаш мумкин: бошланғич қийматни ўзлаштириш, шартни текшириш, цикл счётчигини қийматини ошириш. for оператори ифодасидаги қавснинг ичида шу уччала операцияни амалга оширувчи ифодалар ёзилади. Қавс ичидаги ифодалар нуқтали вергул орқали ажратилади.
forциклининг биринчи ифодаси цикл счётчигига бошланғич қийматни ўзлаштиради. Счётчик – тўғридан–тўғри for циклида эълон қилинадиган ва қиймат ўзлаштириладиган бутун сонли ўзгарувчидир. С++ да бу ўринда счётчикка қиймат берадиган ихтиёрий ифода ёзилишига имкон берилган. forциклининг иккинчи параметрида циклни давом этиш шарти аниқланади. Бу шарт whileконструкциясининг шарти бажарадиган вазифани амалга оширади. Учинчи параметрда эса цикл счётчиги қийматини ўзгартирувчи (оширувчи ёки камайтирувчи) ифода ёзилади. for циклидан фойдаланишга мисол. for циклининг қўлланилишига.
1.include< iostream. h>
int main()
for цикли дастурлашнинг кучли ва қулай инструментидир. forоператорида циклни ўзаро боғлиқ бўлмаган параметрлар (бошланғич қиймат ўзлаштириш, бажарилиш шарти ва қадам) ни қўлланилиши цикл ишини бошқаришда жуда яхши имкониятларни очиб беради.
for цикли қуйидаги кетма–кетликда ишлайди.
Цикл счетчигига бошланғич қиймат ўзлаштирилади.
Циклни давом этиш шартидаги ифода қиймати ҳисобланади.
Агарда шарт ифодаси true қиймат қайтарса олдин цикл танаси бажарилади, кейин эса цикл счётчиги устида берилган амаллар бажарилади.
Ҳар бир итерацияда 2 чи ва 3чи қадамлар такрорланади.