Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»



Download 2 Mb.
bet19/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   15   16   17   18   19   20   21   22   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

Операции


 òaáëèöå 1.5 ïðèâåäåí ñïèñîê îñíîâíûõ îïåðaöèé, îïðåäåëåííûõ â яçûêå C++, â ñîîòâåòñòâèè ñ èõ ïðèîðèòåòaìè (ïî óáûâaíèþ ïðèîðèòåòîâ, îïåðaöèè ñ ðaçíû- ìè ïðèîðèòåòaìè ðaçäåëåíû ÷åðòîé). Îñòaëüíûå îïåðaöèè áóäóò ââîäèòüñя ïî ìåðå èçëîæåíèя. Ïîëíûé ñïèñîê îïåðaöèé ïðèâåäåí â ïðèëîæåíèè 1.
 ñîîòâåòñòâèè ñ êîëè÷åñòâîì îïåðaíäîâ, êîòîðûå èñïîëüçóþòñя â îïåðaöèяõ, îíè äåëяòñя ía óíaðíûå (îäèí îïåðaíä), áèíaðíûå (äâa îïåðaíäa) è òåðíaðíóþ (òðè îïåðaíäa).
Âñå ïðèâåäåííûå â òaáëèöå îïåðaöèè, êðîìå óñëîâíîé è sizeof, ìîãóò áûòü ïåðå- ãðóæåíû. Î ïåðåãðóçêå îïåðaöèé ðaññêaçûâaåòñя ía ñ. 189.

Таблица 1.5. Основные операции языка С++





Операция

Краткое описание

Унарные операции

++

óâåëè÷åíèå ía 1

––

óìåíüøåíèå ía 11

sizeof

ðaçìåð

~

ïîðaçðяäíîå îòðèöaíèå

!

ëîãè÷åñêîå îòðèöaíèå



aðèôìåòè÷åñêîå îòðèöaíèå (óíaðíûé ìèíóñ)

+

óíaðíûé ïëþñ

&

âçяòèå aäðåña

*

ðaçaäðåñaöèя

new

âûäåëåíèå ïaìяòè

delete

îñâîáîæäåíèå ïaìяòè

(type)

ïðåîáðaçîâaíèå òèïa

Бинарные и тернарная операции

*

óìíîæåíèå

/

äåëåíèå

%

îñòaòîê îò äåëåíèя

+

ñëîæåíèå



âû÷èòaíèå

<<

ñäâèã âëåâî

>>

ñäâèã âïðaâî

<

ìåíüøå

<=

ìåíüøå èëè ðaâíî

>

áîëüøå

>=

áîëüøå èëè ðaâíî

==

ðaâíî

!=

íå ðaâíî

&

ïîðaçðяäíaя êîíúþíêöèя (È)

^

ïîðaçðяäíîå èñêëþ÷aþùåå ÈËÈ

|

ïîðaçðяäíaя äèçúþíêöèя (ÈËÈ)

&&

ëîãè÷åñêîå È

||

ëîãè÷åñêîå ÈËÈ





1 Ïðîáåëû ìåæäó ñèìâîëaìè âíóòðè îïåðaöèè íå äîïóñêaþòñя.



Операция

Краткое описание

?:

óñëîâíaя îïåðaöèя (òåðíaðíaя)

=

ïðèñâaèâaíèå

*=

óìíîæåíèå ñ ïðèñâaèâaíèåì

/=

äåëåíèå ñ ïðèñâaèâaíèåì

%=

îñòaòîê îòäåëåíèя ñ ïðèñâaèâaíèåì

+=

ñëîæåíèå ñ ïðèñâaèâaíèåì

–=

âû÷èòaíèå ñ ïðèñâaèâaíèåì

<<=

ñäâèã âëåâî ñ ïðèñâaèâaíèåì

>>=

ñäâèã âïðaâî ñ ïðèñâaèâaíèåì

&=

ïîðaçðяäíîå È ñ ïðèñâaèâaíèåì

|=

ïîðaçðяäíîå ÈËÈ ñ ïðèñâaèâaíèåì

^=

ïîðaçðяäíîå èñêëþ÷aþùåå ÈËÈ ñ ïðèñâaèâaíèåì

,

ïîñëåäîâaòåëüíîå âû÷èñëåíèå

Ðaññìîòðèì îñíîâíûå îïåðaöèè ïîäðîáíåå.


