Сайфиев ж. Ф. С++ тилига кириш услубий қўлланма
Download 3.45 Mb.
|
cpp buxoro
- Bu sahifa navigatsiya:
- Мантиқий кўпайтириш оператори
Муносабат операторлари.Бундай операторлар иккита қийматни тенг ёки тенг эмаслигини аниқлаш учун ишлатилади. Таққослаш ифодаси доимо true (рост) ёки false (ёлғон) қиймат қайтаради. Муносабат операторларининг кўлланилишига оид мисол 4.1. жадвалда келтирилган. 4.1.жадвал. Муносабат операторлари.
if oператориОдатда дастур сатрма–сатр тартиб билан бажарилади. If оператори шартни текшириш (масалан, икки ўзгарувчи тенгми) ва унинг натижасига боғлиқ равишда дастурни бажарилиш тартибини ўзгартириш имконини беради. If операторининг оддий шакли қуйидаги кўринишдадир: if (шарт) ифода; Қавс ичидаги шарт ихтиёрий ифода бўлиши мумкин. Агарда бу ифода false қийматини қайтарса ундан кейинги ифода ёки блок тушириб қолдирилади. Агарда шарт true қиймат қайтарса навбатдаги ифода бажарилади. Қуйидаги мисолни қараймиз: If (kattaSon>kichikSon) KattaSon=kichikSon; Бу ерда kattaSon ва kichikSon ўзгарувчилари таққосланаяпти. Агарда kattaSon ўзгарувчиси қиймати катта бўлса, бу навбатдаги қаторда унга қиймат сифатида kichikSon ўзгарувчисининг қиймати ўзлаштирилади. if операторида фигурали қавс ичига олинган ифодалар блокини ҳам ишлатиш мумкин. if (шарт) { - ифода - ифода - ифода } Қуйида ифодалар блокининг қўлланилишига оид мисол келтирилган if(kattaSon>kichikSon) { kattaSon=kichikSon cout<<”kattaSon:”< Бу ҳолда kattaSon ўзгарувчисига нафақат kichikSon ўзгарувчиси ўзлаштирилаяпти, балки экранга бу ҳақида ахборот ҳам чиқарилаяпти. 4.3. – листинг. Муносабат операторининг қўлланилиши орқали тармоқланишга мисол // 4.3. – листингда муносабат оператори // билан биргаликда if инструкциясининг // кўлланилиши намойиш этилган # include int main( ) { int BuxoroGol, PaxtakorGol; cout<<“Buxoro komandasi kiritgan to`plar” << “sonini yozing:”; cin >> BuxoroGol; cout<<“Paxtakor komandasi kiritgan” << “to`plar sonini yozing:”; cin >> PaxtakorGol; cout << “\n”; if ( BuxoroGol>PaxtakorGol) cout << “Yashasin Buxoro!\n” if (BuxoroGol < PaxtakorGol) { cout << “Yashasin PaxtakorGol \n” cout << “Bugun Toshkentda bayram!\n”; } if (BuxoroGol==PaxtakorGol) { cout << “Durrangmi? Yo-oq? Bo`lishi”<< “ mumkin emas \n”; cout <<“Paxtakorning kiritgan to`plari” << “haqida ma`lumotni qaytadan yozing\n” cin >> PaxtakorGol; if (BuxoroGol>PaxtakorGol) { cout<<“Buxoro yutishini oldindan bilgan” <<“ edim! Shuning uchun qayta so`radim\n”; cout<< “Yashasin Buxoro!”; if (BuxoroGol { cout<<“Paxtakor yutishini oldindan bilgan” <<“ edim! Shuning uchun qayta so`radim\n”; cout<< “Yashasin Paxtakor!”; cout << “Bugun Toshkentda bayram!\n”; if (BuxoroGol==PaxtakorGol) cout<<“Qoyil! Haqiqatan ham during ekan\n”; } cout<<“\n Ma`lumotingiz uchun rahmat\n”; return 0; } НАТИЖА: Buxoro komandasi kiritgan to`plar sonini yozing:3 Paxtakor komandasi kiritgan to`plar sonini yozing:3 Durrangmi? Yo-oq? Bo`lishi mumkin emas Paxtakorning kiritgan to`plari haqida ma`lumotni qaytadan yozing: 2 Buxoro yutishini oldindan bilgan edim! Shuning uchun qayta so`radim Yashasin Buxoro! else калит сўзиДастурларда кўп ҳолларда бирор бир шартнинг бажарилишига (яъни бу шарт true қиймат қайтарса) боғлиқ равишда бир блок, унинг бажарилмаслигига асосан эса (яъни бу шарт false қиймат қайтарса) бошқа бир блокнинг бажарилиши талаб қилинади. 4.3. – листингда биринчи текшириш (BuxoroGol>PaxtakorGol) true қиймат қайтарса экранда бир хабар, false қийматида эса бошқа бир хабар чиқарилади. Бундай масалаларни юқорида кўрсатилган усул, яъни қатор шартларни текшириш учун бир нечта if операторини қўллаш орқали ҳал қилиш мумкин, лекин бу тушуниш учун бироз мураккаброқдир. Дастурнинг соддалигини таъминлаш учун else калитли сўзидан фойдаланиш мумкин. if (шарт) Ифода; else Ифода; 4.4. – листинг. else калитли сўзининг ишлатилиши. // 4.4. Листинг. If ва else калит сўзларини // ишлатилишига оид мисол # include int main() { int BirinchiSon, IkkinchiSon; cout << “Katta sonni kiriting: cin >> BirinchiSon; cout<<“\n Kichik sonni kiriting:”; cin >> IkkinchiSon; if (BirinchiSon > IkkinchiSon) cout << “\n Rahmat! \n”; else cout << “\n Ikkinchisi katta son-ku!”; return 0; } НАТИЖА: Katta sonni kiriting: 10 Kichik sonni kiriting: 12 Ikkinchisi katta son - ku! if оператори орқали мураккаб конструкцияларни ҳосил қилишif–else конструкциясида ифодалар блокида ихтиёрий операторларни ишлатишда ҳеч қандай чегара йўқ. Шу жумладан, ифодалар блоки ичида яна if–else операторларини ишлатиш мумкин. Бу ҳолда бир нечта if операторидан иборат ичма – ич конструкция ҳосил бўлади. if (1–шарт) { if (2–шарт) 1–ифода else { if (3–шарт) 2–ифода else 3–ифода } } else 4–ифода; Ушбу бир нечта if операторидан ташкил топган конструкция қуйидаги тартибда ишлайди: агарда 1–шарт ва 2–шарт рост бўлса 1–ифода бажарилади. Агарда 1–шарт рост ва 2–шарт ёлғон натижа қайтарса, у ҳолда 3–шарт текширилади ва агарда бу шарт рост бўлса 2–ифода, ёлғон бўлса эса 3–ифода бажарилади. Ва энг охири, агарда 1–шарт ёлғон бўлса 4–ифода бажарилади. Бундай мураккаб конструкцияга мисол 4.5 – листингда келтирилган. 4.5. – листинг. if оператори ички бўлган мураккаб конструкция // 4.5. – Листинг. If оператори ички // бўлган мураккаб конструкцияга мисол # include < iostream.h> { // Иккита сон киритамиз.Уларни BirinchiSon //ва IkkinchiSon ўзгарувчиларига beramiz //Агарда KattaSon киймати KichikSon // кийматидан катта бўлса катта сон //кичигига колдиксиз бўлинишини текшира- // миз. Агарда у колдиксиз бўлинса улар //тенг ёки тенг эмаслигини текширамиз. int BirinchiSon, IkkinchiSon; cout<<“Ikkita son kiriting.\n Birinchisi: ”; cin >> BirinchiSon; cout << “\n Ikkinchisi: cin >> IkkinchiSon;; cout << “\n\n; if (BirinchiSon>=IkkinchiSon;) if ( (BirinchiSon%IkkinchiSon)==0) { if (BirinchiSon==IkkinchiSon;) cout<< “Ular bir – biriga teng!\n”; else cout<< “Birinchi son ikkinchisiga”<< “karrali!\n”; } else cout<<“Ikkinchi son katta!\n” return 0; } НАТИЖА
Birinchisi: 9 Ikkinchisi: 3 Birinchi son ikkinchisiga karrali! Мантиқий операторларДастурлашда бир эмас балки бир нечта шартли ифодаларни текшириш зарурияти жуда кўп учрайди. Масалан, х ўзгарувчиси y ўзгарувчисидан, y эса ўз навбатида z ўзгарувчисидан каттами шарти бунга мисол бўла олади. Бизнинг дастуримиз мос амални бажаришдан олдин бу иккала шарт рост ёки ёлғонлигини текшириши лозим. Қуйидаги мантиқ асосида юқори даражада ташкил қилинган сигнализация системасини тасаввур қилинг. Агарда эшикда сигнализация ўрнатилган бўлса ВА кун вақти кеч соат олти ВА бугун байрам ЁКИ дам олиш куни БЎЛМАСА полиция чақирилсин. Барча шартларни текшириш учун С++ тилининг учта мантиқий оператори ишлатилади. Улар 4.2 – жадвалда келтирилган 4.2 – жадвал. Мантиқий операторлар
Мантиқий кўпайтириш операториМантиқий кўпайтириш оператори иккита ифодани ҳисоблайди, агар иккала ифода true қиймат қайтарса ВА оператори ҳам true қиймат қайтарди. Агарда сизнинг қорнингиз очлиги рост бўлса ВА сизда пул борлиги ҳам рост бўлса сиз супермаркетга боришингиз ва у ердан ўзингизга тушлик қилиш учун бирор бир нарса харид қилишингиз мумкин. Ёки яна бир мисол, масалан, if(x==5)&&(y==5) мантиқий ифодаси агарда х ва у ўзгарувчиларини иккаласининг ҳам қийматлари 5 га тенг бўлсагина true қиймат қайтаради. Бу ифода агарда ўзгарувчилардан бирортаси 5 га тенг бўлмаган қиймат қабул қилса false қийматини қайтаради. Мантиқий кўпайтириш оператори фақатгина ўзининг иккала ифодаси ҳам рост бўлсагина true қиймат қайтаради. Мантиқий кўпайтириш оператори && белги орқали белгиланади. Download 3.45 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling