- Топшириқ. Иккита бутун сонни киритинг ва улардан каттасини экранга чиқаринг.
- Ечим ғояси: Экранга биринчи сон чиқиши керак, агарда у иккинчи сондан катта бўлса, ёки иккинчи сон чиқиши керак, агарда биринчи сондан катта бўлса.
- Фарқли томонлари: амални бажарилиши бир неча шартларга боғлиқ (агар … ёки …).
- Агар алгоритм бажарилиш кетма-кетлиги бир нечта шартларга боғлиқ бўлса у тармоқланувчи деб аталади.
- Тармоқнинг тўлиқ кўриниши
` - void main()
- {
- int a, b, max;
- printf(«Иккита бутун сонни киритинг\n");
- scanf("%d%d", &a, &b );
- if (a > b) {
-
- }
- else {
-
- }
- printf(“Катта сон %d", max); }
- Шартли операторнинг тўлиқ кўриниши
- if ( шарт )
- {
- // агар шарт тўғри бўлса бажарилади
- }
- else
- {
- // агар шарт нотўғри бўлса бажарилади
- }
- if a > b {
- a = b;
- }
- else
- b = a;
- if ( a > b ) {
- a = b;
- else
- b = a;
- if ( a > b )
- a = b;
- c = 2*a;
- else
- b = a;
- Тармоқнинг тўлиқсиз формаси
- int main()
- {
- int a, b, max;
- printf(“Ikkita butun sonni kiriitn\n");
- scanf("%d%d", &a, &b );
- max = a;
- if (b > a)
-
- printf(«Катта сон %d", max);
- }
- Шарт операторининг тўлиқ кўриниши
- void main()
- {
- int a, b, max;
- printf("Иккита бутун сонни киритинг\n");
- scanf("%d%d", &a, &b );
- max = b;
- if ( ??? )
- ???
- printf(«Катта сон %d", max);
- }
- "4": Учта сонни киритинг ва улар ичидан энг каттасини топинг.
- масалан:
- Учта сонни киритинг:
- 4 15 9
- Энг катта сон 15
- "5": Бешта сонни киритинг ва улар ичидан энг каттасини топинг.
- масалан:
- Бешта сонни киритинг:
- 4 15 9 56 4
- Энг катта сон 56
- Масала: Ой тартиб рақамини киритинг ва шу ой кунларини чиқаринг.
- Ечим: Ой бўйича кунлар:
- 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<<“Hayvonlar nomini 1-harfini kiriting:\n”;
- c = getch();
- switch ( c ) {
- case 'а': cout<<"Аyiq”; break;
- case ‘b': cout<<“Bo’ri”; break;
- case ‘k': cout<<“Kiyik”; 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;
- }
- Масала (нотўғри киритилишдан ҳимояланиш)
- 4: Ой тартиб рақамини киритинг ва ундаги кунлар сонини, ҳамда киритишдаги хатоликлар сонини чиқаринг.
- Мисол:
- Ой тартиб рақамини киритинг : Ой тартиб рақамини киритинг :
- -2 2
- Ой тартиб рақамини киритинг : Бу ойда 28 кун бор.
- 11 Сиз 0 марта нотўғри киритдингиз.
- Бу ойда 30 кун бор.
- Сиз 1 марта нотўғри киритдингиз.
- 5: Ой ва кунлар тартиб рақамини киритинг, янги йилгача қанча кун қолганини чиқаринг.
- Мисол:
- Ой тартиб рақамини киритинг :
- 12
- Кунни киритинг:
- 25
- Янги йилгача 6 кун қолди.
- Топшириқ. Фирма 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");
- }
- Мураккаб шарт– бу шарт мантиқий амаллар билан боғланган бир нечта оддий шартлардан (муносабатлардан) ташкил топган. Булар:
- ! – инкор (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
- "4": Ой тартиб рақамини киритинг ва фасллар номини чиқазинг(аниқланг).
- Мисол:
- Ой тартиб рақамини киритинг:
- 4
- бахор
- "5": Киши ёшини киритинг (1 ёшдан 150 ёшгача) ва уни қуйидаги сўзлар билан чиқазинг “йил", “ёшда" ёки “ёш".
- Мисол:
- Ёшини киритинг: Ёшини киритинг :
- 24 57
- сиз 24 ёшдасиз Сиз 57 ёшсиз
Do'stlaringiz bilan baham: |