Âûðàæåíèÿ ñîñòîÿò èç îïåðàöèé è îïåðàíäîâ. Áîëüøèíñòâî îïå-
ðàöèé â ÿçûêå Ïàñêàëü ÿâëÿþòñÿ áèíàðíûìè, òî åñòü ñîäåðæàò äâà
îïåðàíäà. Îñòàëüíûå îïåðàöèè ÿâëÿþòñÿ óíàðíûìè è ñîäåðæàò òîëüêî
îäèí îïåðàíä.  áèíàðíûõ îïåðàöèÿõ èñïîëüçóåòñÿ îáû÷íîå àëãåáðàè-
÷åñêîå ïðåäñòàâëåíèå, íàïðèìåð: a+b.  óíàðíûõ îïåðàöèÿõ îïåðàöèÿ
âñåãäà ïðåäøåñòâóåò îïåðàíäó, íàïðèìåð: -b.
 áîëåå ñëîæíûõ âûðàæåíèÿõ ïîðÿäîê, â êîòîðîì âûïîëíÿþòñÿ
îïåðàöèè, ñîîòâåòñòâóåò ïðèîðèòåòó îïåðàöèé (ñì. Òàáëèöó 6.1).
Ñòàðøèíñòâî îïåðàöèé Òàáëèöà 6.1
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Ïðèîðèòåò ³ Âèä îïåðàöèè ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ @, not ³ ïåðâûé (âûñøèé) ³ óíàðíàÿ îïåðàöèÿ ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ *, /, div, mod, ³ âòîðîé ³ îïåðàöèÿ óìíîæåíèÿ,³
³ and, shl, shr ³ ³ äåëåíèÿ, ñäâèãà... ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ +, -, or, xor ³ òðåòèé ³ îïåðàöèÿ ñëîæåíèÿ ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ =, <>, <, >, ³ ÷åòâåðòûé (íèçøèé) ³ îïåðàöèÿ îòíîøåíèÿ ³
³ <=, >=, in ³ ³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Äëÿ îïðåäåëåíèè ñòàðøèíñòâà
îïåðàöèé èìååòñÿ òðè
îñíîâíûõ
ïðàâèëà:
1. Âî-ïåðâûõ, îïåðàíä, íàõîäÿùèéñÿ ìåæäó äâóìÿ îïåðàöèÿìè ñ
ðàçëè÷íûìè ïðèîðèòåòàìè, ñâÿçûâàåòñÿ ñ îïåðàöèåé, èìåþ-
ùåé áîëåå âûñîêèé ïðèîðèòåò.
2. Âî-âòîðûõ, îïåðàöèÿ,
íàõîäÿùàÿñÿ ìåæäó äâóìÿ îïåðàöèÿìè
ñ ðàâíûìè ïðèîðèòåòàìè,
ñâÿçûâàåòñÿ ñ òîé îïåðàöèåé, êî-
òîðàÿ íàõîäèòñÿ ñëåâà îò íåãî.
3. Â-òðåòüèõ, âûðàæåíèå, çàêëþ÷åííîå â ñêîáêè, ïåðåä âûïîë-
íåíèåì âû÷èñëÿåòñÿ, êàê
îòäåëüíûé îïåðàíä.
Îïåðàöèè ñ ðàâíûì ïðèîðèòåòîì
îáû÷íî âûïîëíÿþòñÿ ñëåâà-íàï-
ðàâî,
õîòÿ èíîãäà êîìïèëÿòîð ïðè ãåíåðàöèè îïòèìàëüíîãî êîäà ìî-
æåò ïåðåóïîðÿäî÷èòü îïåðàíäû.
Ïðàâèëà, îïðåäåëÿþùèå
ïîðÿäîê âûïîëíåíèÿ îïåðàöèé, âûòåêàþò
èç ñèíòàêñèñà âûðàæåíèé, êîòîðûå
ñòðîÿòñÿ èç ìíîæèòåëåé, òåðìîâ è
ïðîñòûõ âûðàæåíèé.
Ìíîæèòåëü èìååò ñëåäóþùèé
ñèíòàêñèñ:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ìíîæèòåëü
ÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>³ ññûëêà íà ÃÄÄÄÄÄÄÄÄÄÄÄ>
³ ³ ïåðåìåííóþ ³ ^
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³êîíñòàíòàÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³áåç çíàêà³ ³
³ ÀÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄ¿
ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄ¿ ³
ÃÄÄÄÄ>³ (
ÃÄÄÄÄ>³âûðàæåíèå³ÄÄÄ>³ ) ÃÄÄÄ´
³ ÀÄÄÄÙ
ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿
ÚÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³notÃÄÄÄÄ>³ìíîæèòåëüÃÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÙ
ÀÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄ¿
ÚÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³çíàêÃÄÄÄ>³ìíîæèòåëüÃÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÙ
ÀÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³ âûçîâ
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ôóíêöèè ³ ³
³ ÀÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³êîíñòðóêòîðÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ìíîæåñòâà ³ ³
³
ÀÄÄÄÄÄÄÄÄÄÄÄÙ
³
³ ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³ àäðåñíûé ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ìíîæèòåëü ³ ³
³
ÀÄÄÄÄÄÄÄÄÄÄÄÙ
³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÀÄÄÄÄ>³ ïðèâåäåíèå
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³òèïà çíà÷åíèÿ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Âûçîâ ôóíêöèè àêòèâèçèðóåò
ôóíêöèþ è ïðåäñòàâëÿåò ñîáîé çíà-
÷åíèÿ, âîçâðàùàåìûå ôóíêöèåé (ñì. äàëåå â ýòîé ãëàâå ðàçäåë "Âû-
çîâû
ôóíêöèé"). Îïèñàòåëü
ìíîæåñòâà ïðåäñòàâëÿåò ñîáîé çíà÷åíèå
ìíîæåñòâåííîãî òèïà (ñì. ðàçäåë,
îçàãëàâëåííûé, êàê "Îïèñàíèå
ìíîæåñòâ"). Ïðèâåäåíèå òèïà èçìåíÿåò òèï çíà÷åíèÿ (ñì.
"Ïðèâåäå-
íèå òèïà").
Àäðåñíûé ìíîæèòåëü âû÷èñëÿåò
àäðåñ ïåðåìåííîé, ïðîöåäóðû,
ôóíêöèè èëè ìåòîäà. Ñì. ðàçäåë
"Îïåðàöèÿ @".
Áåççíàêîâàÿ êîíñòàíòà èìååò
ñëåäóþùèé ñèíòàêñèñ:
ÚÄÄÄÄÄÄÄÄÄ¿
êîíñòàíòà áåç çíàêà ÄÄÄÂÄÄÄÄ>³ ÷èñëî ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ>
³ ³áåç çíàêà³ ^
³ ÀÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³ñèìâîëüíàÿÃÄÄÄÄÄÄÄÄ´
³ ³
ñòðîêà ³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³èäåíòèôèêàòîðÃÄÄÄÄÄ´
³ ³
êîíñòàíòû ³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÀÄÄÄÄ>³nilÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÙ
Íåêîòîðûå ïðèìåðû ìíîæèòåëåé
ìîãóò âêëþ÷àòü â ñåáÿ:
Õ { ññûëêà íà ïåðåìåííóþ }
@Õ { óêàçàòåëü íà ïåðåìåííóþ }
15 { êîíñòàíòà áåç çíàêà }
(Õ+Y+Z) { ïîäâûðàæåíèå }
SIN(Õ/2) { âûçîâ ôóíêöèè }
['0..''9','À'..'Z'] { îïèñàòåëü ìíîæåñòâà }
not Done { îòðèöàíèå áóëåâñêîé ïåðåìåííîé }
ñhar(Digit+48) { íàçíà÷åíèå òèïà
}
Òåðìû èñïîëüçóþòñÿ â îïåðàöèÿõ
óìíîæåíèÿ íà ìíîæèòåëü:
ÚÄÄÄÄÄÄÄÄÄ¿
òåðì
ÄÄÄÄÄÄÄÄ>³ìíîæèòåëüÃÄÄÄÂÄÄÄÄÄÄ>
^ ÀÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´ *
³<ÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´ /
³<ÄÄÄÄÄÄÄÄ´
³
ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´div³<ÄÄÄÄÄÄÄij
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´mod³<ÄÄÄÄÄÄÄij
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´and³<ÄÄÄÄÄÄÄij
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´shl³<ÄÄÄÄÄÄÄij
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÀÄÄÄÄÄ´shr³<ÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÙ
Ïðèâåäåì íåñêîëüêî ïðèìåðîâ
òåðìîâ:
Õ * Y
Z / (1 - Z)
Done or Error
(Õ <= Y) and (Y < Z)
 ïðîñòûõ âûðàæåíèÿõ ê òåðìàì ïðèìåíÿþòñÿ îïåðàöèè ñëîæåíèÿ
è ïðèñâàèâàíèÿ çíàêà:
ÚÄÄÄÄÄÄÄ¿
ïðîñòîå âûðàæåíèå
ÄÄÄÄÄÄÄÄ>³ òåðì ÃÄÄÄÂÄÄÄÄ>
^ ÀÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´ +
³<ÄÄÄÄÄÄ´
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´ -
³<ÄÄÄÄÄÄ´
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÃÄÄÄÄÄ´
or³<ÄÄÄÄÄij
³ ÀÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÀÄÄÄÄÄ´xor³<ÄÄÄÄÄÄÙ
ÀÄÄÄÙ
Ïðèâåäåì íåñêîëüêî ïðèìåðîâ
ïðîñòûõ âûðàæåíèé:
Õ + Y
-Õ
Hue1 + Hue2
I * J + 1
 âûðàæåíèÿõ ê ïðîñòûì âûðàæåíèÿì
ïðèìåíÿþòñÿ îïåðàöèè îòíî-
øåíèÿ.
ÚÄÄÄÄÄÄÄÄÄ¿
âûðàæåíèå ÄÄÄÄ>³ ïðîñòîå
ÃÄÄÂÄÄ>
³âûðàæåíèå³ ³ ^
ÀÄÄÄÄÄÄÄÄÄÙ ³
ÚÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄ>³
< ÃÄÄÄÄÄÄ>³ ïðîñòîå ÃÄÄÙ
³
ÀÄÄÄÙ ^ ³âûðàæåíèå³
³ ÚÄÄÄ¿
³ ÀÄÄÄÄÄÄÄÄÄÙ
ÃÄ>³<= ÃÄÄ´
³ ÀÄÄÄÙ
³
³ ÚÄÄÄ¿
³
ÃÄ>³ > ÃÄÄ´
³ ÀÄÄÄÙ
³
³ ÚÄÄÄ¿
³
ÃÄ>³>= ÃÄÄ´
³ ÀÄÄÄÙ
³
³ ÚÄÄÄ¿ ³
ÃÄ>³ =
ÃÄÄ´
³ ÀÄÄÄÙ
³
³ ÚÄÄÄ¿
³
ÃÄ>³<> ÃÄÄ´
³
ÀÄÄÄÙ ³
³ ÚÄÄÄ¿
³
ÀÄ>³in
ÃÄÄÙ
ÀÄÄÄÙ
Ïðèâåäåì íåêîòîðûå ïðèìåðû
âûðàæåíèé:
Õ = 1.5
Done <> Error
(I < J) = (J < Ê)
C in Huel
Îïåðàöèè ïîäðàçäåëÿþòñÿ íà
àðèôìåòè÷åñêèå îïåðàöèè, ëîãè÷åñ-
êèå îïåðàöèè, îïåðàöèè ñî ñòðîêàìè, îïåðàöèè
íàä ìíîæåñòâàìè,
îïåðàöèè îòíîøåíèÿ è îïåðàöèþ @
(îïåðàöèÿ ïîëó÷åíèÿ àäðåñà).
 ñëåäóþùåé òàáëèöå ïðèâåäåíû òèïû îïåðàíäîâ è ðåçóëüòàòû
äëÿ áèíàðíûõ è óíàðíûõ àðèôìåòè÷åñêèõ îïåðàöèé:
Áèíàðíûå àðèôìåòè÷åñêèå îïåðàöèè Òàáëèöà 6.2
ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Äåéñòâèå ³ Òèïû îïåðàíäîâ ³ Òèï ðåçóëüòàòà ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ + ³ Ñëîæåíèå ³ Öåëûé ³ Öåëûé ³
³ ³ ³ Âåùåñòâåííûé ³ Âåùåñòâåííûé ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ - ³ Âû÷èòàíèå ³ Öåëûé ³ Öåëûé ³
³ ³ ³ Âåùåñòâåííûé ³ Âåùåñòâåííûé ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ * ³ Óìíîæåíèå ³ Öåëûé ³ Öåëûé ³
³ ³ ³ Âåùåñòâåííûé ³ Âåùåñòâåííûé ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ / ³ Äåëåíèå ³ Öåëûé ³ Âåùåñòâåííûé ³
³ ³ ³ Âåùåñòâåííûé ³ Âåùåñòâåííûé ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ div ³ Öåëî÷èñëåííîå³ ³ ³
³ ³ äåëåíèå ³ Öåëûé ³ Öåëûé ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ mod ³ Îñòàòîê ³ Öåëûé ³ Öåëûé ³
ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ïðèìå÷àíèå: Îïåðàöèÿ + èñïîëüçóåòñÿ òàêæå, êàê îïåðà-
öèÿ äëÿ ðàáîòû ñî ñòðîêàìè è ìíîæåñòâàìè. Îïåðàöèè +, - è *
èñïîëüçóþòñÿ òàêæå äëÿ îïåðàöèé íàä ìíîæåñòâàìè.
Òàáëèöà 6.3
ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Äåéñòâèå ³ Òèï îïåðàíäà ³ Òèï ðåçóëüòàòà ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ + ³ Ñîõðàíåíèå ³ Öåëûé ³ Öåëûé ³
³ ³ çíàêà ³ Âåùåñòâåííûé ³ Âåùåñòâåííûé ³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ - ³ Îòðèöàíèå ³ Öåëûé ³ Öåëûé ³
³ ³ çíàêà ³ Âåùåñòâåííûé ³ Âåùåñòâåííûé ³
ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ëþáàÿ îïåðàöèÿ, âêëþ÷àþùàÿ îïåðàíä, òèï êîòîðîãî ÿâëÿåòñÿ
ïîäìíîæåñòâîì ïîðÿäêîâîãî òèïà, îáðàáàòûâàåòñÿ òàêæå, êàê åñëè áû
îí áûë ïîðÿäêîâîãî òèïà.
Åñëè îáà îïåðàíäà â îïåðàöèÿõ +, -, *, div èëè ìîd ÿâëÿþòñÿ
îïåðàíäàìè öåëîãî òèïà, òî òèï ðåçóëüòàòà áóäåò òàêèì æå, êàê îá-
ùèé òèï îáîèõ îïåðàíäîâ. (Îïðåäåëåíèå îáùåãî òèïà ñì. â ðàçäåëå
"Öåëûé òèï" â Ãëàâå 3).
Åñëè îäèí èëè áîëåå îïåðàíäîâ â îïåðàöèÿõ +, -, èëè * èìåþò
âåùåñòâåííûé òèï, òî òèï ðåçóëüòàòà áóäåò âåùåñòâåííûì, åñëè èñ-
ïîëüçîâàíà äèðåêòèâà êîìïèëÿòîðà {$N-}, èëè òèïîì ñ ïîâûøåííîé
òî÷íîñòüþ ïðè èñïîëüçîâàíèè äèðåêòèâû êîìïèëÿòîðà {$N+}.
Åñëè ïðè èñïîëüçîâàíèè îïåðàöèè ñîõðàíåíèÿ çíàêà èëè îïåðà-
öèè îòðèöàíèÿ çíàêà îïåðàíä èìååò öåëûé òèï, òî ðåçóëüòàò áóäåò
òîæå öåëîãî òèïà. Åñëè îïåðàíä âåùåñòâåííîãî òèïà, òî òèï ðåçóëü-
òàòà áóäåò âåùåñòâåííûì èëè òèïîì ñ ïîâûøåííîé òî÷íîñòüþ
(extended).
Çíà÷åíèå âûðàæåíèÿ õ/ó âñåãäà áóäåò âåùåñòâåííîãî òèïà
(real) èëè ñ ïîâûøåííîé òî÷íîñòüþ (extended), íåçàâèñèìî îò òèïîâ
îïåðàíäîâ. Åñëè ó ðàâíî 0, òî ðåçóëüòàò áóäåò îøèáî÷íûì.
Çíà÷åíèå âûðàæåíèå i div j ïðåäñòàâëÿåò ñîáîé ìàòåìàòè÷åñêîå
÷àñòíîå îò i/j, îêðóãëåííîå â ìåíüøóþ ñòîðîíó äî çíà÷åíèÿ öåëîãî
òèïà. Åñëè j ðàâíî 0, ðåçóëüòàò áóäåò îøèáî÷íûì.
Îïåðàöèÿ mod âîçâðàùàåò îñòàòîê, ïîëó÷åííûé ïóòåì äåëåíèÿ
äâóõ åå îïåðàíäîâ, òî åñòü:
i mod j = i - (i div j) * j
Çíàê ðåçóëüòàòà îïåðàöèè mod áóäåò òåì æå, ÷òî è çíàê i. Åñ-
ëè j ðàâíî íóëþ, òî ðåçóëüòàòîì áóäåò îøèáêà.
Òèïû ëîãè÷åñêèõ îïåðàöèé ïîêàçàíû â Òàáëèöå 6.4.
Ëîãè÷åñêèå îïåðàöèè Òàáëèöà 6.4
ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Äåéñòâèå ³Òèïû îïåðàíäîâ³ Òèï ðåçóëüòàòà³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ not ³ Îòðèöàíèå (áèòîâîå) ³ Öåëûé ³ Öåëûé ³
³ and ³ È (áèòîâîå) ³ Öåëûé ³ Öåëûé ³
³ or ³ ÈËÈ (áèòîâîå) ³ Öåëûé ³ Öåëûé ³
³ xor ³ Èñêëþ÷àþùåå ÈËÈ ³ Öåëûé ³ Öåëûé ³
³ ³ (áèòîâîå) ³ ³ ³
³ shl ³ Ñäâèã âëåâî ³ Öåëûé ³ Öåëûé ³
³ shr ³ Ñäâèã âïðàâî ³ Öåëûé ³ Öåëûé ³
ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ïðèìå÷àíèå: Îïåðàöèÿ not ÿâëÿåòñÿ óíàðíîé îïåðàöèåé.
Åñëè îïåðàíäîì îïåðàöèè not ÿâëÿåòñÿ îïåðàíä öåëîãî òèïà, òî
ðåçóëüòàò áóäåò òàêæå öåëîãî òèïà.
Åñëè îáà îïåðàíäà â îïåðàöèÿõ or, and èëè xor öåëîãî òèïà,
òî òèï ðåçóëüòàòà áóäåò òàêèì æå, êàê òèï îáîèõ îïåðàíäîâ.
Îïåðàöèè i shl j è i shr j ñäâèãàþò çíà÷åíèå i âëåâî èëè
âïðàâî íà j áèòîâ. Òèï ðåçóëüòàòà áóäåò òàêèì æå, êàê òèï i.
Òèïû îïåðàíäîâ è ðåçóëüòàò äëÿ áóëåâñêèõ îïåðàöèé ïîêàçàíû â
Òàáëèöå 6.5.
Òàáëèöà 6.5 Áóëåâñêèå îïåðàöèè
ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Äåéñòâèå ³ Òèïû îïåðàíäîâ ³ Òèï ðåçóëüòàòà³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ not ³ Îòðèöàíèå ³ Áóëåâñêèé ³ Áóëåâñêèé ³
³ and ³ Ëîãè÷åñêîå È ³ Áóëåâñêèé ³ Áóëåâñêèé ³
³ or ³ Ëîãè÷åñêîå ÈËÈ ³ Áóëåâñêèé ³ Áóëåâñêèé ³
³ xor ³ Ëîãè÷åñêîå ³ ³ ³
³ ³ èñêëþ÷àþùåå ÈËÈ ³ Áóëåâñêèé ³ Áóëåâñêèé ³
ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ïðèìå÷àíèå: Îïåðàöèÿ not ÿâëÿåòñÿ óíàðíîé îïåðàöèåé.
Ðåçóëüòàòû ýòèõ îïåðàöèé ñîîòâåòñòâóþò îáû÷íîé áóëåâîé ëîãè-
êå. Íàïðèìåð, âûðàæåíèå a and b ÿâëÿåòñÿ èñòèííûì (ïðèíèìàåò çíà-
÷åíèå Òruå) òîëüêî â òîì ñëó÷àå, åñëè îáà îïåðàíäà a è b èìåþò
èñòèííîå çíà÷åíèå (Òruå).
 Borland Pascal ïîääåðæèâàþòñÿ äâå ðàçëè÷íûå ìîäåëè ãåíåðà-
öèè êîäà äëÿ îïåðàöèé or è and - ïîëíîå âû÷èñëåíèå è âû÷èñëåíèå
ïî êîðîòêîé ñõåìå (÷àñòè÷íîå âû÷èñëåíèå).
Ïðè ïîëíîì âû÷èñëåíèè ïîäðàçóìåâàåòñÿ, ÷òî êàæäûé îïåðàíä
áóëåâñêîãî âûðàæåíèÿ, ïîñòðîåííûé ñ ïîìîùüþ îïåðàöèé or è and,
âñåãäà áóäåò âû÷èñëÿòüñÿ, äàæå åñëè ðåçóëüòàò âñåãî âûðàæåíèÿ óæå
èçâåñòåí. Ýòà ìîäåëü ïîëåçíà â òîì ñëó÷àå, êîãäà îäèí èëè áîëåå
îïåðàíäîâ â âûðàæåíèè ïðåäñòàâëÿþò ñîáîé ôóíêöèè ñ ïîáî÷íûìè ýô-
ôåêòàìè, êîòîðûå èçìåíÿþò ñìûñë ïðîãðàììû.
Âû÷èñëåíèå ïî êîðîòêîé ñõåìå îáåñïå÷èâàåò ñòðîãîå âû÷èñëåíèå
ñëåâà íàïðàâî. Ýòî âû÷èñëåíèå ïðåêðàùàåòñÿ, êàê òîëüêî ðåçóëüòàò
âñåãî âûðàæåíèÿ ñòàíîâèòñÿ î÷åâèäåí. Âî ìíîãèõ ñëó÷àÿõ ýòà ìîäåëü
óäîáíà, ïîñêîëüêó îíà îáåñïå÷èâàåò ìèíèìàëüíîå âðåìÿ âûïîëíåíèÿ
è, êàê ïðàâèëî, ìèíèìàëüíûé îáúåì êîäà. Âû÷èñëåíèå ïî êîðîòêîé
ñõåìå äåëàåò òàêæå âîçìîæíûìè òàêèå êîíñòðóêöèè, êîòîðûå â ïðî-
òèâíîì ñëó÷àå áûëè áû íåäîïóñòèìû, íàïðèìåð:
while (I<=Lenght(S)) and (S[I]<>' ') do
Inc(I);
while (P<>nil) and (P^.Value<>5) do
P:=P^.Next;
 îáîèõ ñëó÷àÿõ, åñëè ðåçóëüòàòîì ïåðâîãî âû÷èñëåíèÿ áóäåò
çíà÷åíèå False, âû÷èñëåíèå âòîðîãî âûðàæåíèÿ íå âûïîëíÿåòñÿ.
Ñõåìó âû÷èñëåíèÿ ìîæíî çàäàâàòü ñ ïîìîùüþ äèðåêòèâû êîìïèëÿ-
òîðà $B. Çíà÷åíèåì ïî óìîë÷àíèþ ÿâëÿåòñÿ ñîñòîÿíèå {$B-} (ïîêà
îíî íå áóäåò èçìåíåíî ñ ïîìîùüþ "ìåíþ" âîçìîæíîñòåé êîìïèëÿòîðà).
 ýòîì ñëó÷àå ãåíåðèðóåòñÿ êîä ñ âû÷èñëåíèåì ïî êîðîòêîé ñõåìå. Â
ñëó÷àå äèðåêòèâû {$B+} ãåíåðèðóåòñÿ êîä ñ ïîëíûì âû÷èñëåíèåì.
Ïîñêîëüêó â ñòàíäàðòíîì Ïàñêàëå íå îïðåäåëÿåòñÿ, êàêóþ ñõåìó
ñëåäóåò èñïîëüçîâàòü äëÿ âû÷èñëåíèÿ áóëåâñêèõ âûðàæåíèé, òî ïðîã-
ðàììû, çàâèñÿùèå îò äåéñòâèÿ êàêîé-ëèáî êîíêðåòíîé ñõåìû, â äåéñ-
òâèòåëüíîñòè íå ÿâëÿþòñÿ ïåðåíîñèìûìè. Îäíàêî, åñëè ïîæåðòâîâàòü
ïåðåíîñèìîñòüþ, òî î÷åíü ÷àñòî ìîæíî ïîëó÷èòü çíà÷èòåëüíûé âûèã-
ðûø âî âðåìåíè âûïîëíåíèÿ è ïðîñòîòå, êîòîðóþ ïîçâîëÿåò ïîëó÷èòü
âû÷èñëåíèå ïî êîðîòêîé ñõåìå.
Òèïû îïåðàíäîâ è ðåçóëüòàòû äëÿ îïåðàöèè ñî ñòðîêàìè ïîêàçà-
íû â Òàáëèöå 6.6.
Îïåðàöèè ñî ñòðîêàìè Òàáëèöà 6.6
ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Äåéñòâèå ³ Òèïû îïåðàíäîâ ³Òèï ðåçóëüòàòà³
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ + ³ Êîíêàòåíàöèÿ ³ Ñòðîêîâûé, ³ Ñòðîêîâûé ³
³ ³ ³ ñèìâîëüíûé èëè ³ ³
³ ³ ³óïàêîâàííûé ñòðîêîâûé³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Borland Pascal ïîçâîëÿåò èñïîëüçîâàòü îïåðàöèþ + äëÿ îáúåäè-
íåíèÿ äâóõ ñòðîêîâûõ îïåðàíäîâ. Ðåçóëüòàòîì îïåðàöèè s + t, ãäå s
è t èìåþò ñòðîêîâûé òèï, ñèìâîëüíûé òèï (Char) èëè óïàêîâàííûé
ñòðîêîâûé òèï, áóäåò êîíêàòåíàöèÿ s è t. Ðåçóëüòàò áóäåò ñîâìåñ-
òèì ñ ëþáûì ñòðîêîâûì òèïîì (íî íå ñ ñèìâîëüíûì Char è íå ñ óïà-
êîâàííûì ñòðîêîâûì òèïîì). Åñëè äëèíà ðåçóëüòèðóþùåé ñòðîêè ïðå-
âûøàåò 255 ñèìâîëîâ, òî îíà óñåêàåòñÿ äî 255 ñèìâîëîâ.
Ðàñøèðåííûé ñèíòàêñèñ (ðàçðåøåííûé ïî äèðåêòèâå êîìïèëÿòîðà
{$X+}) ïîääåðæèâàåò íåñêîëüêî îïåðàöèé ñ óêàçàòåëÿìè íà PChar.
Äëÿ óâåëè÷åíèÿ è óìåíüøåíèÿ ñìåùåíèÿ óêàçàòåëÿ ìîæíî èñïîëüçîâàòü
îïåðàöèè + è -. Ìèíóñ ìîæíî òàêæå èñïîëüçîâàòü äëÿ âû÷èñëåíèÿ
ðàññòîÿíèÿ (ðàçíîñòè) ìåæäó äâóìÿ ñèìâîëüíûìè óêàçàòåëÿìè. Åñëè P
è Q - ýòî çíà÷åíèÿ òèïà PChar, à I - çíà÷åíèå òèïà Word, òî äî-
ïóñòèìû ñëåäóþùèå êîíñòðóêöèè:
Äîïóñòèìûå êîíñòðóêöèè PChar Òàáëèöà 6.7
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Ðåçóëüòàò ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ P + I ³ Ñëîæåíèå I ñî ñìåùåíèåì P. ³
³ I + P ³ Ñëîæåíèå I ñî ñìåùåíèåì P. ³
³ P - I ³ Âû÷èòàíèå I èç ñìåùåíèÿ P. ³
³ P - Q ³ Âû÷èòàåò ñìåùåíèå Q èç ñìåùåíèÿ P. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Îïåðàöèè P + I è I + P ñêëàäûâàåò I c àäðåñîì, çàäàííûì P,
ñîçäàâàÿ óêàçàòåëü, ññûëàþùèéñÿ íà I ñèìâîëîâ ïîñëå P. Îïåðàöèÿ P
- I âû÷èòàåò I èç àäðåñà, çàäàííîãî P, ñîçäàâàÿ óêàçàòåëü, ññûëà-
þùèéñÿ íà I ñèìâîëîâ ïåðåä P.
Îïåðàöèÿ P - Q âû÷èòàåò ðàññòîÿíèå ìåæäó Q (ìëàäøèé àäðåñ) è
P (ñòàðøèé àäðåñ), ñîçäàâàÿ â ðåçóëüòàòå çíà÷åíèå òèïà Word, ïî-
êàçûâàþùåå ÷èñëî ñèìâîëîâ ìåæäó Q è P. Ýòà îïåðàöèÿ ïîäðàçóìåâà-
åò, ÷òî P è Q ññûëàþòñÿ íà îäèí ñèìâîëüíûé ìàññèâ. Åñëè äâà ñèì-
âîëüíûé óêàçàòåëÿ ññûëàþòñÿ íà ðàçíûå ìàññèâû, òî ðåçóëüòàò áóäåò
íå îïðåäåëåí.
Òèïû îïåðàíäîâ äëÿ îïåðàöèé íàä ìíîæåñòâàìè ïîêàçàíû â Òàá-
ëèöå 6.7.
Îïåðàöèè íàä ìíîæåñòâàìè Òàáëèöà 6.7
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄ¿
³ Îïåðàöèÿ ³ Äåéñòâèå ³ Òèïû îïåðàíäîâ ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄ´
³ + ³ Îáúåäèíåíèå ³ Ìíîæåñòâà ñ ñîâìåñòèìûìè òèïàìè ³
³ - ³ Ðàçíîñòü ³ Ìíîæåñòâà ñ ñîâìåñòèìûìè òèïàìè ³
³ * ³ Ïåðåñå÷åíèå ³ Ìíîæåñòâà ñ ñîâìåñòèìûìè òèïàìè ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÙ
Ðåçóëüòàòû îïåðàöèé ñîîòâåòñòâóþò ïðàâèëàì ëîãèêè ðàáîòû ñ
ìíîæåñòâàìè:
1. Ïîðÿäêîâîå çíà÷åíèå c ñîäåðæèòñÿ â a+b òîëüêî òîãäà,
êîãäà îíî ñîäåðæèòñÿ â a èëè â b.
2. Ïîðÿäêîâîå çíà÷åíèå c ñîäåðæèòñÿ â a-b òîëüêî òîãäà,
êîãäà îíî ñîäåðæèòñÿ â a è íå ñîäåðæèòñÿ â b.
3. Ïîðÿäêîâîå çíà÷åíèå c ñîäåðæèòñÿ â a*b òîëüêî òîãäà,
êîãäà îí ñîäåðæèòñÿ â îáîèõ ìíîæåñòâàõ a è b.
Åñëè íàèìåíüøèì ïîðÿäêîâûì çíà÷åíèåì, êîòîðîå ÿâëÿåòñÿ ÷ëå-
íîì ðåçóëüòàòà îïåðàöèé íàä ìíîæåñòâàìè, ÿâëÿåòñÿ a, à íàèáîëüøèì
- b, òî òèïîì ðåçóëüòàòà áóäåò ìíîæåñòâî a..b.
Òèïû îïåðàíäîâ è ðåçóëüòàòû îïåðàöèé îòíîøåíèÿ ïðèâåäåíû â
Òàáëèöå 6.8.
Òàáëèöà 6.8 Îïåðàöèè îòíîøåíèÿ
ÚÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ³ Äåéñòâèå ³ Òèïû îïåðàíäîâ ³ Òèï ðåçóëüòàòà³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ = ³ Ðàâíî ³ Ñîâìåñòèìûé ïðîñòîé, ³ Áóëåâñêèé ³
³ ³ ³ óêàçàòåëü, ìíîæåñòâåí- ³ ³
³ ³ ³ íûé ñòðîêîâûé èëè óïà- ³ ³
³ ³ ³ êîâàííûé ñòðîêîâûé ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ <> ³ Íå ðàâíî ³ Ñîâìåñòèìûé ïðîñòîé, ³ Áóëåâñêèé ³
³ ³ ³ óêàçàòåëü, ìíîæåñòâåí- ³ ³
³ ³ ³ íûé, ñòðîêîâûé èëè óïà-³ ³
³ ³ ³ êîâàííûé ñòðîêîâûé ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ < ³ Ìåíüøå ÷åì ³ Ñîâìåñòèìûé ïðîñòîé, ³ Áóëåâñêèé ³
³ ³ ³ óêàçàòåëü, ìíîæåñòâåí- ³ ³
³ ³ ³ íûé, ñòðîêîâûé èëè óïà-³ ³
³ ³ ³ êîâàííûé ñòðîêîâûé ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ > ³ Áîëüøå ÷åì ³ Ñîâìåñòèìûé ïðîñòîé, ³ Áóëåâñêèé ³
³ ³ ³ óêàçàòåëü, ìíîæåñòâåí- ³ ³
³ ³ ³ íûé ñòðîêîâûé èëè óïà- ³ ³
³ ³ ³ êîâàííûé ñòðîêîâûé ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ <= ³ Ìåíüøå ³ Ñîâìåñòèìûé ïðîñòîé, ³ Áóëåâñêèé ³
³ ³ èëè ðàâíî ³ óêàçàòåëü, ìíîæåñòâåí- ³ ³
³ ³ ³ íûé ñòðîêîâûé èëè óïà- ³ ³
³ ³ ³ êîâàííûé ñòðîêîâûé ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ >= ³ Áîëüøå ³ Ñîâìåñòèìûé ïðîñòîé, ³ Áóëåâñêèé ³
³ ³ èëè ðàâíî ³ óêàçàòåëü, ìíîæåñòâåí- ³ ³
³ ³ ³ íûé ñòðîêîâûé èëè óïà- ³ ³
³ ³ ³ êîâàííûé ñòðîêîâûé ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ <= ³Ïîäìíîæåñòâî³ Ìíîæåñòâà ñîâìåñòèìûõ ³ Áóëåâñêèé ³
³ ³ ³ òèïîâ ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄ´
³ >= ³Íàäìíîæåñòâî³ Ìíîæåñòâà ñîâìåñòèìûõ ³ Áóëåâñêèé ³
³ ³ ³ òèïîâ ³ ³
ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ in ³ Ýëåìåíò ³ Ëåâûé îïåðàíä: ëþáîé ³ Áóëåâñêèé ³
³ ³ ìíîæåñòâà ³ ïåðå÷èñëèìûé òèï t; ³ ³
³ ³ ³ ïðàâûé: ìíîæåñòâî, ³ ³
³ ³ ³ ñîâìåñòèìîå ñ t. ³ ³
ÀÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÁÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Êîãäà îïåðàöèè =, <>, <, >, >= èëè <= ïðèìåíÿþòñÿ äëÿ îïå-
ðàíäîâ ïðîñòûõ òèïîâ, òî ýòî äîëæíû áûòü ñîâìåñòèìûå òèïû. Îäíà-
êî, åñëè îäèí îïåðàíä èìååò âåùåñòâåííûé òèï, òî äðóãîé ìîæåò
áûòü öåëîãî òèïà.
Îïåðàöèè îòíîøåíèÿ =, <>, <, >, >= èëè <= ìîãóò ïðèìåíÿòñÿ
äëÿ ñðàâíåíèÿ ñòðîê ñîãëàñíî ïîðÿäêó ðàñøèðåííîãî íàáîðà ñèìâîëîâ
êîäà ASÑII. Ëþáûå äâà çíà÷åíèÿ ñòðîêîâûõ äàííûõ ìîæíî ñðàâíèòü,
ïîñêîëüêó âñå çíà÷åíèÿ ñòðîêîâûõ äàííûõ ñîâìåñòèìû.
Çíà÷åíèÿ ñèìâîëüíîãî òèïà ñîâìåñòèìû ñî çíà÷åíèÿìè ñòðîêîâî-
ãî òèïà, è ïðè èõ ñðàâíåíèè ñèìâîëüíîå çíà÷åíèå îáðàáàòûâàåòñÿ
êàê ñòðîêîâîå çíà÷åíèå ñ äëèíîé 1. Êîãäà ñî çíà÷åíèåì ñòðîêîâîãî
òèïà ñðàâíèâàåòñÿ óïàêîâàííîå ñòðîêîâîå çíà÷åíèå èç N ýëåìåíòîâ,
òî îíî îáðàáàòûâàåòñÿ, êàê çíà÷åíèå ñòðîêîâîãî òèïà äëèíîé N.
Îïåðàöèè îòíîøåíèÿ =, <>, <, >, >= èëè <= ìîãóò ïðèìåíÿòñÿ
òàêæå äëÿ äâóõ óïàêîâàííûõ çíà÷åíèé ñòðîêîâîãî òèïà, åñëè îíè ñî-
äåðæàò îäèíàêîâîå ÷èñëî ýëåìåíòîâ. Åñëè ÷èñëî ýëåìåíòîâ ðàâíî n,
òî îïåðàöèÿ ñîîòâåòñòâóåò ñðàâíåíèþ äâóõ ñòðîê, êàæäàÿ èç êîòîðûõ
èìååò äëèíó n.
Îïåðàöèè = è <> ìîãóò èñïîëüçîâàòüñÿ äëÿ ñðàâíåíèÿ îïåðàíäîâ
òèïà óêàçàòåëü. Äâà óêàçàòåëÿ ðàâíû òîëüêî â òîì ñëó÷àå, åñëè îíè
ññûëàþòñÿ íà îäèí è òîò æå îáúåêò.
Ïðè ðàçðåøåíèè ïî äèðåêòèâå êîìïèëÿòîðà {$X+} ðàñøèðåííîãî
ñèíòàêñèñà îïåðàöèè =, <>, <, >, >= èëè <= ìîãóò ïðèìåíÿòñÿ ê
çíà÷åíèÿì PChar. Çàìåòèì, îäíàêî, ÷òî ýòè îïåðàöèè îòíîøåíèÿ
ïðåäïîëàãàþò, ÷òî äâà ñðàâíèâàåìûå óêàçàòåëÿ ññûëàþòñÿ íà îäèí è
òîò æå ñèìâîëüíûé ìàññèâ.. Ïî ýòîé ïðè÷èíå â ñðàâíåíèè ó÷àñòâóþò
òîëüêî ñìåùåíèÿ äâóõ çíà÷åíèé-óêàçàòåëåé. Åñëè óêàçàòåëè ññûëàþò-
ñÿ íà ðàçíûå ñèìâîëüíûå ìàññèâû, ðåçóëüòàò áóäåò íå îïðåäåëåí.
Åñëè îïåðàíäàìè ÿâëÿþòñÿ ìíîæåñòâà a è b, òî ïðè èõ ñðàâíå-
íèè ïîëó÷àþòñÿ ñëåäóþùèå ðåçóëüòàòû:
1. Âûðàæåíèå a=b èñòèííî (= True) òîëüêî êîãäà a è b ñîäåð-
æàò îäíè è òå æå ýëåìåíòû, â ïðîòèâíîì ñëó÷àå a<>b.
2. Âûðàæåíèå a = b èñòèííî, êîãäà êàæäûé ýëåìåíò ìíîæåñòâà
à ÿâëÿåòñÿ òàêæå ýëåìåíòîì ìíîæåñòâà b.
3. Âûðàæåíèå a = b èñòèííî, êîãäà êàæäûé ýëåìåíò ìíîæåñòâà
b ÿâëÿåòñÿ òàêæå ýëåìåíòîì ìíîæåñòâà a.
Îïåðàöèÿ in âîçâðàùàåò èñòèííîå çíà÷åíèå (True), êîãäà çíà-
÷åíèå ýëåìåíòà ïîðÿäêîâîãî òèïà ÿâëÿåòñÿ ýëåìåíòîì îïåðàíäà ìíî-
æåñòâåííîãî òèïà, â ïðîòèâíîì ñëó÷àå îí âîçâðàùàåò çíà÷åíèå
False.
Îïåðàöèÿ @ èñïîëüçóåòñÿ â àäðåñíîì êîýôôèöèåíòå äëÿ âû÷èñëå-
íèÿ àäðåñà ïåðåìåííîé, ïðîöåäóðû, ôóíêöèè èëè ìåòîäà. Â Òàáëèöå
6.9 ïîêàçàí îïåðàíä è òèïû ðåçóëüòàòà.
àäðåñíûé êîýôôèöèåíò
³ ÚÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÀÄij @ ÃÄÄÂÄÄÄÄij ññûëêà íå ïåðåìåííóþ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>
ÀÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ^
³ ÚÄ¿ ³
ÃÄÄÄÄ>³ èäåíòèôèêàòîð ïðîöåäóðû ÃÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÃÄÄÄÄ>³ èäåíòèôèêàòîð ôóíêöèè ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄ¿ ³
ÀÄÄÄÄ>³ óòî÷íåííûé èäåíòèôèêàòîð ìåòîäà ÃÄÄÄÙ
ÀÄÄÄÄÙ
Îïåðàöèÿ ñîçäàíèÿ óêàçàòåëÿ Òàáëèöà 6.9
ÚÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Îïåðàöèÿ ³ Äåéñòâèå ³ Òèïû îïåðàíäîâ ³Òèï ðåçóëüòàòà³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ @ ³ Ïîëó÷åíèå ³ Ññûëêà íà ïåðåìåííóþ, ³ Óêàçàòåëü ³
³ ³ óêàçàòåëÿ ³ ïðîöåäóðó èëè èäåíòè- ³ (ñîâìåñòè- ³
³ ³ ³ ôèêàòîð ôóíêöèè. ³ ìûé ñ nil) ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Îïåðàöèÿ @ âîçâðàùàåò àäðåñ îïåðàíäà, òî åñòü ñòðîèò çíà÷å-
íèå-óêàçàòåëü, ññûëàþùååñÿ íà ýòîò îïåðàíä.
Èñïîëüçîâàíèå îïåðàöèè @ äëÿ îáû÷íîé ïåðåìåííîé (íå ïàðàìåò-
ðà) íå âûçûâàåò íèêàêèõ ñëîæíîñòåé. Ïðèìåíåíèå @ ê ññûëêå íà ïå-
ðåìåííóþ âîçâðàùàåò óêàçàòåëü íà ïåðåìåííóþ. Ââåäåì îïèñàíèÿ:
type
TwoChar = array[0..1] of char;
var
Int: integer;
TwoCharPtr: ^TwoChar;
òîãäà îïåðàòîð:
TwoCharPtr := @Int;
ïðèâîäèò ê òîìó, ÷òî TwoCharPtr äëÿ ïîëó÷åíèÿ ññûëêè íà
TwoCharPtr^ ñòàíîâèòñÿ ïîâòîðíîé èíòåðïðåòàöèåé çíà÷åíèÿ Int, êàê
åñëè áû îíî áûëî ñèìâîëüíûì ìàññèâîì array[0..1].
Òèï ïîëó÷àåìîãî â ðåçóëüòàòå óêàçàòåëü óïðàâëÿåòñÿ äèðåêòè-
âîé êîìïèëÿòîðà $T: â ñîñòîÿíèè {$T-} (ïî óìîë÷àíèþ) òèïîì ðå-
çóëüòàòà áóäåò Pointer. Äðóãèìè ñëîâàìè, ðåçóëüòàò îì ÿâëÿåòñÿ
íåòèïèçèðîâàííûé óêàçàòåëü, ñîâìåñòèìûé ñî âñåìè äðóãèìè òèïàìè
óêàçàòåëåé. Â ñîñòîÿíèè {$T+} òèïîì ðåçóëüòàòà áóäåò ^T, ãäå T -
òèï ññûëêè íà ïåðåìåííóþ. Òî åñòü òèï ðåçóëüòàòà áóäåò ñîâìåñòèì
ñî âñåìè äðóãèìè óêàçàòåëÿìè íà òèï ýòîé ïåðåìåííîé.
Ïðèìå÷àíèå: Ê èñïîëüçîâàíèþ îïåðàöèè @ ñ ïðîöåäóðíûì
òèïîì ïðèìåíÿþòñÿ ñïåöèàëüíûå ïðàâèëà. Ñì. íèæå ðàçäåë
"Ïðîöåäóðíûé òèïû â âûðàæåíèÿõ".
Âû ìîæåòå ïðèìåíÿòü îïåðàöèþ @ ê ïðîöåäóðå, ôóíêöèè èëè ìå-
òîäó. Ïðè ýòîì âû ïîëó÷èòå óêàçàòåëü íà òî÷êó âõîäà ïîäïðîãðàììû.
Íåçàâèñèìî îò ñîñòîÿíèÿ $T, òèïîì ïîëó÷åííîãî â ðåçóëüòàòå óêàçà-
òåëÿ âñåãäà áóäåò Pointer. Äðóãèìè ñëîâàìè, ðåçóëüòàòîì âñåãäà
ÿâëÿåòñÿ íåòèïèçèðîâàííûé óêàçàòåëü, ñîâìåñòèìûé ñî âñåìè äðóãèìè
ññûëî÷íûìè òèïàìè.
Ïðè ïðèìåíåíèè îïåðàöèè @ ê ìåòîäó ìåòîä äîëæåí çàäàâàòüñÿ ñ
ïîìîùüþ óòî÷íåííîãî èäåíòèôèêàòîðà (èäåíòèôèêàòîðà îáúåêòíîãî òè-
ïà, çà êîòîðûì ñëåäóåò òî÷êà è èäåíòèôèêàòîð ìåòîäà).
Âûçîâû ôóíêöèè ïðèâîäÿò ê àêòèâèçàöèè ôóíêöèè, çàäàííîé ñ
ïîìîùüþ èäåíòèôèêàòîðà ôóíêöèè. Èäåíòèôèêàòîðîì ôóíêöèè ÿâëÿåòñÿ
ëþáîé èäåíòèôèêàòîð, èñïîëüçîâàííûé äëÿ îáîçíà÷åíèÿ ôóíêöèè.
Åñëè â ñîîòâåòñòâóþùåì îïèñàíèè ôóíêöèè ñîäåðæèòñÿ ñïèñîê
ôîðìàëüíûõ ïàðàìåòðîâ òî â âûçîâå ôóíêöèè äîëæåí ñîäåðæàòüñÿ ñïè-
ñîê ôàêòè÷åñêèõ ïàðàìåòðîâ. Êàæäûé ïàðàìåòð ïîäñòàâëÿåòñÿ âìåñòî
ñîîòâåòñòâóþùåãî ôîðìàëüíîãî ïàðàìåòðà â ñîîòâåòñòâèè ñ íàáîðîì
ïðàâèë, êîòîðûé ââîäèòñÿ â Ãëàâå 9 ("Ïðîöåäóðû è ôóíêöèè").
Ïðèìå÷àíèå: Ñì. âûøå ðàçäåëû "Àêòèâèçàöèÿ ìåòîäîâ",
"Àêòèâèçàöèÿ óòî÷íåííûõ ìåòîäîâ" è "Ïðîöåäóðíûå òèïû".
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
âûçîâ ôóíêöèè ÄÂÄ>³èäåíòèôèêàòîðÃÄÂÂÄÄÄ>
³ ³ ôóíêöèè ³ ³³ ^
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ÀÄÄ>³ñïèñîê ôàêòè÷åñêèõÃÄÄÙ
ÃÄ>³ äåñèãíàòîð ÃÄ´ ³ ïàðàìåòðîâ ³
³ ³ ìåòîäà ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
³ ³ óòî÷íåííûé ³ ³
ÃÄ>³ äåñèãíàòîð ÃÄ´
³ ³ ìåòîäà ³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÀÄ>³ ññûëêà íà ÃÄÙ
³ ïåðåìåííóþ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄ¿
ñïèñîê ôàêòè÷åñêèõ ÄÄÄÄ>³ ( ÃÄÄÄÄÄ>³ôàêòè÷åñêèéÃÄÄÂÄ>³ ) ÃÄÄÄ>
ïàðàìåòðîâ ÀÄÄÄÙ ^ ³ ïàðàìåòð ³ ³ ÀÄÄÄÙ
³ ÀÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÀÄÄÄ´ , ³<ÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
ôàêòè÷åñêèé ïàðàìåòð ÄÄÂÄÄ>³ âûðàæåíèå ÃÄÄÄÄÄÄÄÄ>
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ^
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÀÄÄ>³ ññûëêà íà ÃÄÄÄÙ
³ ïåðåìåííóþ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ïðèâåäåì íåêîòîðûå ïðèìåðû âûçîâîâ ôóíêöèé:
Sum(A,63)
Maximum(147,J)
Sin(X+Y)
Eof(F)
Volume(Radius, Height)
 ðåæèìå ðàñøèðåííîãî ñèíòàêñèñà ($X+) âûçîâû ôóíêöèé ìîæíî
èñïîëüçîâàòü â êà÷åñòâå îïåðàòîðîâ, òî åñòü ðåçóëüòàò âûçîâà
ôóíêöèè ìîæåò îòáðàñûâàòüñÿ.
Îïèñàòåëü ìíîæåñòâà îïðåäåëÿåò çíà÷åíèÿ ìíîæåñòâåííîãî òèïà
è ïîëó÷àåòñÿ ïóòåì çàïèñè âûðàæåíèé, çàêëþ÷åííûõ â êâàäðàòíûå
ñêîáêè ([]). Êàæäîå âûðàæåíèå îïðåäåëÿåò çíà÷åíèå ìíîæåñòâà.
ÚÄÄÄ¿ ÚÄÄÄ¿
îïèñàòåëü ÄÄÄ>³ [ ÃÄÄÂ>³ ] ÃÄÄÄ>
ìíîæåñòâà ÀÄÄÄÙ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ^ ÀÄÄÄÙ
ÀÄÄÄ>³ ãðóïïà ÃÄÄÂÄÙ
^ ³ ýëåìåíòîâ ³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄ¿ ³
ÀÄÄÄÄ´ , ³<ÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄ¿
ãðóïïà ýëåìåíòîâ ÄÄ>³ âûðàæåíèå ÃÄÄÂÄÄÄ>
ÀÄÄÄÄÄÄÄÄÄÄÄÙ ³ ^
³ ÚÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÀÄ>³..ÃÄÄ>³ âûðàæåíèå ÃÄÙ
ÀÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÙ
Îáîçíà÷åíèå [ ] îçíà÷àåò ïóñòîå ìíîæåñòâî, òèï êîòîðîãî ñîâ-
ìåñòèì ïî ïðèñâàèâàíèþ ñ òèïîì ëþáîãî ìíîæåñòâà. Ëþáàÿ ãðóïïà
ýëåìåíòîâ, îïèñàííàÿ, êàê õ..ó, îáúÿâëÿåò ýëåìåíòàìè ìíîæåñòâà
âñå çíà÷åíèÿ â äèàïàçîíå õ..ó. Åñëè õ áîëüøå, ÷åì ó, òî õ..ó íå
îïèñûâàåò íèêàêèõ ýëåìåíòîâ è [x..y] îáîçíà÷àåò ïóñòîå ìíîæåñòâî.
 êîíêðåòíîì îïèñàòåëå ìíîæåñòâà âñå çíà÷åíèÿ âûðàæåíèÿ â
ãðóïïàõ ýëåìåíòîâ äîëæíû áûòü îäíîãî ïîðÿäêîâîãî òèïà.
Ïðèâåäåì íåêîòîðûå ïðèìåðû îïèñàòåëåé ìíîæåñòâ:
[red, C, green]
[1,5,10..K mod 12, 13, 23]
['A'..'Z', 'a'..'z', Chr(Digit+48)]
Òèï âûðàæåíèÿ ìîæíî èçìåíèòü íà äðóãîé òèï ñ ïîìîùüþ ïðèâå-
äåíèÿ òèïà çíà÷åíèé.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄ¿
ïðèâåäåíèå ÄÄÄ>³èäåíòèôèêàòîðÃÄÄ>³ ( ÃÄÄ>³âûðàæåíèåÃÄÄ>³ ) ÃÄ>
òèïà çíà÷åíèÿ ³ òèïà ³ ÀÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÙ
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Òèï âûðàæåíèÿ è çàäàâàåìûé òèï äîëæíû îáà èìåòü ïåðå÷èñëèìûé
òèï èëè òèï óêàçàòåëåé. Äëÿ ïåðå÷èñëèìûõ òèïîâ ðåçóëüòèðóþùåå
çíà÷åíèå ïîëó÷àåòñÿ ïóòåì ïðåîáðàçîâàíèÿ âûðàæåíèÿ (è âîçìîæíîé
ïðîâåðêè íà íàõîæäåíèå â äîïóñòèìûõ ãðàíèöàõ). Ïðåîáðàçîâàíèå ìî-
æåò ïðèâåñòè ê óñå÷åíèþ èëè óâåëè÷åíèþ ðàçìåðà èñõîäíîãî çíà÷åíèÿ
â òîì ñëó÷àå, åñëè âíîâü îïðåäåëÿåìûé òèï îòëè÷àåòñÿ îò òèïà âû-
ðàæåíèÿ.  òîì ñëó÷àå, êîãäà çíà÷åíèå ðàñøèðÿåòñÿ, åãî çíàê âñåã-
äà ñîõðàíÿåòñÿ. Òàêèì îáðàçîì, çíà÷åíèå ÿâëÿåòñÿ ðàñøèðÿåìûì ïî
çíàêó.
Ñèíòàêñèñ ïðèâåäåíèÿ òèïà çíà÷åíèé ïî÷òè ñîâïàäàåò ñ ñèíòàê-
ñèñîì ïðèâåäåíèÿ òèïà ïåðåìåííûõ (ñì. ðàçäåë "Ïðèâåäåíèå òèïà ïå-
ðåìåííûõ" â Ãëàâå 5). Îäíàêî ïðè ïðèâåäåíèè òèïà çíà÷åíèé îïåðà-
öèè ïðîèçâîäÿòñÿ ñî çíà÷åíèÿìè, à íå ñ ïåðåìåííûìè è, òàêèì
îáðàçîì, ìîãóò íå ó÷àñòâîâàòü â ññûëêàõ íà ïåðåìåííûå. Òî åñòü çà
ïðèâåäåíèåì òèïà çíà÷åíèÿ íå îáÿçàòåëüíî ñëåäóþò êâàëèôèêàòîðû. Â
÷àñòíîñòè, ïðèâåäåíèå òèïà çíà÷åíèé íå äîëæíî âñòðå÷àòüñÿ â ëåâîé
÷àñòè îïåðàòîðà ïðèñâàèâàíèÿ.
Íåêîòîðûå ïðèìåðû ïðèâåäåíèÿ òèïà çíà÷åíèé âêëþ÷àþò â ñåáÿ:
Intereg('A')
Char(48)
Boolean(0)
Color(2)
IntPtr(@Buffer)
BytePtr(Ptr($40,$49))
 îáùåì ñëó÷àå èñïîëüçîâàíèå ïðîöåäóðíîé ïåðåìåííîé â îïåðà-
òîðå èëè âûðàæåíèè îçíà÷àåò âûçîâ ïðîöåäóðû èëè ôóíêöèè, õðàíÿ-
ùåéñÿ â ýòîé ïåðåìåííîé. Îäíàêî, èìååòñÿ èñêëþ÷åíèå. Êîãäà êîìïè-
ëÿòîð âèäèò, ÷òî ïðîöåäóðíàÿ ïåðåìåííàÿ íàõîäèòñÿ â ëåâîé ÷àñòè
îïåðàòîðà ïðèñâàèâàíèÿ, îí çíàåò, ÷òî ïðàâàÿ ÷àñòü äîëæíà ïðåäñ-
òàâëÿòü ñîáîé ïðîöåäóðíîå çíà÷åíèå. Ðàññìîòðèì â êà÷åñòâå ïðèìåðà
ñëåäóþùóþ ïðîãðàììó:
type
IntFunc = function: Integer;
var
F: IntFunc;
N: Integer;
function ReadInt: Integer; far;
var
I: Integer;
begin
Read(I);
ReadInt := I;
end;
begin
F := ReadInt; { ïðèñâàèâàíèå ïðîöåäóðíîãî çíà÷åíèÿ }
N := ReadInt; { ïðèñâàèâàíèå ðåçóëüòàòà ôóíêöèè }
end.
Ïåðâûé îïåðàòîð îñíîâíîé ïðîãðàììû ïðèñâàèâàåò ïðîöåäóðíîå
çíà÷åíèå (àäðåñ ïðîöåäóðû) ReadInt ïðîöåäóðíîé ïåðåìåííîé F, âòî-
ðîé îïåðàòîð âûçûâàåò ReadInt è ïðèñâàèâàåò N âîçâðàùàåìîå çíà÷å-
íèå. Ðàçëè÷èå ìåæäó ïîëó÷åíèåì ïðîöåäóðíîãî çíà÷åíèÿ èëè âûçîâîì
ôóíêöèè îñóùåñòâëÿåòñÿ ïî òèïó ïåðåìåííîé, êîòîðîé ïðèñâàèâàåòñÿ
çíà÷åíèå (F èëè N).
Ê ñîæàëåíèþ, åñòü ñèòóàöèè, êîãäà êîìïèëÿòîð íå ìîæåò îïðå-
äåëèòü èç êîíòåêñòà æåëàåìîå äåéñòâèå. Íàïðèìåð, â ñëåäóþùåì îïå-
ðàòîðå äëÿ êîìïèëÿòîðà íå î÷åâèäíî, ÷òî íóæíî ñäåëàòü: ñðàâíèòü
ïðîöåäóðíîå çíà÷åíèå â F ñ ïðîöåäóðíûì çíà÷åíèåì ReadInt, ÷òîáû
îïðåäåëèòü, ÷òî F óêàçûâàåò â äàííûé ìîìåíò íà ReadInt, èëè âûç-
âàòü F è ReadInt, à çàòåì ñðàâíèòü âîçâðàùàåìûå çíà÷åíèÿ:
if F = ReadInt then
WriteLn('Equal');
Îäíàêî, ñòàíäàðòíûé ñèíòàêñèñ Ïàñêàëÿ îïðåäåëÿåò, ÷òî âõîæ-
äåíèå â âûðàæåíèå èäåíòèôèêàòîðà ôóíêöèè îçíà÷àåò âûçîâ ýòîé
ôóíêöèè, ïîýòîìó â ðåçóëüòàòå ïðåäûäóùåãî îïåðàòîðà áóäåò âûïîë-
íåí âûçîâ F è ReadInt, à çàòåì áóäóò ñðàâíèâàòüñÿ âîçâðàùàåìûå
çíà÷åíèÿ. ×òîáû ñðàâíèòü ïðîöåäóðíîå çíà÷åíèå â F ñ ïðîöåäóðíûì
çíà÷åíèåì â ReadInt, íóæíî èñïîëüçîâàòü ñëåäóþùóþ êîíñòðóêöèþ:
if @F = @ReadInt then
WriteLn('Equal');
Ïðè ïðèìåíåíèè ê ïðîöåäóðíîé ïåðåìåííîé, èäåíòèôèêàòîðó ïðî-
öåäóðû èëè ôóíêöèè îïåðàöèè ïîëó÷åíèÿ àäðåñà @, ýòà îïåðàöèÿ ïðå-
äîòâðàùàåò âûçîâ êîìïèëÿòîðîì ïðîöåäóðû è â òî æå âðåìÿ ïðåîáðà-
çóåò àðãóìåíò â óêàçàòåëü. Òàêèì îáðàçîì, @F ïðåîáðàçóåò F â íå-
òèïèçîâàííûé óêàçàòåëü-ïåðåìåííóþ, êîòîðàÿ ñîäåðæèò àäðåñ
ReadInt. Äëÿ îïðåäåëåíèÿ òîãî, ÷òî F ññûëàåòñÿ íà ReadInt ìîæíî
ñðàâíèòü äâà çíà÷åíèÿ-óêàçàòåëÿ.
Îïåðàöèÿ @ ÷àñòî èñïîëüçóåòñÿ ïðè ïðèñâàèâàíèè ïðîöåäóðíîé
ïåðåìåííîé íåòèïèçèðîâàííîãî çíà÷åíèÿ-óêàçàòåëÿ. Íàïðèìåð, îïðå-
äåëåííàÿ â Windows (â ìîäóëå WinProcs) ôóíêöèÿ GetProcAddress
âîçâðàùàåò àäðåñ ýêñïîðòèðóåìîé ôóíêöèè â DLL êàê íåòèïèçèðîâàí-
íîé çíà÷åíèå-óêàçàòåëü. Ñ ïîìîùüþ îïåðàöèè @ âûçîâ GetProcAddress
ìîæíî ïðèñâîèòü ïðîöåäóðíîé ïåðåìåííîé:
type
TStrComp = function(Str1, Str2: PChar): Integer;
var
StrComp: TStrComp:
.
.
.
begin
.
.
.
@StrComp := GetProcAddress(KernelHandle, 'Lstrcmpi');
.
.
.
end.
×òîáû ïîëó÷èòü àäðåñ â ïàìÿòè ïðîöåäóðíîé ïåðåìåííîé, à íå
àäðåñ, â íåé çàïèñàííûé, èñïîëüçóéòå äâîéíóþ îïåðàöèþ @ (@@).
Íàïðèìåð, @P îçíà÷àåò ïðåîáðàçîâàíèå P â íåòèïèçèðîâàííûé óêàçà-
òåëü-ïåðåìåííóþ, â @@P îçíà÷àåò âîçâðàùåíèå ôèçè÷åñêîãî àäðåñà
ïåðåìåííîé P.