Программа бажарилишини бошқариш



Download 116 Kb.
bet3/7
Sana26.04.2022
Hajmi116 Kb.
#583697
TuriПрограмма
1   2   3   4   5   6   7
Bog'liq
CPP 2-bob(Operatorlar)

?: шарт оператори


Агар текширилаётган шарт нисбатан содда бўлса, шарт операторининг ?: қўринишини ишлатиш мумкин. Бу қурилма қуйидаги кўринишга эга:
<шарт ифода> ? <ифода>1 : <ифода>2;
if шарт операторига ўхшаш ҳолда бу шарт оператори қуйидагича амал қилади: агар <шарт ифода> рост (true) бўлса <ифода>1 бажарилади, акс ҳолда <ифода>2. Одатда ифодалар қийматлари бирорта ўзгарувчига ўзлаштирилади.
Мисол тариқасида иккита бутун сон максимумини топиш масаласини кўрайлик.
#include
using namespace std;
int main()
{
int a,b,c;
cout <<"a va b sonlar maksimumini topish dasturi! ";
cout<<"\n a - qiymatini kiriting: ";
cin>>a;
cout<<"\n b - qiymatini kiriting: ";
cin>>b;
c = (a>b) ? a : b;
cout <<"\n sonlar maksimumi: "<
return 0;
}
Программадаги шарт оператори қиймат бериш операторининг таркибига кирган бўлиб, a ўзгарувчи қийматини b ўзгарувчи қийматидан катталиги текширилади, агар шарт рост бўлса с ўзгарувчисига а ўзгарувчи қийматини, акс ҳолда b ўзгарувчи қийматини ўзлаштиради ва с қиймати чоп этилади.
?: операторининг қиймат қайтариш хоссасидан фойдаланган ҳолда, уни бевосита cout кўрсатмасига қўйиш орқали ҳам қўйилган масалани ечиш мумкин:
#include
using namespace std;
int main()
{
int a,b;
cout <<"a va b sonlar maksimumini topish dasturi! ";
cout<<"\n a - qiymatini kiriting: ";
cin>>a;
cout<<"\n b - qiymatini kiriting: ";
cin>>b;
cout <<"\n sonlar maksimumi "; cout << ((a>b) ? a : b);
return 0;
}
switch оператори
Шарт операторининг яна бир кўриниши switch тармоқланиш оператори бўлиб, унинг синтаксиси қуйидагича:
switch (<ифода>)
{
case <константа ифода> :
<операторлар гуруҳи>;
break;
case <константа ифода> :
<операторлар гуруҳи>;
break;

default :
<операторлар гуруҳи>;
}
Бу оператор қуйидагича амал қилади: биринчи навбатда <ифода> қиймати ҳисобланади, кейин бу қиймат case калит сўзи билан ажратилган <константа ифода> билан солиштирилади. Агар улар устма-уст тушса, ‘:’ белгисидан кейинги break калит сўзигача бўлган <операторлар гуруҳи> бажарилади ва бошқарув тармоқланувчи оператордан кейинги операторга ўтади. Агар <ифода> бирорта ҳам <константа ифода> ифода билан мос келмаса, қурилманинг default қномидаги операторлар гуруҳи бажарилади.
Мисол учун, кириш оқимидан “Жараён давом этилсинми? ” сўровига фойдаланувчи томонидан жавоб олинади. Агар ижобий жавоб олинса, экранга “Жараён давом этади!” хабари чоп этилади ва программа ўз ишини тармоқланувчи оператордан кейин давом эттиради, акс ҳолда “Жараён тугади!” жавоби берилади ва програма ўз ишини тугатади. Бунда, фойдаланувчининг ‘у’,’У’,’h’,’H’ жавоблари жараённи давом эттиришни билдиради, бошқа белгилар эса жараённи тугатишни англатади.
#include
int main()
{
char Javob =’ ’;
cout<<”Jarayon davom etsinmi? (‘y’,’Y’,’h’,’H’): ”
cin>> Javob;
switch (Javob)
{
case ‘Y’ :
case ‘y’ :
case ‘h’ :
case ‘H’ :
cout<<”Jarayon davom etadi!\n”;
break;
default :
cout <<”Jarayon tygadi!\n”;
return 0;
}
…. // Жараён
return 0;
}

Умуман олганда, тармоқланувчи операторда break ва default калит сщзларини ишлатиш шарт эмас. Лекин бу ҳолда операторнинг мазмуни бузилиши мумкин. Масалан, default қноми бўлмаганда, агар <ифода> бирорта <константа ифода> билан устма-уст тушмаса, оператор ҳеч қандай амал бажармасдан бошқарув навбатдаги операторга ўтиб кетади. Агар break бўлмаса программа “тўхтамасдан” кейинги қатордаги операторларни бажаришга ўтиб кетади. Масалан, юқоридаги мисолда break оператори бўлмаса ва жараённи давом эттириш ҳақида ижобий жавоб бўлган тақдирда экранга


Jarayon davom etadi!
Jarayon tygadi!
хабарлари чиқади ва программа ўз ишини тугатади (return 0 операторини бажариш натижасида).
Тармоқланувчи оператор санаб ўтилувчи турдаги константалар билан биргаликда ишлатилганда самарали бўлади. Қуйидаги программада ранглар гаммасини тоифалаш масаласи ечилган.
#include
int main()
{
enum Ranglar {Qizil, Tuq_sariq, Sariq, Yashil, Kuk, Zangori, Binafsha};
Ranglar Rang;

switch (Rang)
{
case Qizil:
case Tuq_sariq :
case Sariq :
cout << “Issiq gamma tanlandi.\n”;
break;
case Yashil :
case Kuk :
case Zangori:
case Binafsha :
cout << “Sovuq gamma tanlandi.\n”;
break;
default :
cout <<”Kamalak bunday rangga ega emas.\n”;
}
return 0;
}
Программа бажарилишида бошқарув тармоқланувчи операторга келганда, Rang қиймати Qizil ёки Tuq_sariq ёки Sariq бўлса, ‘Issiq gamma tanlandi’ хабари, агар Rang қиймати Yashil ёки Kuk ёки Zangori ёки Binafsha бўлса, экранга ‘Sovuq gamma tanlandi’ хабари, агар Rang қиймати санаб ўтилган қийматлардан фарқли бўлса, экранга ‘Kamalak bunday rangga ega emas” хабари чоп этилади ва программа ўз ишини тугатади.



Download 116 Kb.

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




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