135 lines
6.8 KiB
HTML
135 lines
6.8 KiB
HTML
<html><head>
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
<param name="Keyword" value="and">
|
|
<param name="Keyword" value="or">
|
|
<param name="Keyword" value="not">
|
|
<param name="Keyword" value="div">
|
|
<param name="Keyword" value="mod">
|
|
<param name="Keyword" value="shl">
|
|
<param name="Keyword" value="shr">
|
|
<param name="Keyword" value="xor">
|
|
<param name="Keyword" value="in">
|
|
</object>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
<title></title>
|
|
<link rel="StyleSheet" href="../../default.css"></head>
|
|
<body><H1>Âûðàæåíèÿ è îïåðàöèè</H1>
|
|
<p><strong>// óñòàðåëî è îòñóòñòâóåò â ñïðàâêå</strong></p>
|
|
Ëþáîå âûðàæåíèå èìååò îïðåäåëåííûé òèï è ïîñëå âû÷èñëåíèÿ âîçâðàùàåò íåêîòîðîå çíà÷åíèå. Ïðîñòåéøèìè âûðàæåíèÿìè ÿâëÿþòñÿ ïåðåìåííûå è êîíñòàíòû. Áîëåå ñëîæíûå âûðàæåíèÿ ñòðîÿòñÿ èç áîëåå ïðîñòûõ ñ èñïîëüçîâàíèåì îïåðàöèé, ñêîáîê, âûçîâîâ ôóíêöèé, èíäåêñîâ è ïðèâåäåíèé òèïîâ. Äàííûå, ê êîòîðûì ïðèìåíÿþòñÿ îïåðàöèè, íàçûâàþòñÿ <i>îïåðàíäàìè</i>. <p> <b>Pascal ABC</b> èìåþòñÿ ñëåäóþùèå îïåðàöèè: <code>@</code>, </span></span></span></span><b><code>not</code></b>, <code>^</code>, <code>*</code>, <code>/</code>, <b><code>div</code></b>, <code><b>mod</b></code>, <code><b>and</b></code>, <code><b>shl</b></code>, <code><b>shr</b></code>, <code>+</code>, <code>-</code>, <code><b>or</b></code>, <code><b>xor</b></code>,
|
|
<code><b>in</b></code>, <code>=></code>, <code>=</code>, <code>></code>, <code><</code>, <code><></code>, <code><=</code> è <code>>=</code>.</p>
|
|
<h2>Àðèôìåòè÷åñêèå îïåðàöèè</h2><p>Ê <i>àðèôìåòè÷åñêèì</i> îòíîñÿòñÿ áèíàðíûå îïåðàöèè
|
|
<code>+</code> <code>-</code> <code>*</code> <code>/</code> äëÿ âåùåñòâåííûõ è öåëûõ ÷èñåë, áèíàðíûå îïåðàöèè
|
|
<b><code>div</code></b> è <b><code>mod</code></b> äëÿ öåëûõ ÷èñåë è óíàðíûå îïåðàöèè
|
|
<code>+</code> è <code>-</code> äëÿ âåùåñòâåííûõ è öåëûõ ÷èñåë. Âûðàæåíèå,
|
|
èìåþùåå ÷èñëîâîé òèï, íàçûâàåòñÿ <i>àðèôìåòè÷åñêèì</i>. Òèï àðèôìåòè÷åñêîãî âûðàæåíèÿ îïðåäåëÿåòñÿ ïî ñëåäóþùåìó ïðàâèëó: åñëè âñå îïåðàíäû öåëûå è â âûðàæåíèè îòñóòñòâóåò îïåðàöèÿ äåëåíèÿ
|
|
<code>/</code>, òî âûðàæåíèå èìååò òèï <code>integer</code>, â ïðîòèâíîì ñëó÷àå âûðàæåíèå èìååò òèï <code>real</code>. Íàïðèìåð, åñëè <code>b</code> èìååò òèï <code>byte</code>,
|
|
<code>c</code> èìååò òèï <code>1..9</code>, òî
|
|
<code>b+c</code> è <code>-b</code> èìåþò òèï <code>integer</code>, à <code>2.0+b</code> è <code>1/2</code> - òèï <code>real</code>.</p><h2>Ëîãè÷åñêèå îïåðàöèè</h2><p>Ê
|
|
<i>ëîãè÷åñêèì</i> îòíîñÿòñÿ áèíàðíûå îïåðàöèè <b><code>and</code></b>, <b><code>or</code></b> è <b><code>xor</code></b>, à òàêæå óíàðíàÿ
|
|
îïåðàöèÿ <b><code>not</code></b>,
|
|
èìåþùèå îïåðàíäû
|
|
òèïà <code>boolean</code> è âîçâðàùàþùèå çíà÷åíèå òèïà
|
|
<code>boolean</code>. Âûðàæåíèå, èìåþùåå òèï
|
|
<code>boolean</code>, íàçûâàåòñÿ <i>ëîã</i><i>è÷åñêèì</i>. </p><h2>Îïåðàöèè îòíîøåíèÿ</h2><p>Îïåðàöèè <i>îòíîøåíèÿ</i>
|
|
<code><</code>, <code>></code>, <code><=</code>, <code>>=</code>, <code>=</code>, <code><></code> âîçâðàùàþò çíà÷åíèå òèïà <code>boolean</code> è ïðèìåíÿþòñÿ ê îïåðàíäàì
|
|
öåëîãî, âåùåñòâåííîãî, ñèìâîëüíîãî, ëîãè÷åñêîãî è ñòðîêîâîãî òèïîâ, à òàêæå ê
|
|
òèïèçèðîâàííûì óêàçàòåëÿì. Îïåðàöèè <code>=</code> è <code><></code> òàêæå ïðèìåíÿþòñÿ ê îïåðàíäàì òèïà <code>pointer</code>, ê îïåðàíäàì,
|
|
ÿâëÿþùèõñÿ îáúåêòàìè êëàññîâ è ê êîíñòàíòå <b> <code>nil</code></b>. Ïðè ñðàâíåíèè
|
|
ñèìâîëà è ñòðîêè ñèìâîë ïðåîáðàçóåòñÿ â ñòðîêó äëèíû 1.</p><h2>Ïîáèòîâûå îïåðàöèè</h2><p>
|
|
<i>Ïîáèòîâûå</i> îïåðàöèè <code><b>and</b></code>, <code><b>or</b></code>, <b><code>not</code></b>,
|
|
<b><code>xor</code></b>, <code><b>shl</b></code>, <code><b>shr</b></code>
|
|
ïðîèçâîäÿò ïîáèòîâûå ìàíèïóëÿöèè ñ îïåðàíäàìè öåëîãî òèïà. Äëÿ óíàðíîé îïåðàöèè
|
|
<b><code>not</code></b> ðåçóëüòàò èìååò òîò æå òèï, ÷òî è îïåðàíä. Äëÿ îñòàëüíûõ îïåðàöèé ðåçóëüòàò èìååò
|
|
òèï <code>integer</code>.
|
|
Íàïðèìåð, åñëè <code>b</code> èìååò òèï
|
|
<code>byte</code> è <code>
|
|
b=1</code>, òî <code>b <b>shl</b> 10=1024</code>, à <code><b>not</b> b=254</code>.</p>
|
|
<h2>Ñòðîêîâûå îïåðàöèè</h2><p>Ïîìèìî îïåðàöèé îòíîøåíèÿ <code><</code>, <code>></code>, <code><=</code>, <code>>=</code>, <code>=</code>, <code><></code>, ê ñòðîêîâûì è ñèìâîëüíûì îïåðàíäàì ïðèìåíèìà îïåðàöèÿ
|
|
êîíêàòåíàöèè (ñëèÿíèÿ) <code>+</code>. Åå ðåçóëüòàò èìååò ñòðîêîâûé òèï.
|
|
Íàïðèìåð, <code>'a'+'b'='ab'</code>. </p>
|
|
<h2>Îïåðàöèÿ @</h2><p>Îïåðàöèÿ <code>@</code>
|
|
ïðèìåíÿåòñÿ ê ïåðåìåííîé è âîçâðàùàåò åå àäðåñ.</p><h2>Îïåðàöèè ñ óêàçàòåëÿìè</h2><p>
|
|
Ê òèïèçèðîâàííûì óêàçàòåëÿì ïðèìåíèìà îïåðàöèÿ <i>ðàçûìåíîâàíèÿ</i> <code>^</code>:
|
|
åñëè <code>p</code> ÿâëÿåòñÿ óêàçàòåëåì íà òèï <code>T</code>,
|
|
òî <code>p^</code> - ýëåìåíò òèïà <code>T</code>, íà
|
|
êîòîðûé óêàçûâàåò <code>p</code>.</p>
|
|
<h2>Îïåðàöèè ñ ìíîæåñòâàìè</h2><p>Ê ìíîæåñòâàì ïðèìåíèìû
|
|
îïåðàöèè <code>+</code> (îáúåäèíåíèå), <code>-</code>
|
|
(ðàçíîñòü) è <code>*</code> (ïåðåñå÷åíèå):</p>
|
|
<blockquote>
|
|
<p><code><b>var</b> <br>
|
|
s1,s2,s: <b>set</b> <b>of</b> byte;<br>
|
|
<b>begin<br>
|
|
</b> s1:=[1..4];<br>
|
|
s2:=[2..5];<br>
|
|
s:=s1+s2; // s=[1..5]<br>
|
|
s:=s1-s2; // s=[1]<br>
|
|
s:=s1*s2; // s=[2..4] </code></p>
|
|
</blockquote>
|
|
<p>Ê ìíîæåñòâàì ïðèìåíèìû òàêæå îïåðàöèè îòíîøåíèÿ = (ðàâåíñòâî), <code><></code>
|
|
(íåðàâåíñòâî), <= (âëîæåíî) è
|
|
>= (ñîäåðæèò):</p>
|
|
<blockquote>
|
|
<p><code><b>var</b> <br>
|
|
s1,s2,s: <b>set</b> <b>of</b> byte;<br>
|
|
b: boolean;<br>
|
|
<b>begin<br>
|
|
</b> s1:=[1..4];<br>
|
|
s2:=[2..5];<br>
|
|
s:=[1,2]; <br>
|
|
b:=s1=s2; // b=False<br>
|
|
b:=s2<>s; // b=True<br>
|
|
b:=s<=s2; // b=False<br>
|
|
b:=s1>=s; // b=True</code></p>
|
|
</blockquote>
|
|
<p>Íàêîíåö, îïåðàöèÿ <code><b>in</b></code>
|
|
îïðåäåëÿåò, ïðèíàäëåæèò ëè ýëåìåíò ìíîæåñòâó:</p>
|
|
<blockquote>
|
|
<p><code>1 <b>in</b> [2..5] // False<br>
|
|
3 <b>in</b> [2..5] // True</code></p>
|
|
</blockquote>
|
|
<h2>Ïðèîðèòåò îïåðàöèé</h2>
|
|
<p>Ïðèîðèòåò îïðåäåëÿåò ïîðÿäîê âûïîëíåíèÿ îïåðàöèé â âûðàæåíèè.
|
|
Ïåðâûìè âûïîëíÿþòñÿ îïåðàöèè, èìåþùèå âûñøèé ïðèîðèòåò. Îïåðàöèè, èìåþùèå
|
|
îäèíàêîâûé ïðèîðèòåò, âûïîëíÿþòñÿ ñëåâà íàïðàâî.</p>
|
|
<p style="margin-bottom: 3pt"><b>Òàáëèöà ïðèîðèòåòîâ îïåðàöèé</b></p>
|
|
<table border="0" width="382">
|
|
<tr>
|
|
<td><code>@</code>,
|
|
<b><code>not</code></b>,
|
|
^
|
|
</td>
|
|
<td width="131">1 (íàèâûñøèé)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>*</code>,
|
|
<code>/</code>,
|
|
<code><b>div</b></code>,
|
|
<code><b>mod</b></code>,
|
|
<code><b>and</b></code>,
|
|
<code><b>shl</b></code>,
|
|
<code><b>shr</b></code></td>
|
|
<td width="131">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>+</code>,
|
|
<code>-</code>,
|
|
<code><b>or</b></code>,
|
|
<code><b>xor</b></code> </td>
|
|
<td width="131">3</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>=</code>,
|
|
<code><></code>,
|
|
<code><</code>,
|
|
<code>></code>,
|
|
<code><=</code>,
|
|
<code>>=</code>,
|
|
<code><b>in</b></code>,
|
|
<code>=></code>
|
|
</td>
|
|
<td width="131">4 (íèçøèé)</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</body></html> |