Главная » Просмотр файлов » А.В. Столяров - Оформление программного кода

А.В. Столяров - Оформление программного кода (1108519), страница 4

Файл №1108519 А.В. Столяров - Оформление программного кода (А.В. Столяров - Оформление программного кода) 4 страницаА.В. Столяров - Оформление программного кода (1108519) страница 42019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

 ÷àñòíîñòè, ìû óçíàåì, ÷òî ñòèëè ðàññòàíîâêè îòñòóïîâ áûâàþò ðàçíûìè, íî äàëåêî íå âñå îíè äîïóñòèìû, è íàó÷èìñÿîòëè÷àòü äîïóñòèìîå îò íåäîïóñòèìîãî. Ïîêà æå îòìåòèì íåñêîëüêî íàèáîëåå ôóíäàìåíòàëüíûõ ïðèíöèïîâ.Ïðåæäå âñåãî, ðàçìåð ñòðóêòóðíûõ îòñòóïîâ áûâàåò ðàçíûì è ìîæåò çàâèñåòü îò ëè÷íûõ ïðåäïî÷òåíèé ïðîãðàììèñòà èëè (÷àùå) ðóêîâîäèòåëÿ ïðîåêòà.  âûøåïðèâåä¼ííûõ ïðèìåðàõ ìû èñïîëüçîâàëè ÷åòûðåïðîáåëà, ÷òî ñîîòâåòñòâóåò ðàçìåðó îòñòóïà, óñòàíîâëåííîìó ïî óìîë÷àíèþ â ðåäàêòîðå GNU Emacs. Âî ìíîãèõ ïðîåêòàõ (â ÷àñòíîñòè, â ÿäðå ÎÑ Linux) äëÿ ñòðóêòóðíîãî îòñòóïà èñïîëüçóþò ñèìâîë òàáóëÿöèè,ïðè÷¼ì ðîâíî îäèí. Ìîæíî âñòðåòèòü ðàçìåð îòñòóïà â äâà ïðîáåëà èìåííî òàêèå îòñòóïû ïðèíÿòû â êîäå ïðîãðàìì, âûïóñêàåìûõ Ôîíäîìñâîáîäíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ (FSF). Ñîâñåì ðåäêî èñïîëüçóåòñÿ òðè ïðîáåëà; òàêîé ðàçìåð îòñòóïà èíîãäà âñòðå÷àåòñÿ â ïðîãðàììàõ, íàïèñàííûõ äëÿ Windows.

Äðóãèå ðàçìåðû îòñòóïà èñïîëüçîâàòüíå ñëåäóåò, è ýòîìó åñòü ðÿä ïðè÷èí. Îäíîãî ïðîáåëà ñëèøêîì ìàëî äëÿâèçóàëüíîãî âûäåëåíèÿ áëîêîâ, ëåâûé êðàé òåêñòà ïðè ýòîì íà÷èíàåòâîñïðèíèìàòüñÿ êàê íå÷òî ïëàâíîå è íå ñëóæèò ñâîåé öåëè. Êîëè÷åñòâîïðîáåëîâ, ïðåâûøàþùåå ÷åòûðå, òðóäíî ââîäèòü: åñëè èõ áîëüøå ïÿòè,èõ ïðèõîäèòñÿ ñ÷èòàòü ïðè ââîäå, ÷òî ñèëüíî çàìåäëÿåò ðàáîòó, íî è12ïÿòü ïðîáåëîâ îêàçûâàåòñÿ ââîäèòü î÷åíü íåóäîáíî. Åñëè æå èñïîëüçîâàòü áîëüøå îäíîé òàáóëÿöèè, òî íà ýêðàí íè÷åãî íå ïîìåñòèòñÿ: â ñàìîìäåëå, òðåòèé óðîâåíü âëîæåííîñòè îêàæåòñÿ ïðè ýòîì íà 48-é ïîçèöèè,îñòàâëÿÿ âñåãî 32 çíàêîìåñòà íà âñþ èíôîðìàöèþ, à ÷åòâ¼ðòûé óðîâåíü,äëÿ êîòîðîãî ïîòðåáóåòñÿ 64-ÿ ïîçèöèÿ, âîîáùå áóäåò íåâîçìîæíî èñïîëüçîâàòü.Âòîðîé ïðèíöèï ñòðóêòóðíûõ îòñòóïîâ ñîñòîèò â èõ ïîñòîÿíñòâå âðàìêàõ îäíîé ïðîãðàììû.

