А.В. Столяров - Оформление программного кода (1108519), страница 2
Текст из файла (страница 2)
Ìåæäó ïðî÷èì, ïðîâîäÿòñÿ äàæå ìåæäóíàðîäíûå ñîðåâíîâàíèÿ, êòî íàïèøåò íåïîíÿòíåå1 .ßñíî, ÷òî â áîëüøèíñòâå ñëó÷àåâ öåëü, ïðåñëåäóåìàÿ ïðîãðàììèñòàìè, ïðÿìî ïðîòèâîïîëîæíà.  ñàìîì äåëå, ìîæíî â ðÿäå ñëó÷àåâ íåçàáîòèòüñÿ î äðóãèõ ÷èòàòåëÿõ âàøåãî êîäà, íî óæ ñåáÿ-òî, ëþáèìîãî,îáèæàòü íå ñòîèò.
Êàê óæå ãîâîðèëîñü âûøå, åñëè íå óäåëÿòü äîëæíîãî âíèìàíèÿ îôîðìëåíèþ, ëåãêî çàïóòàòüñÿ â ñîáñòâåííîé ïðîãðàììå,íå óñïåâ åù¼ íè÷åãî ñäåëàòü; äîáàâèì ê ýòîìó, ÷òî ïðîãðàììèðîâàíèå çàíÿòèå ÷ðåçâû÷àéíî óòîìèòåëüíîå, òðåáóþùåå ïðåäåëüíîãî íàïðÿæåíèÿ èíòåëëåêòóàëüíûõ âîçìîæíîñòåé, òàê ÷òî ìû íå ìîæåì ñåáå ïîçâîëèòü ïðåíåáðåæåíèå èìåþùèìèñÿ ñïîñîáàìè ñíèæåíèÿ íàãðóçêè íà ìîçã;êàê ïîêàçûâàåò ìíîãîëåòíèé îïûò ïðîãðàììèñòîâ âñåãî ìèðà, ãðàìîòíîåîôîðìëåíèå ïðîãðàììû ìîæåò ñíèçèòü óòîìëÿåìîñòü äàæå íå â ðàçû, àíà ïîðÿäîê. Èìåÿ äåëî ñ êà÷åñòâåííî îôîðìëåííûì êîäîì, âû ìîæåòåïðîðàáîòàòü ïîäðÿä 1012 ÷àñîâ, íå óòðàòèâ ñïîñîáíîñòè ê êîíñòðóêòèâíîé äåÿòåëüíîñòè, òîãäà êàê ïðè ðàáîòå ñ êîäîì, íàïèñàííûì ¾êàêïîïàëî¿, âû óæå ÷åðåç êàêèõ-íèáóäü ñîðîê ìèíóò èëè ÷àñ ïî÷óâñòâóåòå, ÷òî âàøè ìîçãè, êàê ÷àñòî ãîâîðÿò, ¾âñêèïåëè¿ è ðàáîòàòü äàëüøåîòêàçûâàþòñÿ.Õîòåëîñü áû îòìåòèòü åù¼ îäèí âàæíåéøèé ïðèíöèï.Îôîðìëåíèåïðîãðàììû äîëæíî áûòü ïðàâèëüíûì ñ ñàìîãî íà÷àëà å¼ íàïèñàíèÿ.
Ê ñîæàëåíèþ, àâòîðó ïîñîáèÿ ðåãóëÿðíî ïðèõîäèòñÿ âèäåòüñòóäåíòîâ, êîòîðûå ðàññòàíîâêó ñòðóêòóðíûõ îòñòóïîâ ¾îñòàâëÿþò íàïîòîì¿, êàê íå÷òî íå ñòîëü âàæíîå: ïóñòü ñíà÷àëà ïðîãðàììà çàðàáîòàåò, à ïîòîì óæ çàéì¼ìñÿ å¼ ¾óêðàøàòåëüñòâîì¿. Ñëîæíî ïðåäñòàâèòüñåáå äðóãóþ ñòîëü æå âîïèþùóþ ãëóïîñòü. ¾Ïîòîì¿, òî åñòü êîãäà ïðîãðàììà óæå íàïèñàíà, îòñòóïû, âîîáùå ãîâîðÿ, íå íóæíû, îíè èãðàþòñâîþ ðîëü íå òîãäà, êîãäà ïðîãðàììà ãîòîâà è îñòàëîñü ëèøü ñäàòü å¼ïðåïîäàâàòåëþ, à êàê ðàç òîãäà, êîãäà ïðîãðàììà åù¼ íå íàïèñàíà: îòñòóïû ïîçâîëÿþò âèäåòü îáùóþ ñòðóêòóðó êîäà, ýêîíîìÿ èíòåëëåêòóàëüíûåñèëû äëÿ áîëåå âàæíûõ âåùåé, ÷åì çàïîìèíàíèå è óäåðæàíèå â ãîëîâåñòðóêòóðû ïðîãðàììû è å¼ îñíîâíûõ ðåïåðíûõ òî÷åê, è ýòî íå ãîâîðÿóæå î òîì, ÷òî ïðè ãðàìîòíîé ðàññòàíîâêå îòñòóïîâ ãîðàçäî òðóäíåå ñòàíîâèòñÿ ñäåëàòü îøèáêó, çàáûâ ãäå-òî îòêðûâàþùóþ èëè çàêðûâàþùóþñêîáêó.
Ïîìíèòå, ÷òî ïåðâûì ÷èòàòåëåì âàøåé ïðîãðàììû áóäåòå âû ñàìè, à òðóäíîñòåé ïðè å¼ íàïèñàíèè áóäåò áîëåå ÷åì äîñòàòî÷íî è áåç òîãî,÷òîáû çàñòàâëÿòü ñàìîãî ñåáÿ ðàçáèðàòüñÿ â ñâî¼ì æå êîäå.1 Íàèáîëåå èçâåñòíîå èç òàêèõ ñîðåâíîâàíèé Obfuscated C Code Contest; âîòïðèìåð ïðîãðàììû, ïîáåäèâøåé â îäíîé èç íîìèíàöèé â 2011 ãîäó:main(_,l)char**l;{6*putchar(--_%20?_+_/21&56>_?strchr(1[l],_^"pt`u}rxf~c{wk~zyHHOJ]QULGQ[Z"[_/2])?111:46:32:10)^_&&main(2+_,l);}(èñõîäíî ýòà ïðîãðàììà áûëà íàïèñàíà â îäíó ñòðî÷êó).
Çàèíòåðåñîâàííûé ÷èòàòåëü íàéä¼ò îïèñàíèå ýòîé ïðîãðàììû íà ñòðàíèöåhttp://www.ioccc.org/2011/konno/hint.html4Ãëàâà 1Îáùèå ïðàâèëà èïðèíöèïû1.1. Ñðåäñòâà è öåëèÑêàçàííîå â ïðåäèñëîâèè ìîæíî ñâåñòè ê ñëåäóþùèì äâóì ïðèíöèïàì, êîòîðûå íèêîãäà íå ñëåäóåò çàáûâàòü â ïðîöåññå íàïèñàíèÿ ïðîãðàììíîãî êîäà.Ïðîãðàììà â ïåðâóþ î÷åðåäü ïðåäíàçíà÷åíà äëÿ ïðî÷òåíèÿ ÷åëîâåêîì, è ëèøü âî âòîðóþ äëÿ îáðàáîòêè êîìïüþòåðîì.2. Îáåñïå÷åíèå ïðàâèëüíîãî îôîðìëåíèÿ çàäà÷à ïåðâîî÷åðåäíàÿ; êîä, îôîðìëåííûé áåçãðàìîòíî, ìîæíî ñ÷èòàòüíåíàïèñàííûì, äàæå åñëè îí óñïåøíî ïðîõîäèò òðàíñëÿöèþ è, áûòü ìîæåò, êàê-òî ðàáîòàåò.1.Çàâåðøàÿ íà ýòîì ðàçãîâîð î âàæíîñòè ãðàìîòíîãî îôîðìëåíèÿ êîäà, ìû ïåðåéä¼ì ê îáñóæäåíèþ òîãî, êàêèì æå äîëæíî áûòü ýòî îôîðìëåíèå.
Ââîäíóþ ãëàâó ìû ïîñâÿòèì ôîðìóëèðîâêå è ðàçúÿñíåíèþ óíèâåðñàëüíûõ ïðàâèë, êîòîðûå íå çàâèñÿò îò ïðèìåíÿåìîãî ÿçûêà ïðîãðàììèðîâàíèÿ, à â ïîñëåäóþùèõ ãëàâàõ ñäåëàåì ðÿä óòî÷íåíèé, íåîáõîäèìûõ äëÿ êîíêðåòíûõ ÿçûêîâ.Ñèíòàêñèñ áîëüøèíñòâà ÿçûêîâ ïðîãðàììèðîâàíèÿ äîñòàòî÷íî ãèáîê;ìû ìîæåì ðàçîðâàòü ñòðîêó â ëþáîì ìåñòå, ãäå ïî ñìûñëó ïîëîæåíî ñòàâèòü ïðîáåë, ìû ìîæåì âìåñòî îäíîãî ïðîáåëà ïîñòàâèòü èõ äåñÿòü èëèñòî, ìû ìîæåì â ëþáîì ìåñòå êîäà âñòàâèòü ïóñòóþ ñòðîêó; ìû ìîæåì5íàïèñàòü ìíîãî êîììåíòàðèåâ, ìîæåì íàïèñàòü èõ íåìíîãî, ìîæåì âîîáùå íå ñíèñõîäèòü äî êîììåíòèðîâàíèÿ.
Äîâîëüíî øèðîêè íàøè âîçìîæíîñòè ïðè âûáîðå èäåíòèôèêàòîðîâ èì¼í äëÿ ïåðåìåííûõ, ïîäïðîãðàìì, ìàêðîñîâ è äðóãèõ ñóùíîñòåé; òàê, â îäíîé è òîé æå ñèòóàöèèðàçíûå ïðîãðàììèñòû ìîãëè áû ïðèìåíèòü îäíî èç ñëåäóþùèõ èì¼í:line_counter, LineCounter, linecounter, lines, LINES, lcnt, i_lncnt,èëè äàæå ïðîñòî c. Âïðî÷åì, íàõîäÿòñÿ è òàêèå ïðîãðàììèñòû, êîòîðûå â òîé æå ñèòóàöèè îáçîâóò ñâîþ ïåðåìåííóþ cccc, x273 èëè âîâñåabrakadabra (àâòîð ëè÷íî âèäåë ïåðåìåííóþ ñ òàêèì èìåíåì â êà÷åñòâåñ÷¼ò÷èêà ñòðîê, òàê ÷òî ýòî, óâû, íå ïðåóâåëè÷åíèå).Ñâîáîäà, êàê âîäèòñÿ, îêàçûâàåòñÿ êëàññè÷åñêîé ïàëêîé î äâóõ êîíöàõ. Åñëè ðàçíûì ëþäÿì äàòü ñîâåðøåííî îäèíàêîâûå ïèñòîëåòû, îäèíâîñïîëüçóåòñÿ îðóæèåì äëÿ ñàìîîáîðîíû, äðóãîé äëÿ ñòðåëüáû ïî ïèâíûì áóòûëêàì èëè ïî òàðåëî÷êàì, íî îáÿçàòåëüíî íàéä¼òñÿ è òðåòèé,êîòîðûé îòñòðåëèò ñåáå íîãó.
Òî÷íî òàê æå îáñòîÿò äåëà è ñ ãèáêîñòüþñèíòàêñèñà â ïðîãðàììèðîâàíèè: ìîæíî èñïîëüçîâàòü ýòó ãèáêîñòü, ÷òîáû ïðåâðàòèòü ïðîãðàììó â ëèòåðàòóðíîå ïðîèçâåäåíèå èëè õîòÿ áû ïðîñòî ñäåëàòü å¼ ÷òåíèå åñëè íå ïðèÿòíûì, òî ïî êðàéíåé ìåðå íå ñëèøêîìóòîìèòåëüíûì çàíÿòèåì; íî ìîæíî, íàîáîðîò, çàïóòàòü âñ¼ òàê, ÷òî äàæå ñàì àâòîð ïðîãðàììû íà ñëåäóþùèé äåíü íå ñìîæåò ïîíÿòü, êàê âåñüýòîò ñóìáóð â äåéñòâèòåëüíîñòè óñòðîåí.Èòàê, íàøà öåëü ãðàìîòíî ðàñïîðÿäèòüñÿ èìåþùåéñÿ ñâîáîäîé,áëàãî ýòî íå òàê ñëîæíî, è ê òîìó æå â íàøåì ðàñïîðÿæåíèè îêàçûâàåòñÿ âåñü îïûò, íàêîïëåííûé ïðîãðàììèñòàìè çà íåñêîëüêî äåñÿòèëåòèéñóùåñòâîâàíèÿ ïðîãðàììèðîâàíèÿ êàê âèäà ÷åëîâå÷åñêîé äåÿòåëüíîñòè.Ñõîäó îãîâîðèìñÿ, ÷òî ïðåäïîëîæåíèÿ î òîì, ÷òî-äå ýòî èëè òî ¾íèêîãäà íå ïîíàäîáèòñÿ¿, êàê ïðàâèëî, ñëèøêîì âðåäíû, ÷òîáû èõ äîïóñêàòü.Ïðàâèëî ¾íèêîãäà íå ãîâîðè íèêîãäà¿ âûïîëíÿåòñÿ â ïðîãðàììèðîâàíèè åäâà ëè íå ñèëüíåå, ÷åì âî âñåõ äðóãèõ îáëàñòÿõ.
Òàê, åñëè âû ñî÷ò¼òå, ÷òî âàøà ïðîãðàììà ¾íèêîãäà¿ áîëüøå âàì íå ïîíàäîáèòñÿ è ñîòð¼òåå¼, òî ïî çàêîíó âñåëåíñêîé ïîäëîñòè âû óæå ÷åðåç íåäåëþ áóäåòå îáýòîì ñîæàëåòü, ïîòîìó ÷òî îäíàæäû íàïèñàííûé êîä ïðèä¼òñÿ íàïèñàòüåù¼ ðàç, ïîòðàòèâ äðàãîöåííîå âðåìÿ. Ðîâíî òî æå ñàìîå ïðîèçîéä¼ò èâ ñëó÷àå, åñëè âû íå ñò¼ðëè ïðîãðàììó, à ¾âñåãî ëèøü¿ íàïèñàëè å¼ êàêïîïàëî: êîãäà îíà âàì ïîíàäîáèòñÿ ñíîâà (à ÷òî ýòî ïðîèçîéä¼ò, âû ìîæåòå íå ñîìíåâàòüñÿ, ñêîëü áû áåñïîëåçíîé îíà íè êàçàëàñü), âàì, ñêîðååâñåãî, íå óäàñòñÿ â íåé ðàçîáðàòüñÿ è ïðèä¼òñÿ ïåðåïèñûâàòü å¼ çàíîâî.Íè â êîåì ñëó÷àå íå ïðåäïîëàãàéòå, ÷òî ïðîãðàììà, êîòîðóþ âû ïèøåòå, íèêîãäà âàì íå ïîòðåáóåòñÿ â áóäóùåì.
Òî÷íî òàê æå íå ñëåäóåòïðåäïîëàãàòü, ÷òî ïðîãðàììó ¾íèêîãäà¿ íå ïîòðåáóåòñÿ ïîêàçàòü äðóãîìó ÷åëîâåêó; íå ñëåäóåò äàæå ïðåäïîëàãàòü, ÷òî ïðîãðàììó ¾íèêîãäà¿íå ïîòðåáóåòñÿ ïîêàçàòü ÷åëîâåêó, êîòîðûé íå çíàåò ðóññêîãî ÿçûêà (sic!ìû àáñîëþòíî ñåðü¼çíû).6Ïðèíÿâ ðåøåíèå áûòü îñòîðîæíåå ñî ñëîâîì ¾íèêîãäà¿, ìû ïðèõîäèìê íåèçáåæíîìó âûâîäó, ÷òî êðóã ÷èòàòåëåé ïðîãðàììû, ñêîëü áû ïðîñòîéè áåñïîëåçíîé îíà íè êàçàëàñü, ìîæåò îêàçàòüñÿ ãîðàçäî øèðå, íåæåëèìû ìîãëè áû ïðåäïîëîæèòü, è ïðîãðàììó ñëåäóåò ñäåëàòü ïîíÿòíîé äëÿâñåõ å¼ áóäóùèõ ÷èòàòåëåé, ñêîëüêî áû èõ íè áûëî; âðÿä ëè, êîíå÷íî,ïðîãðàììó ñòàíåò ÷èòàòü ÷åëîâåê, íå çíàþùèé ÿçûêà ïðîãðàììèðîâàíèÿ, íà êîòîðîì îíà íàïèñàíà (õîòÿ áûâàåò è òàêîå), íî íèêàêèõ äðóãèõîñìûñëåííûõ îãðàíè÷åíèé ìû a priori íàëàãàòü íå ìîæåì. ñëåäóþùèõ ïàðàãðàôàõ ìû ïåðå÷èñëèì îñíîâíûå ïðàâèëà, êîòîðûåñäåëàþò òåêñò ïðîãðàììû óäîáíûì â ðàáîòå.1.2.
Ñàìîïîÿñíÿþùèé êîäÊîíå÷íî, êîììåíòàðèè ìîãóò îáëåã÷èòü ïîíèìàíèå ïðîãðàììû, íîáîëüøèíñòâî ïðîãðàììèñòîâ ñõîäèòñÿ â òîì, ÷òî çëîóïîòðåáëÿòü êîììåíòàðèÿìè íå ñëåäóåò. Ýòî âïîëíå ìîæíî ïîíÿòü, âåäü ïðè ÷òåíèè îáèëüíîêîììåíòèðîâàííîé ïðîãðàììû ïðèõîäèòñÿ ôàêòè÷åñêè âûïîëíÿòü äâîéíóþ ðàáîòó: âíèêàòü â ñàì òåêñò è â êîììåíòàðèè ê íåìó. Ñêàçàííîåíå îçíà÷àåò, ÷òî êîììåíòàðèè âîîáùå íå ñëåäóåò ïèñàòü, íàïðîòèâ, âîìíîãèõ ñëó÷àÿõ áåç íèõ íå îáîéòèñü, íî åñëè êîä ìîæíî íàïèñàòü íàñòîëüêî ÿñíûì, ÷òîáû êîììåíòàðèåâ ê íåìó íå òðåáîâàëîñü òî èìåííîòàê, ðàçóìååòñÿ, è ñëåäóåò ïîñòóïèòü. Êîä, ïðè íàïèñàíèè êîòîðîãî ãèáêîñòü ñèíòàêñèñà ÿçûêà ïðîãðàììèðîâàíèÿ èñïîëüçóåòñÿ êàê èíñòðóìåíòîáúÿñíåíèÿ óñòðîéñòâà êîäà è èñïîëüçóåìûõ èäåé, íàçûâàþò ñàìîïîÿñíÿþùèì èëè ñàìîäîêóìåíòèðóþùèì.Ìîæíî âûäåëèòü òðè îñíîâíûõ èíñòðóìåíòà ñàìîäîêóìåíòèðîâàíèÿïðîãðàììû ýòî âûáîð îñìûñëåííûõ èäåíòèôèêàòîðîâ, ãðàìîòíîå èñïîëüçîâàíèå ñòðóêòóðíûõ îòñòóïîâ è ðàçáèåíèå çàäà÷ íà ïîäçàäà÷è.1.2.1.
Âûáîð èì¼í (èäåíòèôèêàòîðîâ)Îáùåå ïðàâèëî ïðè âûáîðå èì¼í äîñòàòî÷íî î÷åâèäíî: èäåíòèôèêàòîðû ñëåäóåò âûáèðàòü â ñîîòâåòñòâèè ñ òåì, äëÿ ÷åãî îíèèñïîëüçóþòñÿ. Íåêîòîðûå àâòîðû óòâåðæäàþò, ÷òî èäåíòèôèêàòîðûâñåãäà îáÿçàíû áûòü îñìûñëåííûìè è ñîñòîÿòü èç íåñêîëüêèõ ñëîâ. Íàñàìîì äåëå, ýòî íå âñåãäà òàê: åñëè ïåðåìåííàÿ èñïîëíÿåò ñóãóáî ëîêàëüíóþ çàäà÷ó è å¼ ïðèìåíåíèå îãðàíè÷åíî íåñêîëüêèìè ñòðî÷êàìè ïðîãðàììû, èìÿ òàêîé ïåðåìåííîé âïîëíå ìîæåò ñîñòîÿòü èç îäíîé áóêâû. ÷àñòíîñòè, öåëî÷èñëåííóþ ïåðåìåííóþ, èãðàþùóþ ðîëü ïåðåìåííîéöèêëà, ÷àùå âñåãî íàçûâàþò ïðîñòî ¾i¿, è â ýòîì íåò íè÷åãî ïëîõîãî.Íî îäíîáóêâåííûå ïåðåìåííûå óìåñòíû òîëüêî òîãäà, êîãäà èç êîíòåêñòà îäíîçíà÷íî (è áåç äîïîëíèòåëüíûõ óñèëèé íà àíàëèç êîäà) ïîíÿòíî, ÷òî ýòî òàêîå è çà÷åì îíî íóæíî, íó è åù¼, ïîæàëóé, ðàçâå ÷òî â7òåõ ðåäêèõ ñëó÷àÿõ, êîãäà ïåðåìåííàÿ ñîäåðæèò íåêóþ ôèçè÷åñêóþ âåëè÷èíó, òðàäèöèîííî îáîçíà÷àåìóþ èìåííî òàêîé áóêâîé íàïðèìåð,òåìïåðàòóðó âïîëíå ìîæíî õðàíèòü â ïåðåìåííîé t, à ïðîñòðàíñòâåííûå êîîðäèíàòû â ïåðåìåííûõ x, y è z.
Óêàçàòåëü ìîæíî íàçâàòü pèëè ptr, ñòðîêó str, ïåðåìåííóþ äëÿ âðåìåííîãî õðàíåíèÿ êàêîãî-òîçíà÷åíèÿ tmp; ïåðåìåííóþ, çíà÷åíèå êîòîðîé áóäåò ðåçóëüòàòîì âû÷èñëåíèÿ ôóíêöèè, ÷àñòî íàçûâàþò result èëè ïðîñòî res, äëÿ ñóììàòîðàâïîëíå ïîäîéä¼ò ëàêîíè÷íîå sum, è òàê äàëåå.Âàæíî ïîíèìàòü, ÷òî ïîäîáíûå ëàêîíè÷íîñòè ïîäõîäÿò ëèøü äëÿëîêàëüíûõ èäåíòèôèêàòîðîâ, òî åñòü òàêèõ, îáëàñòü âèäèìîñòè êîòîðûõ îãðàíè÷åíà îäíîé ïîäïðîãðàììîé, îäíèì êëàññîì â îáúåêòíîîðèåíòèðîâàííûõ ÿçûêàõ, â êðàéíåì ñëó÷àå îäíèì íåáîëüøèì ìîäóëåì(õîòÿ ýòî óæå íà ãðàíè ôîëà).
Åñëè æå èäåíòèôèêàòîð âèäåí âî âñåéïðîãðàììå, îí ïðîñòî îáÿçàí áûòü äëèííûì è áîëåå ÷åì îñìûñëåííûì õîòÿ áû äëÿ òîãî, ÷òîáû íå âîçíèêàëî êîíôëèêòîâ ñ èäåíòèôèêàòîðàìèèç äðóãèõ ïîäñèñòåì. ×òîáû ïîíÿòü, î ÷¼ì èä¼ò ðå÷ü, ïðåäñòàâüòå ñåáå ïðîãðàììó, íàä êîòîðîé ðàáîòàþò äâà ïðîãðàììèñòà, è îäèí èç íèõèìååò äåëî ñ òåìïåðàòóðíûì äàò÷èêîì, à äðóãîé ñ ÷àñàìè, èçìåðÿþùèìè âðåìÿ; îáå âåëè÷èíû òðàäèöèîííî îáîçíà÷àþòñÿ t, íî åñëè íàøè ïðîãðàììèñòû âîñïîëüçóþòñÿ ýòèì îáñòîÿòåëüñòâîì äëÿ èìåíîâàíèÿãëîáàëüíî âèäèìûõ îáúåêòîâ, òî ïðîáëåìû íàì íå ìèíîâàòü: ïðîãðàììà, â êîòîðîé åñòü äâå ðàçíûå ãëîáàëüíûå ïåðåìåííûå ñ îäíèì è òåì æåèìåíåì, íå èìååò øàíñîâ ïðîéòè ýòàï ëèíêîâêè.Áîëåå òîãî, êîãäà ðå÷ü èä¼ò î ãëîáàëüíî âèäèìûõ èäåíòèôèêàòîðàõ,ñàìà ïî ñåáå äëèíà è ìíîãîñëîâíîñòü åù¼ íå ãàðàíòèðóåò îòñóòñòâèÿ ïðîáëåì.