Бундай ўзгармасларни ҳосил қилиш учун янги берилган маълумотлар типлари тузилади ва ундан сўнг бу типга тегишли ўзгармасли қийматлар тўплами билан чегараланган ўзгарувчилар аниқланади. Масалан, RANG номли саноқли тип деб эълон қилайлик ва унинг учун 5 та QIZIL, KUK, YASHIL, OQ, QORA қийматларини аниқлайлик.
Саноқли типларни ҳосил қилиш учун enum калитли сўзи ва ундан кейин тип номи ҳамда фигурали қавс ичида вергуллар билан ажратилган ўзгармас қийматлари рўйхати ишлатилади. Масалан,
enum RANG { QIZIL, KUK, YASHIL, OQ, QORA };
Бунда ифода иккита ишни бажаради:
RANG номли янги саноқли тип ҳосил қилади;
Қуйидаги белгили ўзгармасларни аниқлайди.
0 қиймат билан QIZIL;
1 қиймат билан KUK;
2 қиймат билан YASHIL ва ҳоказо;
Ҳар бир саноқли ўзгармас бирор бир аниқланган бутун қийматга мос келади.
Бошланғич ҳолатда ўзгармасларга 0 дан бошлаб қиймат берилади. Лекин, ихтиёрий ўзгармасга бошқа қийматни ўзлаштириш ҳам мумкин. Бунда уларга қиймат бериш ўсиш тартибида бўлиши лозим. Масалан,
enum RANG { QIZIL=100, KUK=200, YASHIL=300, OQ, QORA=500 };
кўринишда саноқли типни аниқласак QIZIL ўзгармаси 100 га, KUK – 200 га, Yashil – 300 га, OQ –301 га, QORA – 500 га тенг бўлади.
3.7. – листинг . Саноқли ўзгармасни қўлланиши
# include
int main( )
{
enum Kunlar{Dushanba, Seshanba, Chorshanba,
Payshanba, Juma, Shanba, Yakshanba}
int tanlash;
сout << “Kun nomerini kiriting (0-6):” ;
сin << tanlash;
if (tanlash=Yakshanba || tanlash = Shanba)
cout <<“\nBugun siz uchun dam olish kuni!”
<
else
cout << “\n Bugun siz uchun ish kuni.\n”;
return 0;
};
HATИЖА:
Kun nomerini kiriting(0-6): 6
Bugun siz uchun dam olish kuni!
САВОЛЛАР
Нима учун литералли ўзгармасга нисбатан белгили ўзгармасни ишлатиш яхшироқ?
Бутун сонли ва ҳақиқий типларни қандай фарқи бор?
unsigned short int ва long int типларининг ўзаро фарқи нимада?
const калитли сўзини #define директиваси ўрнига қўллашни афзаллиги нимада?
Дастур ишига “яхши” ва “ёмон” номланган ўзгарувчи қандай таъсир қилади?
ТАЯНЧ ИБОРАЛАР
Ўзгарувчи, ўзгарувчининг аниқланиши, хотирани резеврланиши,
Ишорали ва ишорасиз типлар, калитли сўзлар белгилар, махсус
белгилар, ўзгармаслар, литерал ўзгармаслар, белгили
ўзгармаслар, #define директиваси, сonst калитли сўзи, саноқли
ўзгармаслар.
АДАБИЁТЛАР
1. Жесс Либерти, “Освой самостоятельно С++ за 21 день”, Санкт Петербург 2000, 815 с.
Do'stlaringiz bilan baham: |