1-mavzu: algoritmlar reja: Algoritmlarning xossalari. Algoritmlarning turlari. Tayanch so‘z va iboralar



Download 3,29 Mb.
bet28/72
Sana11.03.2023
Hajmi3,29 Mb.
#918066
1   ...   24   25   26   27   28   29   30   31   ...   72
Bog'liq
Ma\'ruzalar

Shart Operatori (?:) yoki Uchlik Operator
C++ agar-bo‘lsa-aks holda shaklidagi ma’lum ifodalarni qayta ishlovchi juda kuchli va qulay operatorga ega. Shart operatori so‘roq (?) va ikki nuqta (:) belgilaridan iborat. U shuningdek, uchta qiymat bilan ishlagani uchun uchlik operator ham deb nom olgan. Shart operatorining umumiy ko‘rinishi quyidagicha:
? : ;
yoki
1-ifoda ? 2-ifoda : 3-ifoda;
Bu yerda 1-ifoda hisoblanadi. Agar u rost bo‘lsa, shartli ifoda 2-ifoda qiymatini qabul qiladi va yolg’on bo‘lsa, shartli ifoda qiymati sifatida 3-ifoda olinadi. Bu 8.1-rasmda tasvirlangan:

Masalan,
int x,y,max;
cout << "Ikkita butun son kiriting\n";
cin>>x>>y;
max = (x>y) ? x : y;44

Dastlab x > y ifodasi hisoblanadi. Agar x ning qiymati y ning qiymatidan katta bo‘lsa, u holda x ning, aks holda y ning qiymati max ga o‘zlashtiriladi. Shart operatoridan foydalanishda yagona cheklov shuki, so‘roq (?) va ikki nuqta (:) belgilaridan so‘ng faqat bittadan ifoda ishlatishingiz mumkin.
Masalan,
int yosh;
cout << "Yoshingizni kiriting\n";
cin >>yosh;
(yosh> = 18) ? cout<< "\nSiz ovoz berishingiz kerak\n" : cout << "\nSiz ovoz bera olmaysiz\n";
Shuni esda tutish lozimki, shartli operator boshqa operatorlarga nisbatan quyi ustunlik darajasiga ega va u ba’zi holatlarda kutilmagan natijalarga olib kelishi mumkin.
Masalan,
int a,b,c;
cout << "Ikkita butun son kiriting\n";
cin>>a>>b;
c = a - b > 0 ? 10 : 5;
Bu kodda biz a dan b>0 ning rost yoki yolg’on qiymatiga qarab 10 yoki 5 qiymatni ayirishga harakat qildik. Ammo u biz hohlagan usul bilan bajarilmaydi. U quyidagicha tushuniladi:
c = (a - b) > 0 ? 10 : 5;
chunki '–' arifmetik operatori > va ? : lardan yuqori ustunlik darajasiga ega.
Shunday ekan, biz kodni quyidagicha yozishimiz kerak:
c = a - (b>0 ? 10 : 5);
Shart operatorini shuningdek, quyidagicha tushunish mumkin:
kattasi = (x >y ? (x > z ? x : z): (y > z ? y : z));
Bu yerda x>y shartning rost qiymatida (x > z ? x : z) ifoda hisoblanadi; aks holda (y > z ? y : z)) ifoda hisoblanadi.45
Shartli operator ifodaning chap tomonini ifodalaydi. ?: shartli operatorning natijasi lvalue bo‘lib, shu turdagi ikki variant (variantning rost qismi va variantning yolg’on qismi) qiymatidan birini oladi. Yuqorida aytib o‘tilganidek, lvalue qiymat o‘zlashtirishi mumkin bo‘lgan ifodadir. Bunda o‘zlashtirish operatorining chap tomoni mavjud bo‘lishi kerak. Bu qiymatning shartli ifodaga o‘zlashtirilishi mumkinligini bildiradi. Masalan,
int a,b;
float num;
cout<<"Son kiriting\n";
cin >> num;
num < 100 ? a : b = 25;
Bu yerda a yoki b o‘zgaruvchi num<100 shartiga ko‘ra initsalizatsiya qilinadi, ya’ni qiymat oladi. Agar num<100 bo‘lsa, a ga 25, aks holda b ga 25 soni o‘zlashtiriladi.
Yuqorida ta’kidlanganidek, o‘zgarmas qiymatlar va o‘zgarmas identifikatorlar lvaluega ega bo‘lmaydi va faqatgina o‘zlashtirish operatorining o‘ng tomonida hosil bo‘ladi. Quyidagi dastur kodi boshqalaridek ishlamaydi.
int a;
const int b = 10; // b lvalue emasligiga e’tibor bering
float num;
cout<<"Son kiriting\n";
cin >> num;
num<100 ? a : b=25; // = ning chap tomonida b ning ishtirok etishi noto‘g’ri
Ba’zi rost yoki yolg’on shartlarga asoslangan dastur qismlarini bajarish zarurati tug’iladi. Yuqorida eslatilganidek, C++ da ixtiyoriy nolga teng bo‘lmagan rost qiymat manfiy sonlarni o‘z ichiga oladi. 0 (nol) doimo yolg’on hisoblanadi. C++ da if va switch ifodalari tanlov asosida bajariladigan dastur qismida foydalaniladi. Shart operatori (?:) maxsus vaziyatlarda if … else ifodasi o‘rnida ishlatiladi.

Download 3,29 Mb.

Do'stlaringiz bilan baham:
1   ...   24   25   26   27   28   29   30   31   ...   72




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