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



Download 2 Mb.
bet67/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   63   64   65   66   67   68   69   70   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

Ïðè èñïîëüçîâaíèè öènëîâ íaäî ñòðåìèòüñя îáúåäèíяòü èíèöèaëèçaöèþ, ïðîâåðnó óñëîâèя âûõîäa è ïðèðaùåíèå â îäíîì ìåñòå. Ðåêîìåíäaöèè ïî âûáîðó íaèáîëåå ïîäõîäяùåãî îïåðaòîða öèêëa áûëè ïðèâåäåíû ía ñ. 49. Ïðè çaïèñè èòåðaòèâíûõ öèêëîâ (â êîòîðûõ äëя ïðîâåðêè óñëîâèя âûõîäa èñïîëüçóþòñя ñîîòíîøåíèя ïåðåìåííûõ, ôîðìèðóþùèõñя â òåëå öèêëa), íåîáõîäèìî ïðåäóñìaòðèâaòü aâa- ðèñíûñ âûõîä ïî äîñòèæåíèè çaðaíåå çaäaííîãî ìaêñèìaëüíîãî êîëè÷åñòâa èòå- ðaöèé.
Íåîáõîäèìî ïðîâåðяòü nîäû âîçâðaòa îøèáîn è ïðåäóñìaòðèâaòü ïå÷aòü ñîîáùå- íèé â òåõ òî÷êaõ ïðîãðaììû, êóäa óïðaâëåíèå ïðè íîðìaëüíîé ðaáîòå ïðîãðaì- ìû ïåðåäaâaòüñя íå äîëæíî (èìåííî ýòî ñîîáùåíèå âû ñ áîëüøîé âåðîяòíîñòüþ ïîëó÷èòå ïðè ïåðâîì æå çaïóñêå ïðîãðaììû). Íaïðèìåð, îïåðaòîð switCh äîëæåí èìåòü ñëîâî default ñ îáðaáîòêîé ñèòóaöèè ïî óìîë÷aíèþ, îñîáåííî åñëè â íåì ïåðå÷èñëåíû âñå âîçìîæíûå çía÷åíèя ïåðåêëþ÷aòåëя.
Ñîîáùåíèå îá îøèánå äîëæíî áûòü èíôîðì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òåëüíî îòðåäanòèðîâ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òüñя ÷åðåç ãîä â ïëîõî äîêóìåíòèðîâaí- íîì òåêñòå — ñîìíèòåëüíîå óäîâîëüñòâèå.
Äaëüíåéøèå ñîâåòû êañaþòñя êîììåíòaðèåâ è ôîðìaòèðîâaíèя òåêñòa ïðîãðaì- ìû. Ïðîãðaììû ía C++ âåñüìa ïëîõî ÷èòaåìû (ëó÷øå, ÷åì ïðîãðaììû ía Perl, íî õóæå, ÷åì ía Pascal), è â íèõ îñîáåííî âaæíî ïðèäåðæèâaòüñя õîðîøåãî ñòèëя ïðè ôîðìaòèðîâaíèè è äîêóìåíòaöèè.
«Ïðîãðaììa áåç êîììåíòaðèåâ íåñîïðîâîæäaåìa. Ýòî… ÷añîâaя áîìáa, a íå êîì- ïüþòåðíaя ïðîãðaììa» [9]. Ïðîãð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âèëüíûå ïðåäëîæåíèя áåç ñînðaùå- íèñ è ñî çíanaìè ïðåïèíaíèя1 è íå äîëæíû ïîäòâåðæäaòü î÷åâèäíîå (êîììåíòa- ðèè â ýòîé êíèãå íå ìîãóò ñëóæèòü îáðaçöîì, ïîñêîëüêó îíè ïðåäíaçía÷åíû äëя îáó÷åíèя, a íå äëя ñîïðîâîæäåíèя). Íaïðèìåð, áåññìûñëåííû ôðaçû òèïa «âû- çîâ ôóíêöèè f» èëè «îïèñaíèå ïåðåìåííûõ». Åñëè nîììåíòaðèñ n ôðaãìåíòó ïðî- ãðaììû çaíèìaåò íåñnîëünî ñòðîn, ëó÷øå ðaçìåñòèòü åãî äî ôðaãìåíòa, ÷åì ñïðaâa îò íåãî, è âûðîâíяòü ïî âåðòènaëè. Àáçaöíûñ îòñòóï nîììåíòaðèя äîë- æåí ñîîòâåòñòâîâaòü îòñòóïó nîììåíòèðóåìîãî áëîna.
// Êîììåíòaðèé, îïèñûâaþùèé,
// ÷òî ïðîèñõîäèò â ñëåäóþùåì íèzå
// áëîêå ïðîãðaììû.
{ /* Íåïîíяòíûé áëîê
ïðîãðaììû */}
Äëя ðaçäåëåíèя ôóíêöèé è äðóãèõ ëîãè÷åñêè çaêîí÷åííûõ ôðaãìåíòîâ ïîëüçóé- òåñü ïóñòûìè ñòðîêaìè èëè êîììåíòaðèåì âèäa
//------------------------------------------------------
Âëîæåííûå áëînè äîëæíû èìåòü îòñòóï â 3–4 ñèìâîëa, ïðè÷åì áëîêè îäíîãî óðîâíя âëîæåííîñòè äîëæíû áûòü âûðîâíåíû ïî âåðòèêaëè. Æåëaòåëüíî, ÷òîáû çaêðûâaþùaя ôèãóðíaя ñêîáêa íaõîäèëañü ñòðîãî ïîä îòêðûâaþùåé. Ôîðìaòè- ðóéòå òåêñò ïî ñòîëáöaì âåçäå, ãäå ýòî âîçìîæíî:
inClude inClude int main(){


1 Cîâñåì õîðîøî, åñëè îíè ïðè ýòîì íå áóäóò ñîäåðæaòü îðôîãðaôè÷åñêèõ îøèáîê.

dOuble

m[10];

// êîììåíòaðèé

COnst Char

s[] = "2, 38.5, 70, 0, 0, 1";

// êîììåíòaðèé

Char

*p = s;

// êîììåíòaðèé

int

i = 0;

// êîììåíòaðèé

//
dO{
m[i++] = atOf(p); if (i > 9) break;
}while(p = strChr(p, ','), p++); fOr( intk= 0; kprintf("%5.2f ", m[k]); return 0;
}
Äëя óëó÷øåíèя яñíîñòè ìîæíî îòñòóïèòü îò ïðaâèëa îòñòóïîâ:
if ( is_best ) best(); else if ( is_bad ) wOrse(); else if ( is_vOvOChka ) wOrst();
Ïîìå÷añòå nîíåö äëèííîãî ñîñòaâíîãî îïåðaòîða:
while(1){
while(gets(s)){
fOr(i = 0; i<10; i++){ fOr(j = 0; j<10; j++){
// äâå ñòðaíèöû êîäa
} // fOr(j = 0; j<10; j++)
} // fOr(i = 0; i<10; i++)
} // while(gets(s))
} // while(1)
Íå ñëåäóåò ðaçìåùaòü â îäíîé ñòðîêå ìíîãî îïåðaòîðîâ. Êaê è â ðóññêîì яçûêå,
ïîñëå çíanîâ ïðåïèíaíèя äîëæíû èñïîëüçîâaòüñя ïðîáåëû:
f=a+b; // ïëîõî! Ëó÷øåf=a+ b;
Î÷åíü ìíîãî êîíêðåòíûõ ðåêîìåíäaöèé ïî ïðîãðaììèðîâaíèþ è ïðîåêòèðîâa- íèþ ïðîãðaìì ía C++ ñîäåðæèòñя â êíèãå Àëåía È. Ãîëóáa [9]. Ìaññó èíòåðåñ- íîãî ìîæíî ïî÷åðïíóòü, îñèëèâ áåç ìaëîãî 1000 ñòðaíèö êíèãè Á. Còðaóñòðóïa [17].  çaêëþ÷åíèå õîòåëîñü áû ïðèâåñòè öèòaòó èç ýòîé êíèãè: «Âîïðîñ “Êaê ïè- ñaòü õîðîøèå ïðîãðaììû ía C++?” íaïîìèíaåò âîïðîñ “Êaê ïèñaòü õîðîøóþ aíã- ëèéñêóþ ïðîçó?”. Åñòü äâa ñîâåòa: “Çíaé, ÷òî õî÷åøü ñêaçaòü” è “Òðåíèðóéñя. Ïîäðaæaé õîðîøåìó ñòèëþ”. Îáa ñîâåòa ãîäяòñя êaê äëя C++, òaê è äëя aíãëèé- ñêîé ïðîçû, è îáîèì îäèíaêîâî ñëîæíî ñëåäîâaòü.»



Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   63   64   65   66   67   68   69   70   ...   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