×òîáû ïðîãðàììà ðåøåíèÿ çàäà÷è îáëàäàëà ñâîéñòâîì ìàññîâîñòè, ñëåäóåò âìåñòî êîíêðåòíûõ çíà÷åíèé âåëè÷èí èñïîëüçîâàòü èõ îáîçíà÷åíèÿ, ÷òîáû èìåòü âîçìîæíîñòü èçìåíÿòü èõ çíà÷åíèÿ ïî õîäó âûïîëíåíèÿ ïðîãðàììû. Äëÿ îáîçíà÷åíèÿ ïåðåìåííûõ è ïîñòîÿííûõ âåëè÷èí, ðàçëè÷íûõ ïðîöåäóð, ôóíêöèé, îáúåêòîâ èñïîëüçóþòñÿ èìåíà – èäåíòèôèêàòîðû, óñòàíàâëèâàþùèå ñîîòâåòñòâèå ìåæäó îáúåêòîì è íåêîòîðûì íàáîðîì ñèìâîëîâ.
Äëÿ îáîçíà÷åíèÿ çàðàíåå îïðåäåëåííûõ ðàçðàáîò÷èêàìè ÿçûêà òèïîâ äàííûõ, êîíñòàíò, ïðîöåäóð è ôóíêöèé ñëóæàò ñòàíäàðòíûå èäåíòèôèêàòîðû, íàïðèìåð: integer, Sin, Cos, Ln, Sqr, Sqrt, Read, Readln, Write, Writeln.  ýòîì ïðèìåðå ñòàíäàðòíûé èäåíòèôèêàòîð Sin âûçûâàåò ôóíêöèþ, âû÷èñëÿþùóþ ñèíóñ çàäàííîãî óãëà, Read, Readln âûçûâàþò ïðîöåäóðó, îðãàíèçóþùóþ ââîä äàííûõ, Write, Writeln âûçûâàþò ïðîöåäóðó, îðãàíèçóþùóþ âûâîä äàííûõ. Ëþáîé èç ñòàíäàðòíûõ èäåíòèôèêàòîðîâ, â îòëè÷èå îò çàðåçåðâèðîâàííûõ ñëîâ, ìîæíî ïåðåîïðåäåëèòü, íî ýòî ÷àùå âñåãî ïðèâîäèò ê îøèáêàì. Ïîýòîìó íà ïðàêòèêå ñòàíäàðòíûå èäåíòèôèêàòîðû ëó÷øå èñïîëüçîâàòü áåç êàêèõ-ëèáî èçìåíåíèé.
Äëÿ îáîçíà÷åíèÿ ìåòîê, êîíñòàíò, ïåðåìåííûõ, ïðîöåäóð è ôóíêöèé, îïðåäåëåííûõ ñàìèì ïðîãðàììèñòîì, ïðèìåíÿþòñÿ ïîëüçîâàòåëüñêèå èäåíòèôèêàòîðû. Ïðè ýòîì èäåíòèôèêàòîðû â ïðîãðàììå äîëæíû áûòü óíèêàëüíûìè, ò. å. â êàæäîì áëîêå ïðîãðàììû îäèí èäåíòèôèêàòîð íå ìîæåò èñïîëüçîâàòüñÿ äëÿ îáîçíà÷åíèÿ áîëåå ÷åì îäíîé ïåðåìåííîé èëè ïîñòîÿííîé âåëè÷èíû, è ò. ä.
Êîìïèëÿòîð Turbo Pascal ñòðîãî ñëåäèò çà ýòèì, è åñëè ýòî òðåáîâàíèå íå ñîáëþäàåòñÿ, òî êîìïèëÿöèÿ ïðåðûâàåòñÿ, à íà ýêðàí âûâîäèòñÿ ñîîáùåíèå îá îøèáêå «Error 4: Duplicate identifier» è óêàçûâàåòñÿ äóáëèðóþùèéñÿ èäåíòèôèêàòîð.
 èäåíòèôèêàòîð íå ìîãóò âõîäèòü ïðîáåëû è ñïåöèàëüíûå ñèìâîëû. Îáðàòèòå âíèìàíèå, ÷òî áóêâû ðóññêîãî àëôàâèòà íå ìîãóò âõîäèòü â èäåíòèôèêàòîð Turbo Pascal.
Ïðè íàïèñàíèè ïðîãðàìì ñëåäóåò ñîáëþäàòü îáùèå ïðàâèëà íàïèñàíèÿ èäåíòèôèêàòîðîâ:
1. Èäåíòèôèêàòîð ìîæåò íà÷èíàòüñÿ òîëüêî ñ áóêâû èëè çíàêà ïîä÷åðêèâàíèÿ (èñêëþ÷åíèå ñîñòàâëÿþò ìåòêè, êîòîðûå ìîãóò íà÷èíàòüñÿ òàêæå è ñ öèôðû);
2. Èäåíòèôèêàòîð ìîæåò ñîñòîÿòü èç áóêâ, öèôð è çíàêîâ ïîä÷åðêèâàíèÿ (ïðîáåëû, òî÷êè è äðóãèå ñïåöèàëüíûå ñèìâîëû íåäîïóñòèìû);
3. Ìåæäó äâóìÿ èäåíòèôèêàòîðàìè äîëæåí áûòü ïî êðàéíåé ìåðå îäèí ïðîáåë;
4. Ìàêñèìàëüíàÿ äëèíà èäåíòèôèêàòîðà ñîñòàâëÿåò 127 ñèìâîëîâ, íî çíà÷èìûìè ÿâëÿþòñÿ òîëüêî ïåðâûå 63 ñèìâîëà;
5. Ïðè çàïèñè èäåíòèôèêàòîðîâ ìîæíî èñïîëüçîâàòü êàê ïðîïèñíûå, òàê è ñòðî÷íûå áóêâû. Êîìïèëÿòîð íå äåëàåò ðàçëè÷èé ìåæäó íèìè, õîòÿ îíè è èìåþò ðàçëè÷íûå ASCII-êîäû. Íà ïðàêòèêå ðåêîìåíäóåòñÿ ïðèìåíÿòü ýòó îñîáåííîñòü äëÿ áîëåå ïðîñòîãî ÷òåíèÿ è ïîíèìàíèÿ çíà÷åíèé èäåíòèôèêàòîðîâ. Òàê, âìåñòî èäåíòèôèêàòîðà nomerotdela ëó÷øå íàïèñàòü NomerOtdela, âûäåëèâ ïðîïèñíûìè áóêâàìè êàæäóþ èç äâóõ ñìûñëîâûõ ÷àñòåé.
Ïðàâèëüíî âûáðàííûå èäåíòèôèêàòîðû çíà÷èòåëüíî îáëåã÷àþò ÷òåíèå è ïîíèìàíèå ïðîãðàììû, à òàêæå óìåíüøàþò âåðîÿòíîñòü ïîÿâëåíèÿ îøèáîê ïðè ìîäèôèêàöèè ïðîãðàìì. Íàïðèìåð, çíà÷åíèå äàòû óäîáíåå îáîçíà÷èòü èäåíòèôèêàòîðîì Data, ÷åì ïðîñòî áóêâîé D èëè ëþáûì äðóãèì ñèìâîëîì.
Ïðèìåðû:
Metkal2
2graph – îøèáêà, èäåíòèôèêàòîð íà÷èíàåòñÿ ñ öèôðû
Block_56
Nomer.Doma – îøèáêà, èäåíòèôèêàòîð ñîäåðæèò òî÷êó
Ñóììà – îøèáêà, èäåíòèôèêàòîð ñîäåðæèò áóêâû ðóññêîãî àëôàâèòà.
|