Âû ìîæåòå âûáðàòü, êàêîé ðàçìåð èç äîïóñòèìûõ (äâà ïðîáåëà, òðè ïðîáåëà, ÷åòûðå ïðîáåëà, òàáóëÿöèÿ) âàì áîëüøåíðàâèòñÿ, íî âûáðàííûé âàìè ðàçìåð îòñòóïîâ äîëæåí èñïîëüçîâàòüñÿâî âñåé âàøåé ïðîãðàììå. Åñëè âäðóã âû ïî êàêèì-òî ïðè÷èíàì ðåøèòå èçìåíèòü ïåðâîíà÷àëüíîå ðåøåíèå îòíîñèòåëüíî ðàçìåðà îòñòóïîâ, òîñëåäóþùèì äåéñòâèåì äîëæíî áûòü ñîîòâåòñòâóþùåå èçìåíåíèå ðàçìåðàîòñòóïîâ âî âñåé óæå íàïèñàííîé ÷àñòè ïðîãðàììû.Íàêîíåö, ïîñëåäíèé óíèâåðñàëüíûé ïðèíöèï ñîñòîèò â òîì, ÷òîëþáàÿ ñòðóêòóðà äîëæíà çàêàí÷èâàòüñÿ â òîé æå ïîçèöèè ïî ãîðèçîíòàëè, â êîòîðîé îíà íà÷àëàñü.

Èíîãäà ýòî ïðàâèëî (îøèáî÷íî!)ïîíèìàåòñÿ â òîì ñìûñëå, ÷òî ñîîòâåòñòâóþùèå äðóã äðóãó ñêîáêè (ñëîâàbegin è end â Ïàñêàëå, ôèãóðíûå ñêîáêè â ÿçûêå Ñè è ò. ä.) äîëæíû áûòüðàçìåùåíû â îäíîé êîëîíêå, íî ýòî íåâåðíî. Îòêðûâàþùóþ ñêîáêó ÷àñòî îñòàâëÿþò íà îäíîé ñòðîêå ñ çàãîëîâêîì (îïåðàòîðà, ïîäïðîãðàììû,ñòðóêòóðû è ò.

ï.; èìåííî òàê ìû ïîñòóïèëè â âûøåïðèâåä¼ííûõ ïðèìåðàõ), ïðè ýòîì îíà ìîæåò îêàçàòüñÿ ñêîëü óãîäíî äàëåêî ñïðàâà, íîñêîáêà ïðè ýòîìíàõîäèòüñÿ â òîé æå êîëîíêå,ãäå íà÷àëñÿ çàãîëîâîê. Âîò ïðèìåð íåäîïóñòèìîãî ðàçìåùåíèÿ çàêðûâàþùåé ñêîáêè ïîä îòêðûâàþùåé:çàêðûâàþùàÿîáÿçàíàif a = 0 then beginif b = 0 thenwriteln('True for any x')elsewriteln('No roots')end{ ÒÀÊ ÍÅËÜÇß!!! }Ñðàâíèòå ýòîò ïðèìåð ñ ïðèâåä¼ííîé âûøå ïðîãðàììîé. Îòìåòèì, ÷òîñëåäóþùèé âàðèàíò ñ÷èòàåòñÿ âïîëíå äîïóñòèìûì:if a = 0 thenbeginif b = 0 thenwriteln('True for any x')elsewriteln('No roots')end13Îò ïðåäûäóùèõ ïðèìåðîâ ýòîò âàðèàíò îòëè÷àåòñÿ òåì, ÷òî ñëîâî begin(à äëÿ ÿçûêà Ñè îòêðûâàþùàÿ ôèãóðíàÿ ñêîáêà) ðàçìåùàåòñÿ íà îòäåëüíîé ñòðîêå.

Îáû÷íî â òàêèõ ñëó÷àÿõ ñêîáêè íå ñäâèãàþòñÿ îòíîñèòåëüíî çàãîëîâêà, íî è ýòî ïðàâèëî íå ÿâëÿåòñÿ àáñîëþòíûì: èíîãäàñêîáêè òîæå ñäâèãàþò. Òàêîé âàðèàíò ïðèìåíÿåòñÿ êðàéíå ðåäêî, íî, òåìíå ìåíåå, òàêæå îòíîñèòñÿ ê ÷èñëó äîïóñòèìûõ2 :if a = 0 thenbeginif b = 0 thenwriteln('True for any x')elsewriteln('No roots')endÇäåñü ìû ïî-ïðåæíåìó èñïîëüçîâàëè îòñòóï â ÷åòûðå ïðîáåëà, íîîáû÷íî ïðè òàêîé ðàññòàíîâêå îïåðàòîðíûõ ñêîáîê âîçíèêàåò îñòðûé äåôèöèò ìåñòà ïî ãîðèçîíòàëè, òàê ÷òî ÷àùå âñåãî ïðè ýòîì èñïîëüçóþòäâà ïðîáåëà, à íå ÷åòûðå.Âàæíî ïîìíèòü, ÷òî êàêîé áû èç ñòèëåé (ðàçóìååòñÿ, èç äîïóñòèìûõ )âû íè âûáðàëè, åãî ñëåäóåò ïðèäåðæèâàòüñÿ íà ïðîòÿæåíèè âñåãî òåêñòàïðîãðàììû.Îòìåòèì åù¼ îäèí âàæíûé ìîìåíò.Íè â êîåì ñëó÷àå íåëüçÿäîïóñêàòü ñìåøèâàíèÿ ïðîáåëîâ è òàáóëÿöèé ïðè ïîñòðîåíèèîòñòóïîâ.

Åñëè âû èñïîëüçóåòå äëÿ îòñòóïîâ òàáóëÿöèþ, èñïîëüçóéòåå¼; åñëè âû èñïîëüçóåòå ïðîáåëû íèêîãäà íå çàìåíÿéòå èõ òàáóëÿöèÿìè, ñêîëüêî áû èõ íè ïðèøëîñü âêîëîòèòü. Äåëî òóò â òîì, ÷òîñîîòíîøåíèå òàáóëÿöèè è ïðîáåëà, âîîáùå ãîâîðÿ, çàâèñèò îò èñïîëüçóåìîé îïåðàöèîííîé ñðåäû, òåêñòîâîãî ðåäàêòîðà, ïðîãðàììû ïðîñìîòðàè ò. ä.; äàëåêî íå âñåãäà è íå âåçäå òàáóëÿöèÿ ñîîòâåòñòâóåò âîñüìè ïîçèöèÿì.Äåëî îñëîæíÿåòñÿ åù¼ è òåì, ÷òî íåêîòîðûå òåêñòîâûå ðåäàêòîðû,ÿêîáû îðèåíòèðîâàííûå íà ïðîãðàììèñòîâ, çà÷åì-òî ïî ñîáñòâåííîé èíèöèàòèâå çàìåíÿþò âîñåìü ïðîáåëîâ ñèìâîëîì òàáóëÿöèè; â êà÷åñòâå ïðèìåðà òàêèõ ñâîåâîëüíûõ ðåäàêòîðîâ ìîæíî íàçâàòü âñòðîåííûé ðåäàêòîðñðåäû Turbo Pascal (êîíå÷íî, ýòà ñðåäà ê íûíåøíåìó âðåìåíè ìåðòâååèíûõ åãèïåòñêèõ ìóìèé, íî, ê ñîæàëåíèþ, â ó÷åáíûõ çàâåäåíèÿõ îíà âñ¼åù¼ â õîäó), à èç ðåäàêòîðîâ ïîä ÎÑ Unix ïî÷åìó-òî î÷åíü ïîïóëÿðíûéñðåäè ñòóäåíòîâ âñòðîåííûé ðåäàêòîð îáîëî÷êè Midnight Commander.òîëüêîÄëÿ òåõ, êòî óâåðåí â íåäîïóñòèìîñòè ýòîãî âàðèàíòà, çàìåòèì, ÷òî èìåííî òàêîôîðìëåíû èñõîäíûå òåêñòû Glibc è âîîáùå ïðàêòè÷åñêè âñåõ ïðîãðàìì, ñîçäàâàåìûõ êîìàíäîé GNU.

