Har qanday dasturning strukturasi tarmoqlanish va tsikllar to’plamining kombinatsiyasidan iborat bo’ladi. Yuqorida dasturning tarmoqlanishi, if operatori orqali tashkil etilishini ko’rib chiqqan edik.
Tsikllarni tashkil etish Qator masalalarni echish uchun ko’pincha bitta amalni bir necha marotaba bajarish talab qilinadi. Amaliyotda bu rekursiyalar va iterativ algoritmlar yordamida amalga oshiriladi. Iterativ jarayonlar – bu operatsiyalar ketma-ketligini zaruriy sonda takrorlanishidir.
while operatori orqali tsikllarni tashkil etish while operatori yordamida tsikllarni tashkil etishda operatsiyalar ketma-ketligi tsiklning davom etish sharti «to’g’ri» bo’lsagina uning navbatdagi operatsiyalari amalga oshiriladi. Dasturda countero’zgaruvchisi qiymati toki 5 ga teng bo’lgunga qadar oshib borar edi. Bu whileoperatori yordamida amalga oshirilgan.
whileоператорини қўллаш. 1.include int main()
{
int counter=0; //Бирламчи кийматни ўзлаштириш
while(counter<5)//Цикл шартини текшириш
{
counter ++;
cout << “counter :’’ << counter << “. \n” ;
}
cout<<“Tsikl tugadi.Counter:”< return 0;
НАТИЖА:
counter : 1
counter : 2
counter : 3
counter : 4
counter : 5
Цикл тугади.Counter: 5.
while operatori orqali murakkab konstruktsiyalarni tuzish while operatori shartida murakkab mantiqiy ifodalarni ham qo’llash mumkin. Bunday ifodalarni qo’llashda && (mantiqiy ko’paytirish), || (mantiqiy qo’shish) , hamda !(mantiqiy INKOR) kabi operatsiyalardan foydalaniladi. Quyidagi listingda while operatori konstruktsiyasida murakkabroq shartlarni qo’yilishiga misol keltirilgan .
whilekonstruktsiyasidagi murakkab shartlar 1: include 2: int main()
3:{unsigned short кичик;
4:unsigned long катта;
5:const unsigned short MaxКичик=65535;
6:cout << “Кичик сонни киритинг:”;
cin >> кичик;
cout << “Катта сонни киритинг:”;
cin >> катта;
cout << “кичик сон:” << кичик << “…”;
//Xар бир итерацияда учта шарт текширилади.
while (кичик<катта && катта>0 &&
кичик< MaxКичик)
{
if(кичик%5000==0) //Xар 5000 сатрдан
//кейин нукта чиқарилади
cout<<“.” ;
kichik++;
katta-=2 ;
}
cout<<“\n кичик сон:”<<кичик<<“ катта сон :”
<<катта << endl ;
return 0 ;
}
НАТИЖА:
Кичик сонни кирит : 2
Катта сонни кирит : 100000
кичик: 2 ………
кичик сон :33335 катта сон : 33334
TAHLIL
Yuqorida keltirilgan dastur quyidagi mantiqiy o’yinni ifodalaydi. Oldin ikkita son – kichik va katta kiritiladi. Undan so’ng toki ular bir biriga teng bo’lmaguncha, ya’ni «uchrashmaguncha» kichik son birga oshiriladi, kattasi esa ikkiga kamaytiriladi. O’yinni maqsadi qiymatlar «uchrashadigan» sonni topishdir.
9 – 12 – catrlarda qiymatlar kiritiladi. 15 – satrda esa tsiklni davom ettirishning quyidagi uchta sharti tekshiriladi:
kichik o’zgaruvchisi qiymati kattao’zgaruvchisi qiymatidan oshmasligi.
kattao’zgaruvchisi qiymati manfiy va nolga teng emasligi.
17– satrda esa kichiksoni 5000 ga bo’lingandagi qoldiq hisoblanadi. Agarda kichik 5000 ga qoldiqsiz bo’linsa bu operatsiyaning bajarilishi natijasi 0 ga teng bo’ladi. Bu holatda hisoblash jarayonini vizual ifodasi sifatida ekranga nuqta chiqariladi. Keyin esa kichikqiymati bittaga oshiriladi, kattaqiymati esa 2 taga kamaytiriladi. Tsikl agarda tekshirish sharti tarkibidagi birorta shart bajarilmasa to’xtatiladi va boshqaruv 24 – satrga o’tadi.