While takrorlash operatori




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

 
While takrorlash operatori: 
while 
takrorlash operatori, operator yoki
blokni takrorlash sharti yolg’on (false yoki 0) bo‘lguncha takror bajaradi. U 
quyidagi sintaksisga ega: 
while ()
Agar  rost qiymatli o‘zgarmas ifoda bo‘lsa, takrorlash cheksiz bo‘ladi. 
Xuddi shunday, takrorlash boshlanishida rost bo’lib, uning qiymatiga 
takrorlash tanasidagi hisoblash ta’sir etmasa, ya’ni uning qiymati o‘zgarmasa, 
takrorlash cheksiz bo‘ladi. 
While takrorlash shartini oldindan tekshiruvchi takrorlash operatori 
hisoblanadi. Agar takrorlash boshida yolg‘on bo‘lsa, while operatori 
tarkibidagi  qismi bajarilmasdan cheklab o’tiladi. 
Ayrim hollarda  qiymat berish operatori ko‘rinishida kelishi mumkin. 
Bunda qiymat berish amali bajariladi va natija 0 solishtiriladi. Natija noldan farqli 
bo‘lsa, takrorlash davom ettiriladi. 
Agar rost ifodaning qiymati noldan farqli o‘zgarmas bo‘lsa, cheksiz takrorlash 
ro‘y beradi. Masalan: 
While(1); // cheksiz takrorlash 
Xuddi for operatoridek, ‘,’ yordamida  da bir nechta amallar sinxron 
ravishda bajarish mumkin. Masalan, son va uning kvadratlarini chop qiladigan 
programmada ushbu holat ko‘rsatilgan: 
#include  
int main() 

int n, n2; 


cout<<’’sonni kiriting(1..10):_’’; 
cin>>n; 
 
n++; 
while(n--,n2=n*n, n>0) 
 
cout<<’’n=’’<
return 0; 

 
Programmadagi takrorlash operatori bajarilishida n soni 1 gacha kamayib 
boradi. Har bir qadamda n va uning kvadrati chop qilinadi. Shunga e’tibor berish 
kerakki, shart ifodasida operatorlarni yozilish ketma-ketligining ahamiyati bor, 
chunki, eng oxirgi operator takrorlash sharti sifatida qaraladi va n qiymati 0 
bo‘lganda takrorlash tugaydi. 
Keyingi programmada berilgan o‘nlik sonning ikkilik ko‘rinishini chop qilish 
masalasini yechishda yechishda while operatorini qo‘llash ko‘rsatilgan. 
#include  
int main() 
{int sanagich=4; 
short son10, jarayon=1; 
while (jarayon) // cheksiz takrorlash 
{cout<<’’o’nlik sonni kiriting(0..15)_’’; 
cin>>son10; 
cout<<’/n’<
while (sanagich) 
{if(son10&8) //son10&00001000 
cout<<’1’; 
else cout<<’0’; 
son10=son10<<1 //razryadlarni 1o’rin chapga surish 
sanagich--; 

cout<<’\n’; 
cout<<’’jarayonni to’xtatish(0), davom ettirish(1):_’’; 
cin>>jarayon; 


sanagich=4; 

return 0; 

Programmada ichma-ich joylashgan takrorlash operatorlari ishlatilgan. 
Birinchisi, sonning ikkilik ko‘rinishini chop qilish jarayonini davom ettirish sharti 
bo‘yicha amal qiladi. Ichki joylashgan, ikkinchi takrorlash operatoridagi amallar har 
qanday, 0 dan 15 gacha bo‘lgan sonlar to‘rtta razryadli ikkilik son ko‘rinishida 
bo‘lishiga asoslangan. Unda kiritilgan sonning ichki, ikkilik ko‘rinishida uchinchi 
razryadida 0 yoki 1 turganligi aniqlanadi (‘’son10& 8’’). Shart natijasi natija 1 (rost) 
bo‘lsa, ekranga ‘1’, aks holda ‘0’ belgisi chop etiladi. 
Keyingi qadamda son razryadlari chapga bittaga suriladi va yana uchinchi 
razryaddagi raqam chop etiladi. Takrorlash sanagich qiymati 0 bo‘lguncha davom 
etadi (to‘rt marta) va boshqaruv ichki takrorlash operatoridan chiqadi. 
While takrorlash operatori yordamida samarali programma kodi 
yozishga bir misol bu – ikkita natural sonlarning eng katta umumiy bo’luvchisi 
(EKUB) Evklid algoritmi bilan topish masalasini ko’rishimiz mumkin: 
int main() 
{int a,b; 
cout<<’’A va B natural sonlar EKUBini topish.\n’’; 
cout<<’’A va B natural sonlarni kiriting:’’ 
cin>>a>>b; 
while (a!=b) a>b? a-=b:b-=a; 
cout<<’’bu sonlar 
cin<<’’ bu sonlar EKUBi=’’<
return 0; 

Butun turdagi a va b qiymatlari oqimdan o‘qilgandan keyin ular qiymatlari 
toki o‘zaro teng bo‘lmaguncha takrorlash jarayoni ro‘y beradi. Takrorlashning har 
bir qadamida a va b sonlarining kattasidan- kichigi ayriladi va ular tengligi 
tekshiriladi. Takrorlashdan keyingi ko‘rsatma vositasida a o‘zgaruvchisining
qiymati natija sifatida chop etiladi. 

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




Download 1,81 Mb.
Pdf ko'rish