Ìîæíî ñîãëàñèòüñÿ ñ ìíåíèåì Òîðâàëüäñà, ÷òî ýòîò ñòèëü íåñëèøêîì êðàñèâ, íî íàçûâàòü åãî íåäîïóñòèìûì âñ¼ æå íå ñòîèò, ïîñêîëüêó ïðîáëåìû, âîçëàãàåìûå íà ñòðóêòóðíûå îòñòóïû, ýòîò ñòèëü ðåøàåò íè÷óòü íå õóæå äðóãèõäîïóñòèìûõ ñòèëåé.214Îáû÷íî çàìåíó ïðîáåëîâ òàáóëÿöèÿìè ìîæíî îòêëþ÷èòü; åñëè ýòî òàê îáÿçàòåëüíî îòêëþ÷èòå å¼, åñëè íåò èñïîëüçóéòå äðóãîé ðåäàêòîð. Îòìåòèì, ÷òî ïîëüçîâàòüñÿ âñòðîåííûìè ðåäàêòîðàìè òàê íàçûâàåìûõ èíòåãðèðîâàííûõ ñðåä ðàçðàáîòêè â ëþáîì ñëó÷àå íå ñòîèò åñòü ìíîãîãîðàçäî áîëåå óäîáíûõ òåêñòîâûõ ðåäàêòîðîâ, ñðåäè êîòîðûõ ìîæíî âûáðàòü òàêîé, êîòîðûé ïîíðàâèòñÿ ëè÷íî âàì.1.2.3.

Åù¼ î ïðîáåëàõÑòðóêòóðíûå îòñòóïû íå åäèíñòâåííûé ñëó÷àé, êîãäà â ïðîãðàììóðàäè å¼ ëó÷øåé ÷èòàåìîñòè âñòàâëÿþòñÿ ïðîáåëüíûå ñèìâîëû, íå âëèÿþùèå íà å¼ ñìûñë. Òàê, ñòðóêòóðíî îáîñîáëåííûå ÷àñòè ïðîãðàììû (íàïðèìåð, îòäåëüíûå ïðîöåäóðû è ôóíêöèè) ðåêîìåíäóåòñÿ îòäåëèòü äðóãîò äðóãà ïóñòûìè ñòðîêàìè. Ñèìâîëû-ðàçäåëèòåëè, êîòîðûå íå òðåáóþòïðîáåëîâ äëÿ îòäåëåíèÿ èõ îò äðóãèõ ëåêñåì, òåì íå ìåíåå ÷àñòî îáðàìëÿþò ïðîáåëàìè ñ îáåèõ ñòîðîí èëè ñ îäíîé ñòîðîíû.Ê âîïðîñó î òîì, êîãäà ñëåäóåò è êîãäà íå ñëåäóåò âñòàâëÿòü â òåêñòïðîãðàììû ¾ëèøíèå¿ ïðîáåëû, ìû åù¼ âåðí¼ìñÿ, à ïîêà îòìåòèì îäèíî÷åíü âàæíûé ìîìåíò:. Òàêèå ïðîáåëû ÷àñòî ïîÿâëÿþòñÿ â òåêñòå ïðîãðàììû ¾ñàìè ñîáîé¿, íåïðåäíàìåðåííî: íàïðèìåð,åñëè âû íàáðàëè ñòðîêó êîäà ñ ïðîáåëîì ìåæäó îòäåëüíûìè å¼ ÷àñòÿìè,à çàòåì ðåøèëè ýòó ñòðîêó ðàçîðâàòü â òîì ìåñòå, ãäå ñòîèò ïðîáåë, ïîñòàâèëè êóðñîð íà ïåðâûé ñèìâîë ïîñëå ïðîáåëà (òîò ñèìâîë, êîòîðûéñòàíåò ïåðâûì ñèìâîëîì íîâîé ñòðîêè) è íàæàëè Enter, òî ýòà êàçàëîñüáû, ïðèâû÷íàÿ, î÷åâèäíàÿ è áåçîáèäíàÿ ïîñëåäîâàòåëüíîñòü äåéñòâèéêàê ðàç è ïðèâåä¼ò ê òîìó, ÷òî íà ïðåäûäóùåé ñòðîêå â êîíöå îñòàíåòñÿ¾íåâèäèìûé¿ ïðîáåë, âåäü ñèìâîë ïåðåâîäà ñòðîêè âû âñòàâèëè ïîñëåíåãî.Ïðè÷èíà êðàéíåé íåæåëàòåëüíîñòè òàêèõ ïðîáåëîâ äîâîëüíî ïðîñòà.Åñëè ðàññìîòðåòü äâå ñòðî÷êè êîäà, åäèíñòâåííûì ðàçëè÷èåì ìåæäó êîòîðûìè îêàæåòñÿ íàëè÷èå/îòñóòñòâèå ïðîáåëîâ â êîíöå ñòðîêè, òî ôîðìàëüíî (ò.

å., íàïðèìåð, ñ òî÷êè çðåíèÿ ñèñòåì êîíòðîëÿ âåðñèé) ýòî áóäóò äâå ðàçíûå ñòðîêè, íî åñëè ýòè äâå ñòðîêè ïðåäúÿâèòü äëÿ ñðàâíåíèÿ÷åëîâåêó, îí íå ñìîæåò óâèäåòü, â ÷¼ì çàêëþ÷àåòñÿ ðàçíèöà ìåæäó íèìè.Âî ìíîãèõ ñëó÷àÿõ, âîçíèêàþùèõ â ïðîãðàììèñòñêîé ïðàêòèêå, ÷åëîâåê,èçó÷àþùèé ðàçëè÷èÿ äâóõ âåðñèé îäíîãî è òîãî æå ïðîãðàììíîãî òåêñòà, íå ìîæåò ñåáå ïîçâîëèòü îñòàâèòü òàêóþ ñèòóàöèþ áåç âíèìàíèÿ,à ýòî çíà÷èò, ÷òî åìó ïðèä¼òñÿ ïîòðàòèòü âðåìÿ (èíîãäà çíà÷èòåëüíîå)íà âûÿñíåíèå, â ÷¼ì æå òóò äåëî. Âûÿñíèòü, ÷òî â êîíöå îäíîé èç äâóõñòðîê ïðèñóòñòâóþò ¾íåâèäèìûå¿ ïðîáåëû, â íåêîòîðûõ ñëó÷àÿõ áûâàåòíåïðîñòî òàê, åñëè ïðîãðàììèñò èçó÷àåò îò÷¼ò îá èçìåíåíèÿõ â êîäå, ñãåíåðèðîâàííûé â âèäå html-ñòðàíèöû, òî ¾íåâèäèìûå¿ ïðîáåëû îííèêîãäà íå ñëåäóåò â òåêñòå â êîíöå ñòðîêèîñòàâëÿòü ïðîáåëû, êîòîðûõ ¾íå âèäíî¿15ñìîæåò çàìåòèòü íå ðàíüøå, ÷åì çàãðóçèò îáå âåðñèè â ðåäàêòîð òåêñòîâ(÷òî ìîæíî è íå äîãàäàòüñÿ ñäåëàòü).1.2.4.

