Добавить в цитаты Настройки чтения

Страница 33 из 502

<b>true  </b><b>false </b><b>false  </b><b>true   </b><b>true   </b><b>false</b>

<b>false </b><b>true  </b><b>false  </b><b>true   </b><b>true   </b><b>true</b>

<b>true  </b><b>true  </b><b>true   </b><b>true   </b><b>false  </b><b>false</b>

Как следует из приведенной выше таблицы, результатом выполнения логической операции исключающее ИЛИ будет истинное значение (true), если один и только один ее операнд имеет значение true.

Ниже приведен пример программы, демонстрирующий применение нескольких операторов отношения и логических операторов.

<b>// Продемонстрировать применение операторов </b>

<b>// отношения и логических операторов.</b>

<b>using System;</b>

<b>class RelLogOps {</b>

<b>  static void Main() { </b>

<b>    int i, j; </b>

<b>    bool b1, b2;</b>

<b>    i = 10; </b>

<b>    j =</b> 11<b>;</b>

<b>    if(i &lt; j) Console.WriteLine(&quot;i &lt; j&quot;); </b>

<b>    if(i &lt;= j) Console.WriteLine(&quot;i &lt;= j&quot;); </b>

<b>    if (i != j) Console.WriteLine(&quot;i != j&quot;);</b>

<b>    if(i == j) Console.WriteLine(&quot;Нельзя выполнить&quot;); </b>

<b>    if(i &gt;= j) Console.WriteLine(&quot;Нельзя выполнить&quot;); </b>

<b>    if(i &gt; j) Console.WriteLine(&quot;Нельзя выполнить&quot;);</b>

<b>    b1 = true</b>;

    <b>b2 = false;</b>

<b>    if(b1 &amp; b2) Console.WriteLine(&quot;Нельзя выполнить&quot;); </b>

<b>    if(!(b1 &amp; b2)) Console.WriteLine(&quot;!(b1 &amp; b2) — true&quot;); </b>

<b>    if(b1 | b2) Console.WriteLine(&quot;bl I b2 - true&quot;); </b>

<b>    if(b1 <sup>^</sup> b2) Console.WriteLine(&quot;bl <sup>^</sup> b2 — true&quot;);</b>

<b>  }</b>

<b>}</b>

Выполнение этой программы дает следующий результат.

<b>i &lt; j </b>

<b>i &lt;= j </b>

<b>i != j</b>

<b>!(b1 &amp; b2) — true </b>

<b>b1 | b2 — true </b>

<b>b1 <sup>A</sup> b2 - true</b>

Логические операторы в C# выполняют наиболее распространенные логические операции. Тем не менее существует ряд операций, выполняемых по правилам формальной логики. Эти логические операции могут быть построены с помощью логических операторов, поддерживаемых в С#. Следовательно, в С# предусмотрен такой набор логических операторов, которого достаточно для построения практически любой логической операции, в том числе импликации. Импликация — это двоичная операция, результатом которой является ложное значение только в том случае, если левый ее операнд имеет истинное значение, а правый — ложное. (Операция импликации отражает следующий принцип: истина не может подразумевать ложь.) Ниже приведена таблица истинности для операции импликации.

p       q       Результат импликации p и q

<b>true    </b><b>true    </b><b>true</b>

<b>true    </b><b>false   </b><b>false</b>

<b>false   </b><b>false   </b><b>true</b>

<b>false   </b><b>true    </b><b>true</b>

Операция импликации может быть построена на основе комбинации логических операторов ! и |, как в приведенной ниже строке кода.

<b>! р</b> I q

В следующем примере программы демонстрируется подобная реализация операции импликации.

<b>// Построение операции импликации в С#.</b>

<b>using System;</b>

<b>class Implication { </b>

<b>  static void Main() { </b>

<b>    bool p=false, q=false;</b>

<b>    int i, j;</b>

<b>    for(i =</b>0<b>; i &lt; </b>2<b>; i++) {</b>

<b>      for(j = 0; j &lt; 2; j++) {</b>

<b>        if(i==0) </b>p <b>= true;</b>