Alamiy matematika - bet 17

for
takrorlash operatori:
for
takrorlash operatorining sintaksisi quyidagi
ko‘rinishga ega:
takrorlash
shart
operator
1
operator
2
(false)
for (
1
>;
2
>;
3
>) ;
Bu operator o‘z ishini 1
> ifodasini bajarishdan boshlaydi. Keyin
takrorlash qadamlari boshlanadi. Har bir qadamda 2
> bajariladi, agar natija 0
qiymatidan farqli yoki true bo‘lsa, takrorlash tanasi - bajariladi
va oxirida 3
> bajariladi. Agar 2
> qiymati 0 (false) bo‘lsa, takrorlash
jarayoni to‘xtaydi va boshqaruv takrorlash operatoridan keyingi operatorga o‘tadi.
Shuni qayd qilish kerakki, 2
> ifodasi vergul bilan ajratilgan bir nechta
ifodalar birlashmasidan iborat bo‘lishi mumkin, bu holda oxirgi ifoda qiymati
takrorlash sharti hisoblanadi. Takrorlash tanasi sifatida bitta operator, jumladan
bo‘sh operator bo‘lishi yoki operatorlar bloki kelishi mumkin.
Misol uchun 10 dan 20 gacha bo‘lgan butun sonlar yig‘indisini hisoblash
masalasini ko‘raylik.
#include
int main()
{int Summa=0;
for (int i=10; i<=20; i++)
Summa+=i;
cout<<’’yig’indi=’’ <
return 0;
}
Programmadagi takrorlash operatori o‘z ishini, I takrorlash parametriga
(takrorlash sanagichiga) boshlang‘ich qiymat – 10 sonini berishdan boshlaydi va har
bir takrorlash qadamidan (itaratsiyadan) keyin uning qiymati bittaga oshadi (qavs
ichidagi uchinchi operator bajarilishini hisobiga). Har bir takrorlash qadamida
takrorlash tanasidagi operator bajariladi, ya’ni Summa o‘zgaruvchisiga 1 qiymati
qo‘shiladi. Takrorlash sanagichi i qiymati 21 bo‘lganda “i<=20” takrorlash sharti (0-
qiymati) bo‘ladi va takrorlash tugaydi. Natijada boshqaruv takrorlash operatoridan
keyingi cout operatoriga o‘tadi va ekranga yig’indi chop etiladi.
Yuqorida keltirilgan misolga qarab takrorlash operatorlarining qavs ichidagi
ifodalariga izoh berish mumkin:
1
> - takrorlash sanagichi vazifasini bajaruvchi o‘zgaruvchisiga
boshlang’ich qiymat berishga xizmat qiladi va u takrorlash jarayoni boshida faqat
bir marta hisoblanadi. Ifodada o‘zgaruvchi e’loni uchrash mumkin va bu
o‘zgaruvchi takrorlash operatori tanasida amal qiladi va takrorlash operatoridan
tashqarida «ko‘rinmaydi» (C++ Builder kopiilyatori uchun);
2
> - takrorlashni bajarish yoki yo‘qligini aniqlab beruvchi mantiqiy
ifoda, agar shart rost bo‘lsa, takrorlash davom etadi, aks holda yo‘q. Agar bu ifoda
bo‘sh bo‘lsa, shart doimo rost deb hisoblanadi;
3
> - odatda takrorlash sanagichning qiymatini oshirish (kamaytirish)
uchun xizmat qiladi yoki unda takrorlash shartiga ta’sir boshqa amallar bo‘lishi
mumkin.
Takrorlash operatorida qavs ichidagi ifodalar bo‘lmasligi mumkin, lekin
sintaksis ‘;’ bo‘lmasligiga ruxsat bermaydi. Shu sababli sodda ko‘rinishdagi
takrorlash operatori quyidagicha bo‘ladi:
for(;;) cout <<”Cheksiz takrorlash…’’;
Agar takrorlash jarayonida bir nechta o‘zgaruvchilarning qiymati sinxron
ravishda o‘zgarishi kerak bo‘lsa, 1
> va 3
> ifodalarida zarur
operatorlarni ‘,’ bilan yozish orqali bunga erishish mumkin:
for(int i=10 , j=2 ; i<=20 ; i++ , j=i+10)
{
…
}
Takrorlash operatorining har bir qadamida j va I o‘zgaruvchi qiymatlari mos
ravishda o‘zgarib boradi.
For operatorida takrorlash tanasi bo‘lmasligi ham mumkin. Masalan,
programma bajarilishini ma’lum bir muddatga «to‘xtab» turish zarur bo‘lsa, bunga
takrorlashni hech qanday qo‘shimcha ishlarni bajarmasdan amal qilishi orqali
erishish mumkin:
#include
int main()
{
int delay;
…
for (delay=5000; delay>0; delay--);// bo’sh operator
…
return 0;
}
Yuqorida keltirilgan 10 dan 20 gacha bo‘lgan sonlar yig‘indisini bo‘sh tanali
(bo‘sh operatorli) takrorlash operatori orqali hisoblash mumkin:
// raqamlarni o‘zaro teng emasligini tekshirish
if(a0!a1 && a1!=a2 && a0!=a2) //o‘zaro teng emas
cout<
return 0;
}
Programmada uch xonali sonning har bir raqami takrorlash operatorlari
yordamida hosil qilinadi. Birinchi, tashqi takrorlash operatori bilan 2-xonadagi
raqam (a2 takrorlash parametri) hosil qilinadi. Ikkinchi, ichki takrorlash operatorida
(a1 takrorlash parametri) son ko‘rinishining 1-xonasidagi raqam va nihoyat, unga
nisbatan ichki bo‘gan a0 parametrli takrorlash operatorida 0-xonadagi raqamlar
hosil qilinadi. Har bir tashqi takrorlashning bir qadamiga ichki takrorlash
operatorining to‘liq bajarilishi to‘g‘ri keladi.
|