Ðàçáèåíèå çàäà÷ íà ïîäçàäà÷èÂåðí¼ìñÿ ê ïðèíöèïàì íàïèñàíèÿ ñàìîðàçúÿñíÿþùåãî êîäà. Ïîñëåäíèì èç òð¼õ ïåðå÷èñëåííûõ íàìè ïðèíöèïîâ áóäåò ïðèìåí¼ííûé ê ïðîãðàììèðîâàíèþ êëàññè÷åñêèé äåâèç ¾ðàçäåëÿé è âëàñòâóé¿.Ïðîãðàììó ñëåäóåò ðàçáèòü íà ïîäïðîãðàììû (ïðîöåäóðû,ôóíêöèè è ò. ï.) òàê, ÷òîáû êàæäóþ èç íèõ ìîæíî áûëî îõâàòèòü îäíèì âçãëÿäîì. Íà÷èíàþùèå ïðîãðàììèñòû (îáû÷íî øêîëüíè-êè èëè ñòóäåíòû ìëàäøèõ êóðñîâ) ÷àñòî äåëàþò îäíó âåñüìà ñåðü¼çíóþîøèáêó: ïðåíåáðåãàÿ ïîäïðîãðàììàìè, ïûòàþòñÿ ðåàëèçîâàòü âñþ çàäà÷ó â âèäå îäíîãî áîëüøîãî ìàññèâà êîäà ãëàâíîé ïðîãðàììû íà Ïàñêàëå èëè ôóíêöèè main íà Ñè.

Характеристики

Тип файла
PDF-файл
Размер
1,1 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее