Тип void
Êðîìå ïåðå÷èñëåííûõ, ê îñíîâíûì òèïaì яçûêa îòíîñèòñя òèï void, íî ìíîæåñò- âî çía÷åíèé ýòîãî òèïa ïóñòî. Îí èñïîëüçóåòñя äëя îïðåäåëåíèя ôóíêöèé, êîòî- ðûå íå âîçâðaùaþò çía÷åíèя, äëя óêaçaíèя ïóñòîãî ñïèñêa aðãóìåíòîâ ôóíêöèè (î ôóíêöèяõ ðaññêaçûâaåòñя ía ñ. 73), êaê áaçîâûé òèï äëя óêaçaòåëåé (ñ. 51) è â îïåðaöèè ïðèâåäåíèя òèïîâ (ñ. 56).
Структура программы
Ïðîãðaììa ía яçûêå C++ ñîñòîèò èç ôóínöèé, îïèñaíèé è äèðånòèâ ïðåïðîöåññî- ða (ñ. 16). Îäía èç ôóíêöèé äîëæía èìåòü èìя main. Âûïîëíåíèå ïðîãðaììû ía-
÷èíaåòñя ñ ïåðâîãî îïåðaòîða ýòîé ôóíêöèè. Ïðîñòåéøåå îïðåäåëåíèå ôóíêöèè èìååò ñëåäóþùèé ôîðìaò:
òèï_âîçâðàùàåìîãî_çíà÷åíèÿ èìÿ ([ ïàðàìåòðû ]){ îïåðàòîðû, ñîñòàâëÿþùèå òåëî ôóíêöèè
}
Êaê ïðaâèëî, ôóíêöèя èñïîëüçóåòñя äëя âû÷èñëåíèя êaêîãî-ëèáî çía÷åíèя, ïî- ýòîìó ïåðåä èìåíåì ôóíêöèè óêaçûâaåòñя åãî òèï. Î ôóíêöèяõ ðaññêaçûâaåòñя ía ñ. 73, íèæå ïðèâåäåíû ëèøü ñaìûå íåîáõîäèìûå ñâåäåíèя:
åñëè ôóíêöèя íå äîëæía âîçâðaùaòü çía÷åíèå, óêaçûâaåòñя òèï void;
òåëî ôóíêöèè яâëяåòñя áëîêîì è, ñëåäîâaòåëüíî, çaêëþ÷aåòñя â ôèãóðíûå ñêîáêè;
ôóíêöèè íå ìîãóò áûòü âëîæåííûìè;
êaæäûé îïåðaòîð çaêaí÷èâaåòñя òî÷êîé ñ çaïяòîé (êðîìå ñîñòaâíîãî îïåða- òîða).
Ïðèìåð ñòðóêòóðû ïðîãðaììû, ñîäåðæaùåé ôóíêöèè main, f1 è f2:
äèðåêòèâû ïðåïðîöåññîða îïèñaíèя
int main(){
îïåðaòîðû ãëaâíîé ôóíêöèè
}
int f1(){
îïåðaòîðû ôóíêöèè f1
}
int f2(){
îïåðaòîðû ôóíêöèè f2
}
Ïðîãðaììa ìîæåò ñîñòîяòü èç íåñêîëüêèõ ìîäóëåé (èñõîäíûõ ôaéëîâ).
Íåñnîëünî ïðåäâaðèòåëüíûõ çaìå÷aíèé î ââîäå/âûâîäå. Â яçûêå C++ íåò âñòðîåí- íûõ ñðåäñòâ ââîäa/âûâîäa — îí îñóùåñòâëяåòñя ñ ïîìîùüþ ôóíêöèé, òèïîâ è îáúåêòîâ, ñîäåðæaùèõñя â ñòaíäaðòíûõ áèáëèîòåêaõ. Èñïîëüçóåòñя äâa ñïîñîáa: ôóíêöèè, óíañëåäîâaííûå èç яçûêa C, è îáúåêòû C++.
Îñíîâíûå ôóínöèè ââîäa/âûâîäa â ñòèëå C:
int scanf (const char* format, … ) // ââîä int printf(const char* format, … ) // âûâîä
Îíè âûïîëíяþò ôîðìaòèðîâaííûé ââîä è âûâîä ïðîèçâîëüíîãî êîëè÷åñòâa âå- ëè÷èí â ñîîòâåòñòâèè ñî ñòðîêîé ôîðìaòa format. Còðîêa ôîðìaòa ñîäåðæèò ñèì- âîëû, êîòîðûå ïðè âûâîäå êîïèðóþòñя â ïîòîê (ía ýêðaí) èëè çaïðaøèâaþòñя èç ïîòîêa (ñ êëaâèaòóðû) ïðè ââîäå, è ñïåöèôènaöèè ïðåîáðaçîâaíèя, ía÷èíaþùèå- ñя ñî çíaêa %, êîòîðûå ïðè ââîäå è âûâîäå çaìåíяþòñя êîíêðåòíûìè âåëè÷èía- ìè. Cïèñîê íaèáîëåå óïîòðåáèòåëüíûõ ñïåöèôèêaöèé ïðåîáðaçîâaíèя ïðèâåäåí â ïðèëîæåíèè 2.
Ïðèìåð ïðîãðaììû, èñïîëüçóþùåé ôóíêöèè ââîäa/âûâîäa â ñòèëå C:
include int main(){
int i;
printf("Ââåäèòå öåëîå ÷èñëî\n"); scanf("%d", &i);
printf("Âû ââåëè ÷èñëî %d, ñïañèáî!", i); return 0;
}
Ïåðâ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 ñ. 93.
Òðåòüя ñòðîêa — îïèñaíèå ïåðåìåííîé öåëîãî òèïa ñ èìåíåì i. Ïåðåìåííûå ðañ- ñìaòðèâaþòñя ía ñ. 28.
Ôóíêöèя printf â ÷åòâåðòîé ñòðîêå âûâîäèò ïðèãëaøåíèå «Ââåäèòå öåëîå ÷èñ- ëî» è ïåðåõîäèò ía íîâóþ ñòðîêó â ñîîòâåòñòâèè ñ óïðaâëяþùåé ïîñëåäîâaòåëü-
íîñòüþ \n. Ôóíêöèя scanf çaíîñèò ââåäåííîå ñ êëaâèaòóðû öåëîå ÷èñëî â ïåðå- ìåííóþ i (çíaê & îçía÷aåò îïåðaöèþ ïîëó÷åíèя aäðåña), a ñëåäóþùèé îïåðaòîð âûâîäèò ía ýêðaí óêaçaííóþ â íåì ñòðîêó, çaìåíèâ ñïåöèôèêaöèþ ïðåîáðaçîâa- íèя ía çía÷åíèå ýòîãî ÷èñëa. Ââîä/âûâîä â ñòèëå C ðaññìîòðåí â ðaçäåëå «Ôóíê- öèè ââîäa/âûâîäa» (ñ. 88).
À âîò êaê âûãëяäèò òa æå ïðîãðaììa ñ èñïîëüçîâaíèåì áèáëèîòånè nëaññîâ Ñ++:
include int main(){
int i;
cout << "Ââåäèòå öåëîå ÷èñëî\n"; cin >> i;
cout << "Âû ââåëè ÷èñëî " << i << ", ñïañèáî!"; return 0;
}
Çaãîëîâî÷íûé ôaéë ñîäåðæèò îïèñaíèå íaáîða êëaññîâ äëя óïðaâëå- íèя ââîäîì/âûâîäîì.  íåì îïðåäåëåíû ñòaíäaðòíûå îáúåêòû-ïîòîêè cin äëя ââîäa ñ êëaâèaòóðû è cout äëя âûâîäa ía ýêðaí, a òaêæå îïåðaöèè ïîìåùåíèя â ïîòîê << è ÷òåíèя èç ïîòîêa >>. Ïîòîêè ðaññìîòðåíû â ðaçäåëå «Ïîòîêîâûå êëañ- ñû» ía ñ. 265.
 äaëüíåéøåì èçëîæåíèè áóäóò èñïîëüçîâaòüñя îáa ñïîñîáa, íî â îäíîé ïðî- ãðaììå ñìåøèâaòü èõ íå ðåêîìåíäóåòñя.
Do'stlaringiz bilan baham: |