Инкремент оператори ҳам, декремент оператори ҳам икки вариантда ишлайди: префиксли ва постфиксли. Перефиксли вариантда улар ўзгарувчидан олдин (++Аge), постфиксли вариантда эса ўзгарувчидан кейин (Age++) ёзилади.
Оддий ифодаларда бу вариантларни қўлланишида фарқ катта эмас, лекин бир ўзгарувчига бошқа ўзгарувчининг қийматини ўзлаштиришда уларнинг қўлланилиши бошқача характерга эга. Перефексли оператор қиймат ўзлаштирилгунча, постфиксли оператор эса қиймат ўзлаштирилгандан кейин бажарилади. Буни қуйидаги листингдан кўришимиз мумкин:
4.2. – листинг. Префиксли ва постфиксли операторларни қўлланиши.
# include < iostrеam. h >
int main()
{
int myAge = 39;
int yourAge = 39;
cout << “Men” << MyAge <<”yoshdaman \n”;
cout << “Siz” << yourAge <<“yoshdasiz \n”;
myAge++ ; // постфиксли инкремент
++yourAge; // префексли инкремент
cout << “Bir yil o`tdi …\ n”;
cout << “Men” << MyAge <<”yoshdaman \n”;
cout << “Siz” << yourAge <<“yoshdasiz \n”;
cout << “Yana bir yil o`tdi \n”;
cout <<” Men”<< myAge++ <<“yoshdaman \n”;
cout <<”Siz”<<++yourAge<<“yoshdasiz \n”;
cout << “Ma`lumotlarni qaytadan”
cout << “chiqaraylik \n”;
cout <<” Men”<< myAge<<“yoshdaman \n”;
cout <<”Siz”<
return 0;
}
HАТИЖА:
Men 39 yoshdaman
Siz 39 yoshdasiz
Bir yil o`tdi …
Men 40 yoshdaman
Siz 40 yoshdasiz
Yana bir yil o`tdi …
Men 40 yoshdaman
Siz 41 yoshdasiz
Ma`lumotlarni qaytadan chiqaraylik
Men 41 yoshdaman
Siz 41 yoshdasiz
Операторлар приоритети.
Мураккаб ифодаларда қайси амал биринчи навбатда бажарилади, қўшишми ёки кўпайтиришми? Масалан:
х=5+3*8;
ифодада агарда биринчи қўшиш бажарилса натижа 64 га, агарда кўпайтириш биринчи бажарилса натижа 29 га тенг бўлади.
Ҳар бир оператор приоритет қийматига эга. Кўпайтириш қўшишга нисбатан юқорироқ приоритетга эга. Шунинг учун бу ифода қиймати 29 га тенг бўлади.
Агарда иккита математик ифоданинг приоритети тенг бўлса, улар чапдан ўнгга қараб кетма – кет бажарилади.
Демак
х=5+3+8*9+6*4
ифодада биринчи кўпайтириш амаллари чапдан ўнгга қараб бажарилади 8*9=72 ва 6*4=24. Кейин бу ифода соддароқ кўриниш ҳосил қилади.
х=5+3+72+24
Энди қўшишни ҳам худди шундай чапдан унга қараб бажарамиз:
5+3=8; 8+72= 80; 80+24=104;
Лекин, барча операторлар ҳам бу тартибга амал қилмайди. Масалан, ўзлаштириш оператори ўнгдан чапга қараб бажарилади.
Ички қавслар.
Мураккаб ифодаларни тузишда ички қавслардан фойдаланилади. Масалан, сизга секундларнинг умумий сони кейин эса барча қаралаётган одамлар сони, ундан кейин эса уларнинг кўпайтмасини ҳисоблаш керак бўлсин.
TotalPersonSeconds=((NumMinutesToThink+ NumMinutesToType)*60*(PeopleInTheOffice+ PeopleOnVocation ))
Бу ифода қуйидагича бажарилади. Олдин NumMinutesToThink ўзгарувчисининг қиймати NumMinutesToType ўзгарувчиси қийматига қўшилади. Кейин эса ҳосил қилинган йиғинди 60 га кўпайтирилади. Бундан кейин PeopleInTheOffice ўзгарувчи қиймати PeopleOnVocation қийматига қўшилади. Кейин эса секундлар сони кишилар сонига кўпайтирилади.
Do'stlaringiz bilan baham: |