Êaê óæå ãîâîðèëîñü âûøå, âûðaæåíèя ñîñòîяò èç îïåðaíäîâ, îïåðaöèé è ñêîáîê è èñïîëüçóþòñя äëя âû÷èñëåíèя íåêîòîðîãî çía÷åíèя îïðåäåëåííîãî òèïa. Êaæ- äûé îïåðaíä яâëяåòñя, â ñâîþ î÷åðåäü, âûðaæåíèåì èëè îäíèì èç åãî ÷añòíûõ ñëó÷aåâ — êîíñòaíòîé èëè ïåðåìåííîé.
Ïðèìåðû âûðaæåíèé:
(a + 0.12)/6
x &&y || !z
(t * sin(x)-1.05e4)/((2*k+ 2)* (2*k+ 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=b= c îçía÷aåò a= (b= c),a a+b+ c îçía÷aåò (a + b) + c. Ïîðяäîê âû÷èñëåíèя ïîäâûðaæåíèé âíóòðè âûðaæåíèé íå îïðåäåëåí: íaïðèìåð, íåëüçя ñ÷èòaòü, ÷òî â âûðaæåíèè (sin(x + 2) + cos(y + 1)) îáðaùåíèå ê ñèíóñó áó- äåò âûïîëíåíî ðaíüøå, ÷åì ê êîñèíóñó, è ÷òî x+2 áóäåò âû÷èñëåíî ðaíüøå, ÷åì y+ 1.
Ðåçóëüòaò âû÷èñëåíèя âûðaæåíèя õaðaêòåðèçóåòñя çía÷åíèåì è òèïîì. Íaïðè- ìåð, åñëè a è b — ïåðåìåííûå öåëîãî òèïa è îïèñaíû òaê:
inta= 2,b= 5;
òî âûðaæåíèå a+ b èìååò çía÷åíèå7è òèï int, a âûðaæåíèå a= b èìååò çía÷åíèå, ðaâíîå ïîìåùåííîìó â ïåðåìåííóþ a (â äaííîìó ñëó÷aå 5) è òèï, ñîâïaäaþùèé ñ òèïîì ýòîé ïåðåìåííîé. Òaêèì îáðaçîì, â C++ äîïóñòèìû âûðaæåíèя âèäa a=b= c: ñía÷aëa âû÷èñëяåòñя âûðaæåíèå b= c, 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 â âåùåñòâåí- íîå (áåç ïîòåðè òî÷íîñòè) è íaîáîðîò (âîçìîæíî, ñ ïîòåðåé òî÷íîñòè), êî âòîðî- ìó — ïðåîáðaçîâaíèå çíaêîâîãî öåëîãî â áåççíaêîâîå.
 ëþáîì ñëó÷aå âåëè÷èíû òèïîâ char, signed char, unsigned char, short int è unsigned short int ïðåîáðaçóþòñя â òèï int, åñëè îí ìîæåò ïðåäñòaâèòü âñå çía÷å- íèя, èëè â unsigned int â ïðîòèâíîì ñëó÷aå.
Ïîñëå ýòîãî îïåðaíäû ïðåîáðaçóþòñя ê òèïó íaèáîëåå äëèííîãî èç íèõ, è îí èñ- ïîëüçóåòñя êaê òèï ðåçóëüòaòa. Ïðaâèëa ïðåîáðaçîâaíèé ïðèâåäåíû â ïðèëîæå- íèè 3.
Ïðîãðaììèñò ìîæåò çaäaòü ïðåîáðaçîâaíèя òèïa яâíûì îáðaçîì (îá ýòîì ðaññêa- çûâaåòñя â ðaçäåëå «Ïðåîáðaçîâaíèя òèïîâ» ía ñ. 231).
Èò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âèë ìû è çaéìåìñя â ñëåäóþùåì ðaçäåëå.
Cîçäaíèå ïðîñòåéøèõ ïðîãðaìì ïîäðîáíî ðaññìaòðèâaåòñя ía ïåðâîì ñåìèíaðå ïðaêòèêóìa [11, ñ. 13].
Do'stlaringiz bilan baham: |