Олдин қавс ичидаги бутун ифода ҳисобланади ва унинг қиймати ҳамма вариантлар билан солиштирилади. Бирор вариантга қиймат мос келса шу вариантда кўрсатилган оператор бажарилади. - Олдин қавс ичидаги бутун ифода ҳисобланади ва унинг қиймати ҳамма вариантлар билан солиштирилади. Бирор вариантга қиймат мос келса шу вариантда кўрсатилган оператор бажарилади.
- Агар бирор вариант мос келмаса default орқали кўрсатилган оператор бажарилади.
- Break оператори ишлатилмаса шартга мос келган вариантдан ташқари кейинги вариантдаги операторлар ҳам автоматик бажарилади.
- Default; break ва белгиланган вариантлар ихтиёрий тартибда келиши мумкин.
- Default ёки break операторларини ишлатиш шарт эмас. Белгиланган операторлар бўш бўлиши ҳам мумкин.
- Масала: Ой тартиб рақамини киритинг ва шу ой кунларини чиқаринг.
- Ечим: Ой бўйича кунлар:
- 28 кун – 2 (февраль)
- 30 кун – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь)
- 31 кун – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)
- Хосса: Ой тартиб рақамидан иккита эмас, балки бир нечта фарқли боғланиш танлаш керак.
- Маълум усуллар билан ечиш мумкинми?
- Бирорта ҳам вариант тўғри келмади
- int main()
- {
- int M, D;
- cout<<“Oy tartib raqamini kiriting:\n”;
- cin>>M;
- switch ( M ) {
- case 2: D = 28;
- case 4: case 6: case 9: case 11: D = 30;
- case 1: case 3: case 5: case 7:
- case 8: case 10: case 12:
- D = 31;
- default: D = -1;
- }
- if (D > 0)
- cout<<“Bu oyda ” <
- else cout<<“oyning raqami noma’lum”;
- }
- Бирорта ҳам вариант тўғри келмади
- Масала: Ҳарфларни киритинг ва бу ҳарфлардан фанларлар номини чиқазинг.
- Хосса: танлаш белгили ўлчам бўйича бўлади.
- void main()
- {
- char c;
- cout<<“fanlar nomini 1-harfini kiriting:\n”;
- c = getch();
- switch ( c ) {
- case 'а': cout<<"Аlgebra”; break;
- case ‘b': cout<<“Burgulash”; break;
- case ‘k': cout<<“Kimyo”; break;
- default: cout<<“Bilmayman!");
- }
- }
- ҳамма жойдан break ни олиб ташласа нима бўлади?
- Хоссалар:
- switch дан кейин ўзгарувчининг номи бўлиши мумкин ёки бутун типли арифметик ифода бўлиши мумкин (int, long)
- ёки символли (белгили) (char) тип бўлиши мумкин иккита бир хил қийматларни қўйиш мумкин эмас:
- switch ( i+3 ) {
- case 1: a = b; break;
- case 2: a = c;
- }
- switch ( x ) {
- case 1: a = b; break;
- case 1: a = c;
- }
- Мураккаб шарт– бу шарт мантиқий амаллар билан боғланган бир нечта оддий шартлардан (муносабатлардан) ташкил топган. Булар:
- ! – инкор (not, инкор қилиш, инверсия)
- && – ва (and, мантиқий кшпайтма, конъюнкция, шартлар бир вақтда бажарилади)
- || – ёки (or, мантиқий қўшиш, дизъюнкция, шартлардан хеч бўлмаганда биттаси бажарилади.)
- Оддий шарт (муносабат)
- < <= > >= == !=
- Мураккаб шартнинг бажарилиш тартиби:
- Қавс ичидаги ифода
- ! (инкор, инкор қилиш)
- <, <=, >, >=
- ==, !=
- && (ва)
- || (ёки)
- Мисол:
- 2 1 6 3 5 4
- if ( !(a > b) || c != d && b == a)
- {
- ...
- }
- a = 2; b = 3; c = 4;да рост ёки ёлғон
- !(a > b)
- a < b && b < c
- !(a >= b) || c == d
- a < c || b < c && b < a
- a > b || !(b < c)
- x нинг қандай қийматларида шарт рост бўлади:
- x < 6 && x < 10
- x < 6 && x > 10
- x > 6 && x < 10
- x > 6 && x > 10
- x < 6 || x < 10
- x < 6 || x > 10
- x > 6 || x < 10
- x > 6 || x > 10
- Топшириқ. Фирма 25 дан 40 ёшгача бўлга ходимларни олади. Номзоднинг ёшини киритинг ва белгиланг, фирмага тўғри келадими («тўғри келади" ёки «тўғри келмайди» экранга чиқаринг).
- Ўзига хослик: иккита шарт бирдан бажариладими? Текшириш керак.
- Машхур усуллар билан хал қилиш мумкинми?
- int main()
- {
- int x;
- printf(“Yoshni kiriting\n");
- scanf("%d", &x);
- if (x >= 25)
- if (x <= 40)
- printf(“to’g’ri keladi");
- else printf(“to’g’ri kelmaydi”);
- else
- printf(“to’g’ri kelmaydi");
- }
Назорат саволлари - тармоқланувчи алгоритм деганда нима тушунасиз?
- тармоқланувчи алгоритмни қандай турлари бор?
- Шартсиз операторининг номини айтинг?
- Шартли операторининг номини айтинг?
- Танлаш операторининг номи
- Қандай типдаги муносабат аммаллари ишлатилади ?
- int main()
- {
- int x;
- printf(“Yoshni kiriting\n");
- scanf("%d", &x);
- if ( x >= 25 && x <= 40 )
- printf(“to’g’ri keladi");
- else printf(“to’g’ri kelmaydi");
- }
- “1": Учта сонни киритинг ва улар ичидан энг каттасини топинг.
- масалан:
- Учта сонни киритинг:
- 4 15 9
- Энг катта сон 15
- "Ой тартиб рақамини киритинг ва фасллар номини чиқазинг(аниқланг).
- Мисол:
- Ой тартиб рақамини киритинг:
- 4
- бахор
- "4": "5": Киши ёшини киритинг (1 ёшдан 150 ёшгача) ва уни қуйидаги сўзлар билан чиқазинг “йил", “ёшда" ёки “ёш".
- Мисол:
- Ёшини киритинг: Ёшини киритинг :
- 24 57
- сиз 24 ёшдасиз Сиз 57 ёшсиз
Do'stlaringiz bilan baham: |