Îïåðàöèè óâåëè÷åíèÿ è óìåíüøåíèÿ íà 1 (++ è --). Ýòè îïåðaöèè, íaçûâaåìûå òaêæå èíêðåìåíòîì è äåêðåìåíòîì, èìåþò äâå ôîðìû çaïèñè — ïðåôènñíóþ, êîãäa îïåðaöèя çaïèñûâaåòñя ïåðåä îïåðaíäîì, è ïîñòôènñíóþ.  ïðåôèêñíîé ôîðìå ñía÷aëa èçìåíяåòñя îïåðaíä, a çaòåì åãî çía÷åíèå ñòaíîâèòñя ðåçóëüòè- ðóþùèì çía÷åíèåì âûðaæåíèя, a â ïîñòôèêñíîé ôîðìå çía÷åíèåì âûðaæåíèя яâëяåòñя èñõîäíîå çía÷åíèå îïåðaíäa, ïîñëå ÷åãî îí èçìåíяåòñя.
include int main(){
intx= 3,y= 3;
printf("Çía÷åíèå ïðåôèêñíîãî âûðaæåíèя: %d\n", ++x); printf("Çía÷åíèå ïîñòôèêñíîãî âûðaæåíèя: %d\n", y++); printf("Çía÷åíèå õ ïîñëå ïðèðaùåíèя: %d\n", x); printf("Çía÷åíèå ó ïîñëå ïðèðaùåíèя: %d\n", ó); return 0;
}
Ðåçóëüòaò ðaáîòû ïðîãðaììû:
Çía÷åíèå ïðåôèêñíîãî âûðaæåíèя: 4 Çía÷åíèå ïîñòôèêñíîãî âûðaæåíèя: 3 Çía÷åíèå õ ïîñëå ïðèðaùåíèя: 4 Çía÷åíèå ó ïîñëå ïðèðaùåíèя: 4
Îïåðaíäîì îïåðaöèè èíêðåìåíòa â îáùåì ñëó÷aå яâëяåòñя òaê íaçûâaåìîå L-çía-
÷åíèå (L-value). Òaê îáîçía÷aåòñя ëþáîå âûðaæåíèå, aäðåñóþùåå íåêîòîðûé ó÷a- ñòîê ïaìяòè, â êîòîðûé ìîæíî çaíåñòè çía÷åíèå. Íaçâaíèå ïðîèçîøëî îò îïåða- öèè ïðèñâaèâaíèя, ïîñêîëüêó èìåííî åå ëåâaя (Left) ÷añòü îïðåäåëяåò, â êaêóþ

îáëañòü ïaìяòè áóäåò çaíåñåí ðåçóëüòaò îïåðaöèè. Ïåðåìåííaя яâëяåòñя ÷añò- íûì ñëó÷aåì L-çía÷åíèя.


Îïåðàöèÿ îïðåäåëåíèÿ ðàçìåðà sizeof ïðåäíaçía÷åía äëя âû÷èñëåíèя ðaçìåða îáúåêòa èëè òèïa â áaéòaõ, è èìååò äâå ôîðìû:
sizeof âûðàæåíèå sizeof ( òèï )
Ïðèìåð:
include int main(){
floatx= 1;
cout << "sizeof (float) :" << sizeof (float); cout << "\nsizeof x :" << sizeof x;
cout << "\nsizeof (x + 1.0) :" << sizeof (x + 1.0);
return 0;
}
Ðåçóëüòaò ðaáîòû ïðîãðaììû:
sizeof (float) : 4 sizeofx:4 sizeof (x + 1.0) : 8
Ïîñëåäíèé ðåçóëüòaò ñâяçaí ñ òåì, ÷òî âåùåñòâåííûå êîíñòaíòû ïî óìîë÷aíèþ èìåþò òèï double, ê êîòîðîìó, êaê ê áîëåå äëèííîìó, ïðèâîäèòñя òèï ïåðåìåííîé x è âñåãî âûðaæåíèя. Cêîáêè íåîáõîäèìû äëя òîãî ÷òîáû âûðaæåíèå, ñòîяùåå â íèõ, âû÷èñëяëîñü ðaíüøå îïåðaöèè ïðèâåäåíèя òèïa, èìåþùåé áîëüøèé ïðè- îðèòåò, ÷åì ñëîæåíèå.
Îïåðàöèè îòðèöàíèÿ (–, ! è ~). Àðèôìåòè÷åñnîå îòðèöaíèå (óíaðíûé ìèíóñ –) èçìåíяåò çíaê îïåðaíäa öåëîãî èëè âåùåñòâåííîãî òèïa ía ïðîòèâîïîëîæíûé. Ëîãè÷åñnîå îòðèöaíèå (!) äaåò â ðåçóëüòaòå çía÷åíèå 0, åñëè îïåðaíä åñòü èñòèía (íå íóëü), è çía÷åíèå 1, åñëè îïåðaíä ðaâåí íóëþ. Îïåðaíä äîëæåí áûòü öåëîãî èëè âåùåñòâåííîãî òèïa, a ìîæåò èìåòü òaêæå òèï óêaçaòåëü. Ïîðaçðяäíîå îòðè- öaíèå (~), ÷añòî íaçûâaåìîå ïîáèòîâûì, èíâåðòèðóåò êaæäûé ðaçðяä â äâîè÷íîì ïðåäñòaâëåíèè öåëî÷èñëåííîãî îïåðaíäa.
Äåëåíèå (/) è îñòàòîê îò äåëåíèÿ (%). Îïåðaöèя äåëåíèя ïðèìåíèìa ê îïåðaíäaì aðèôìåòè÷åñêîãî òèïa. Åñëè îáa îïåðaíäa öåëî÷èñëåííûå, ðåçóëüòaò îïåðaöèè îêðóãëяåòñя äî öåëîãî ÷èñëa, â ïðîòèâíîì ñëó÷aå òèï ðåçóëüòaòa îïðåäåëяåòñя ïðaâèëaìè ïðåîáðaçîâaíèя (ñì. ðaçäåë «Âûðaæåíèя», ñ. 7–38, è ïðèëîæåíèå 3). Îïåðaöèя îñòaòna îò äåëåíèя ïðèìåíяåòñя òîëüêî ê öåëî÷èñëåííûì îïåðaíäaì. Çíaê ðåçóëüòaòa çaâèñèò îò ðåaëèçaöèè.
include int main(){
intx= 11,y= 4; floatz= 4;
printf("Ðåçóëüòaòû äåëåíèя: %d %f\n", x/y, x/z); printf("Îñòaòîê: %d\n", x%y);
return 0;
}

Ðåçóëüòaò ðaáîòû ïðîãðaììû:


Ðåçóëüòaòû äåëåíèя: 2 2.750000
Îñòaòîê: 3
Îïåðaöèè ñäâèãa (<< è >>) ïðèìåíяþòñя ê öåëî÷èñëåííûì îïåðaíäaì. Îíè ñäâèãaþò äâîè÷íîå ïðåäñòaâëåíèå ïåðâîãî îïåðaíäa âëåâî èëè âïðaâî ía êîëè÷å- ñòâî äâîè÷íûõ ðaçðяäîâ, çaäaííîå âòîðûì îïåðaíäîì. Ïðè ñäâèãå âëåâî (<<) îñâî- áîäèâøèåñя ðaçðяäû îáíóëяþòñя. Ïðè ñäâèãå âïðaâî (>) îñâîáîäèâøèåñя áèòû çaïîëíяþòñя íóëяìè, åñëè ïåðâûé îïåðaíä áåççíaêîâîãî òèïa, è çíaêîâûì ðaçðя- äîì â ïðîòèâíîì ñëó÷aå. Îïåðaöèè ñäâèãa íå ó÷èòûâaþò ïåðåïîëíåíèå è ïîòåðþ çía÷èìîñòè.
Îïåðaöèè îòíîøåíèя (<, <=, >, >=, = =, !=) ñðaâíèâaþò ïåðâûé îïåðaíä ñî âòî- ðûì. Îïåðaíäû ìîãóò áûòü aðèôìåòè÷åñêîãî òèïa èëè óêaçaòåëяìè. Ðåçóëüòaòîì îïåðaöèè яâëяåòñя çía÷åíèå true èëè false (ëþáîå çía÷åíèå, íå ðaâíîå íóëþ, èí- òåðïðåòèðóåòñя êaê true). Îïåðaöèè ñðaâíåíèя ía ðaâåíñòâî è íåðaâåíñòâî èìå- þò ìåíüøèé ïðèîðèòåò, ÷åì îñòaëüíûå îïåðaöèè ñðaâíåíèя.


ВНИМАНИЕ
Îáðaòèòå âíèìaíèå ía ðaçíèöó ìåæäó îïåðaöèåé ïðîâåðêè ía ðaâåíñòâî (==) è îïåðaöèåé ïðèñâaèâaíèя (=), ðåçóëüòaòîì êîòîðîé яâëяåòñя çía÷åíèå, ïðèñâîåííîå ëåâîìó îïåðaíäó.



Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   ...   232




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish