Ma’ruza 7 Takrorlash operatorlari. Boshqaruvni uzatish operatorlari Reja



Download 388,68 Kb.
Pdf ko'rish
bet3/8
Sana24.08.2021
Hajmi388,68 Kb.
#154981
1   2   3   4   5   6   7   8
Bog'liq
V3cGD2nzDIC5eddSIrZFX4Y8DDSI8elN (1)

 

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

i = 0;  

while (i <= 20)  

cout << i << " ";  



i = i + 5;  

cout << endl; 



Dastur qismi ishlashi natijasi: 

0 5 10 15 20 

Ayrim hollarda  qiymat berish operatori ko’rinishida kelishi mumkin. 

Bunda qiymat berish amali bajariladi va natija 0 bilan 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 

dasturda ushbu holat ko’rsatilgan: 

#include   

using namespace std; 

int main() 

int n,n2; 



cout << "Sonni kiriting(1..10): "; 

cin >> n; 

n++; 

while (n--, n2 = n * n , n>0) 



cout << " n=" << n << " n^2 = " << n2 << endl; 

return 0; 

Dasturdagi 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  dasturda  berilgan  o’nlik  sonning  ikkilik  ko’rinishini  chop  qilish 

masalasini echishda while operatorini qo’llash ko’rsatilgan. 

#include   

using namespace std; 

int main() 

int sanagich = 4;  



short son10, jarayon = 1; 


while (jarayon)  

   // cheksiz takrorlash 

cout << "O’nlik sonni kiriting(0..15) "; 



cin >> son10; 

cout << '\n' << son10  



<< "Sonining ikkilik ko’rinishi: "; 

while (sanagich) 

if (son10 & 8) 



 

//son10 & 00001000  

cout << '1'; 

else cout << '0'; 

son10 = son10 << 1; 

//razryadlarni chapga surish 

sanagich--; 

cout << '\n' ; 



cout << "Jarayonni to’xtasin(0), davom etsin(1): "; 

cin >> jarayon; 

sanagich = 4; 

return 0; 



Dasturda 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  ya’ni  to’rt  marta  bajariladi  va  boshqaruv  ichki 

takrorlash operatoridan chiqadi.  

while takrorlash operatori yordamida samarali dastur kodi yozishga yana bir 

misol bu - ikkita natural sonlarning eng katta umumiy bo’luvchisini (EKUB) Evklid 

algoritmi bilan topish masalasini keltirishimiz mumkin: 

#include   

using namespace std; 

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 EKUBi = " << a; 

return 0; 

Butun  turdagi  a  va  b  qiymatlari  oqimdan  o’qilgandan  keyin  toki  ularning 



qiymatlari    o’zaro  teng  bo’lmaguncha  takrorlash  jarayoni  ro’y  beradi. 

Takrorlashning  har  bir  qadamida  a  va  b  sonlarning  kattasidan  kichigi  ayriladi. 

Takrorlashdan  keyingi  ko’rsatma  vositasida  a  o’zgaruvchisining  qiymati  natija 

sifatida chop etiladi.  




Download 388,68 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish