С++ даги switch танлаш оператори. Айрим ҳолларда дастур тузиш жараёнида бир неча муқобил ечимларга эга бўлган ҳолатларга дуч келинади, бундай масалаларни ичма-ич жойлашган if шартли оператор ёрдамида дастурлаш мумкин, лекин бундай дастурларни тушуниб олишда қийинликларга дуч келинади ва йўл қўйилган мантиқий хатоларни топиш қийин бўлади, шунинг учун бундай жараёнларни соддалаштириш мақсадида С++ да swith операторидан фойдаланилади.
swith операторининг синтаксис ёзилиши қуйидагича бўлади:
switch (tanlov_ifodasi)
{
case qiymat1: operator(lar)1; break;
case qiymat2: operator(lar)2; break;
...
case qiymatN: operator(lar)N; break;
default: operator(lar)-default-uchun;
ДАСТУРЛАШ (С++) фанидан 5.2-лаборатория машғулотлари
} swith оператори алгоритмининг блок-схемаси қуйидагича бўлади:
1-машқ. Мазкур йил қайси хитой буржи белгисида эканлигини кўрсатувчи дастур тузамиз. Хитой буржи 12 йиллик цикл асосида бўлиб, ҳайвонлар номи билан келтирилган: сичқон, ҳўкиз, йўлбарс, қуён, аждаҳо, илон, от, қўй, маймун, хўроз, кучук ва чўчқа киради. Аҳамият беринг: Йил % 12 бурж белгисини билдиради. 1900 – йил сичқон йили бўлса, демак 1900 % 12 = 4 бу сичқон йили га тенг, қолганларини кейинги расм асосида ҳисоблаймиз.
Блок-схема:
Дастур коди:
1.#include 2.
3.using namespace std; 4.
5.int main()
6.{
// foydalanuvchi tomonidan yil raqami kiritilishi
cout << "Yilni kiriting: ";
int yil; 10. cin >> yil; 11.
12. // tanlash operatori ishlatilishi 13.
switch (yil % 12)
{
case 0: cout << "maymun" << endl; break;
case 1: cout << "x'roz" << endl; break;
case 2: cout << "kuchuk" << endl; break;
case 3: cout << "cho'chqa" << endl; break;
case 4: cout << "sichqon" << endl; break;
case 5: cout << "ho'kiz" << endl; break;
case 6: cout << "yo'lbars" << endl; break;
case 7: cout << "quyon" << endl; break;
case 8: cout << "ajdaho" << endl; break;
case 9: cout << "ilon" << endl; break;
case 10: cout << "ot" << endl; break;
case 11: cout << "qo'y" << endl; break;
}
29.
30.
return 0;
}
Натижа:
Юқоридаги дастур учун қуйидаги маълумотлар киритилганда натижани текширинг:
Kiriuvchi ma’lumot
|
Chiquvchi ma’lunot
|
1986
|
yo’bars
|
2018
|
kuchuk
|
2-машқ. Қуйида келтирилган ичма-ич if шартли оператори ёрдамида тузилган дастур кодини switch танлаш оператори ишлатилган ҳолдаги дастур кодига ўзгартиринг, (блок-схема ва дастур кодини тузинг).
int x = 1, a = 3; if (a == 1) x += 5; else if (a == 2) x += 10; else if (a == 3) x += 16; else if (a == 4) x += 34;
Блок-схема:
x+=5
x+=10
x+=16
x+=34
Дастур коди:
1.#include 2.
3.using namespace std; 4.
5.int main() 6.{ 7.
8. int x=1, a=3; 9.
10. // tanlash operatori ishlatilishi 11.
switch (a)
{
case 1: x += 5; break; 15. case 2: x += 10; break; 16. case 3: x += 16; break;
case 4: x += 34; break;
default: x = 0; 19. } 20.
cout << "x = " << x << endl;
return 0;
}
Натижа:
Юқоридаги дастур учун қуйидаги маълумотлар киритилганда натижани текширинг:
Kiriuvchi ma’lumot
|
Chiquvchi ma’lunot
|
a = 1
|
x = 6
|
a = 5
|
x = 0
|
Do'stlaringiz bilan baham: |