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


Кодирование и документирование программы



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

Кодирование и документирование программы


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я öåëü, n nîòîðîñ íóæíî ñòðåìèòüñя, — ïîëó÷èòü ëåãnî ÷èòaåìóþ ïðî- ãðaììó âîçìîæíî áîëåå ïðîñòîñ ñòðónòóðû. Øèðîêî èçâåñòåí âåðíûé â áîëü- øèíñòâå ñëó÷aåâ äåâèç — «Better simpler than clever» (ëó÷øå ïî-ïðîñòîìó, ÷åì ïî-óìíîìó).  êîíå÷íîì ñ÷åòå âñå òåõíîëîãèè ïðîãðaììèðîâaíèя íaïðaâëåíû ía äîñòèæåíèå èìåííî ýòîé öåëè, ïîñêîëüêó òîëüêî òaê ìîæíî äîáèòüñя íaäåæíî-

ñòè è ïðîñòîòû ìîäèôèêaöèè ïðîãðaììû1. 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 C, è îía ðaáîòaåò:
inClude
main (int t, int _, Char *a){return!0?_<13?main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?
main(_,t,"@n'+, '/*s{}w+/w Cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w q n+,/ {l+,/n\
{n+,/+ n+,/ ; q n+,/+k ;*+,/'r :'d*'3,}{w+K w'K:'+}e ';dq 'l q '+d'K !\
/+k ;q 'r}eKK }w'r}eKK{nl]'/ ; q n'){) }w'){){nl]'/+ n';d}rw' i; ){nl]!\
/n{n '; r{ w'r nC{nl]'/ {l,+'K {rw' iK{;[{nl]'/w q n'wk nw' iwk{KK{nl]!/\
w{%'l w ' i; :{nl]'/*{q 'ld;r'}{nlwb!/*de}'C ;;{nl'-{}rw]'/+,} '*}\
nC,', nw]'/+kd'+e}+; 'rdq w! nr'/ ') }+}{rl '{n' ') }'+} (!!/")
:t<-50?_==*a?putChar(31[a]):
main(-65,_,a+1):
main((*a=='/')+t,_,a+1):
0:*a=='/'||main(0,main(-61,*a,
"!ek;dC i@bK'(q)-[w]*%n+r3 l,{}:\nuwlOCa-O;m .vpbks,fxntdCeghiry"
),a+1);
}
Äëя òåõ, êòî ïîëåíèëñя íaáðaòü ïðèâåäåííûé âûøå òåêñò ía êëaâèaòóðå, ñêîìïè- ëèðîâaòü åãî è çaïóñòèòü ïðîãðaììó ía âûïîëíåíèå, ïðèâåäó ôðaãìåíò åå âû- âîäa:
On the first day Of Christmas my true lOve gave tO me a partridge in a pear tree.
On the seCOnd day Of Christmas my true lOve gave tO me twO turtle dOves
and a partridge in a pear tree.
On the third day Of Christmas my true lOve gave tO me three frenCh hens, twO turtle dOves
and a partridge in a pear tree.

On the twelfth day Of Christmas my true lOve gave tO me


1 Ìîæåò ïîêaçaòüñя ñòðaííûì, ça÷åì ñ ñaìîãî ía÷aëa äóìaòü î ìîäèôèêaöèè ïðîãðaììû. Íî âåäü äëя ëþáîãî ñêîëüêî-íèáóäü óäa÷íîãî êîììåð÷åñêîãî ïðîäóêòa âûõîä íîâûõ âåð- ñèé — åäèíñòâåííûé ñïîñîá íå ïîòåðяòü aêòóaëüíîñòü ñðåäè ïîëüçîâaòåëåé.

twelve drummers drumming, eleven pipers piping, ten lOrds a-leaping, nine ladies danCing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five gOld rings;


fOur Calling birds, three frenCh hens, twO turtle dOves and a partridge in a pear tree.
Ïåðâûé øaã â íaïèñaíèè ïðîãðaììû — çaïèñaòü ía åñòåñòâåííîì яçûnå (âîç- ìîæíî, ñ ïðèìåíåíèåì îáîáùåííûõ áëîê-ñõåì), ÷òî èìåííî è êaê îía äîëæía äåëaòü. Åñëè âû íå ìîæåòå ñôîðìóëèðîâaòü aëãîðèòì ïî-ðóññêè, âåëèêa âåðîяò- íîñòü òîãî, ÷òî îí ïëîõî ïðîäóìaí (åñòåñòâåííî, я íå èìåþ â âèäó, ÷òî íaäî «ïðî- ãîâaðèâaòü» âñå ía óðîâíå îòäåëüíûõ îïåðaòîðîâ, íaïðèìåð, «èçìåíяя èíäåêñ îò 1 äî 100 ñ ø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êîí÷åííîå äåéñòâèå îôîðìëяåòñя â âèäå ôóí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 1–2 ýêðaía: îäèíaêîâî ñëîæíî ðaçáèðaòüñя â ïðîãðaì- ìå, ñîäåðæaùåé íåñêîëüêî íåîáúяòíûõ ôóíêöèé, è â ðîññûïè èç ñîòåí ïîäïðî- ãðaìì ïî íåñêîëüêî ñòðîê êaæäaя.
Åñëè íåêîòîðûå äåéñòâèя âñòðå÷aþòñя â òåëå ïðîãðaììû õîòя áû äâaæäû, èõ òaê- æå íóæíî îôîðìèòü â âèäå ôóíêöèè. Îäíîòèïíûå äåéñòâèя îôîðìëяþòñя â âèäå ïåðåãðóæåííûõ ôóíêöèé èëè ôóíêöèé ñ ïaðaìåòðaìè. Êîðîòêèå ôóíêöèè èìååò ñìûñë îáúяâèòü ñ äèðåêòèâîé inline.
Íåîáõîäèìî òù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 i, j èëè k. Èìåía ìaêðîñîâ ïðåäïî÷òèòåëü- íåå çaïèñûâaòü çaãëaâíûìè áóêâaìè, ÷òîáû îòëè÷aòü èõ îò äðóãèõ îáúåêòîâ ïðîãðaììû. Íå ðåêîìåíäóåòñя èñïîëüçîâaòü èìåía, ía÷èíaþùèåñя ñ ñèìâîëa ïîä÷åðêèâaíèя, èìåía òèïîâ, îêaí÷èâaþùèåñя ía _t, a òaêæå èäåíòèôèêaòîðû, ñîâïaäaþùèå ñ èìåíaìè ðåñóðñîâ ñòaíäaðòíîé áèáëèîòåêè C++.

Download 2 Mb.

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