pascalabcnet/PABCNetHelp/LangGuide/Operations_Expressions/setop.html

64 lines
2.8 KiB
HTML

<html><head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<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>Ê ìíîæåñòâàì ñ áàçîâûìè ýëåìåíòàìè îäíîãî òèïà ïðèìåíèìû
îïåðàöèè <code><b>in</b></code>
(ïðèíàäëåæíîñòü) <code>+</code> (îáúåäèíåíèå), <code>-</code>
(ðàçíîñòü) è <code>*</code> (ïåðåñå÷åíèå)<span lang="ru">, à òàêæå îïåðàòîðû </span><code>
+=</code><span lang="ru">, </span><code>-=</code><span lang="ru"> è </span>
<code>*=</code>: </p>
<blockquote>
<p><code><b>var</b> s1,s2,s: <b>set</b> <b>of</b> byte;<br>
<b>begin<br>
</b>&nbsp; s1 := [1..4];<br>
&nbsp; s2 := [2..5];<br>
&nbsp; s := s1 + s2; // s = [1..5]<br>
&nbsp; s := s1 - s2; // s = [1]<br>
&nbsp; s := s1 * s2; // s = [2..4]<br>// s <span lang="ru">+</span>=<span lang="ru">
s1 ýêâèâàëåíòíî s := s + s1</span><br>// s -=<span lang="ru">
s1 ýêâèâàëåíòíî s := s - s1</span><br>// s *=<span lang="ru">
s1 ýêâèâàëåíòíî s := s * s1</span><br><span lang="ru">&nbsp; </span>s <span lang="ru">+</span>=<span lang="ru">
</span>[3..6];&nbsp; // s = [2..6] <br>
<span lang="ru">&nbsp; </span>s -=<span lang="ru"> </span>[3];&nbsp;&nbsp;&nbsp;&nbsp;
// s = [2,4..6] <br>
<span lang="ru">&nbsp; </span>s *=<span lang="ru"> </span>[1..5];&nbsp; // s = [2,4..5]
<br>&nbsp; Print(3 <strong>in</strong> s1); // True<br>
<b>end</b>.</code></p>
</blockquote>
<p>Ê ìíîæåñòâàì&nbsp;ñ áàçîâûìè ýëåìåíòàìè îäíîãî òèïà ïðèìåíèìû òàêæå îïåðàöèè
ñðàâíåíèÿ = (ðàâåíñòâî), <code>&lt;&gt;</code>
(íåðàâåíñòâî), &lt;= (íåñòðîãî âëîæåíî), &lt; (ñòðîãî âëîæåíî), &gt;= (íåñòðîãî ñîäåðæèò) è
&gt; (ñòðîãî ñîäåðæèò):</p>
<blockquote>
<p><code>[1..3] = [1,2,3]<br>
['a'..'z'] &lt;&gt; ['0'..'9']<br>
[2..4] &lt; [1..5]<br>
[1..5] &lt;= [1..5]<br>
[1..5] &gt; [2..4]<br>
[1..5] &gt;= [1..5]</code></p>
</blockquote>
<p>Íî íåâåðíî, ÷òî <code>[1..5] &lt; [1..5]</code>.</p>
<p>Íàêîíåö, îïåðàöèÿ <code><b>in</b></code>
îïðåäåëÿåò, ïðèíàäëåæèò ëè ýëåìåíò ìíîæåñòâó: <code>3 <b>in</b> [2..5]</code>
âåðíåò <code>True</code>, <code>1 <b>in</b> [2..5]</code> âåðíåò <code>False</code>.</p>
<p>Ê ìíîæåñòâàì îòíîñÿòñÿ òàêæå òèïû HashSet&lt;T&gt; è SortedSet&lt;T&gt;. Ê ïåðåìåííûì
ýòîãî òèïà ïðèìåíèìû òå æå îïåðàöèè, ÷òî è ê âñòðîåííûì ìíîæåñòâàì:</p>
<blockquote>
<p><code><b>begin<br>
&nbsp; var
</b>s1 := new HashSet&lt;integer&gt;;<br>&nbsp; s1 := HSet(Range(1,4));<br>
<b>&nbsp; var
</b>s2 := HSet(Range(2,5));<br>
&nbsp; <strong>var </strong>s := s1 + s2; // s = [1..5]<br>
&nbsp; <strong>var </strong>s := s1 - s2; // s = [1]<br>
&nbsp; <strong>var </strong>s := s1 * s2; // s = [2..4]<br>&nbsp; Print(3
<strong>in</strong> s1); // True<br><b>end</b>.</code></p>
</blockquote>
<p>&nbsp;</p>
</body></html>