Alamiy matematika




Download 1,81 Mb.
Pdf ko'rish
bet17/33
Sana07.06.2024
Hajmi1,81 Mb.
#261447
1   ...   13   14   15   16   17   18   19   20   ...   33
Bog'liq
e6077933-4123-4774-8cff-1eae13c7f186

 
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: 


… 
for (int i=10; i<=20; summa+=i++) ; 
… 
Takrorlash operatori tanasi sifatida operatorlar bloki ishlatishini faktorialni 
hisoblash misolida ko‘rsatish mumkin: 
#include  
int main() 

int a; 
unsigned long fact=1; 
cout<<’’butun sonni kiriting:_’’; 
cin>>a; 
if ((a>=0)&&(a<33)) 

for (int i=1; i<=a; i++) fact*=i; 
cout<

return 0; 

Programma foydalanuvchi tomonidan 0 dan 33 gacha oraliqdagi son 
kiritilganda amal qiladi, chunki 34! Qiymati unsigned long uchun ajratilgan 
razryadlarga sig‘maydi. 
Masala.
Takrorlash operatorining ichma-ich joylashuviga misol sifatida 
raqamlari bir-biriga o‘zaro teng bo‘lmagan uch xonali natural sonlarni o‘sish 
tartibida chop qilish masalasini ko‘rishimiz mumkin: 
#include  
int main() 

unsigned char a2,a1,a0; // uch xonali son raqamlari
for (a2=’ 1’ ;a2<=’ 9’ ;a2++) //sonning 2-o‘rindagi raqami
for (a1=’ 0’ ;a1<=’ 9’ ;a1++) //sonning 1-o‘rindagi raqami 
for (a0=’ 0’ ;a0<=’ 9’ ;a0++) //sonning 0-o‘rindagi raqami


// 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. 

Download 1,81 Mb.
1   ...   13   14   15   16   17   18   19   20   ...   33




Download 1,81 Mb.
Pdf ko'rish