пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

II семестр:
» Инфа, 2 сем

Логические операции и выражения

Результатом логического выражения является логическоез начение True или False. Логические выражения чаще всего используются в условной инструкции и в инструкциях цикла и состоят из: 1) логических констант true, false; 2) логических переменных типа Boolean; 3) операций сравнения; 4) логических операций; 5) круглых скобок;

Операции сравнения производятся после вычисления соответствующих выражений. Результатом операции сравнения является значение False, если соответствующее отношение не выполняется, и значение True, если отношение выполняется.

Логические операции (с результатом типа boolean) при применении их к логическим выражениям (операндам логического типа) вырабатывают значения также логического типа. Логические операции AndOr и Xоr являются бинарными, операция Not — унарной. Напомним, что в языке Delphi есть одноименные побитовые (поразрядные) операции, выполняющие действия над битами (разрядами) целых чисел.

1. Отрицание: NOT ("не")

Как понятно из названия, данная операция меняет значение логического выражения на противоположное: если была истина, то станет ложь, а если была ложь, то станет истина. Выражение, над которым будет произведена операция, указывается либо после слова NOT через пробел, либо в скобках. Примеры:

k:=True; 
m:=not(k); 
n:=not m; 
p:=not(not(m));

Подразумевается, что все переменные описаны типом данных Boolean. Итак, разберём, что здесь происходит:

1.Сначала мы присваиваем переменной k значение True;

2.Далее, выполняя NOT для k получаем False: m становится равным False;

3.n становится противоположным m, т.е. True;

4.Над m делается двойное отрицание, т.е. значение p станет также False.

2. Логическое умножение (конъюнкция) - AND ("и")

В отличие от рассмотренного выше NOT, оператор AND работает уже с двумя (и более) выражениями. Логическое умножение равно истине тогда и только тогда, когда все выражения, связанные этим оператором, истинны. Если хотя бы один является ложью, то весь результат будет также ложью. Поэтому, собственно, операция и называется умножением: если истину обозначить за 1, а ложь - за 0, а числа перемножить, то при наличии хотя бы одного нуля весь результат будет нулевым. Примеры:

a:=True; 
b:=False; 
c:=True; 
d:=a and b; 
e:=a and c; 
f:=not(b) and c;

Значение d будет False, т.к. один из операндов (операнды - выражения, которыми управляют операторы) равен False (b). Переменная e примет значение True, ведь и a и c истинны. Наконец, f тоже станет True, ведьnot(b) - это истина и c тоже истина.

3. Логическое сложение (дизъюнкция) - OR ("или")

Как и ANDOR работает с несколькими операндами. Название "или" уже отвечает на вопрос "что будет в итоге": если хотя бы один из операндов - истина, то всё выражение будет истиной. Результат False будет только в случае, если все операнды будут ложными.

a:=False; 
b:=True; 
c:=a or b; 
d:=not(b) or a;

Значение переменной c станет True, а переменной d - False.

4. Исключающее "или" - XOR

Данная операция выдат результат True, если один из операндов является истиной, а другой - ложью, т.е. выражения не должны быть одинаковыми.

a:=True; 
b:=False; 
c:=a xor b; 
d:=not(a) xor b; 
e:=not(a) xor not(b);

Переменная c станет истиной, ведь a и b различны, а d - ложью, т.к. под сравнение попадут два значения False. Наконец, e станет истиной.

Итог

Этих четырёх операций - NOTANDORXOR достаточно для построения логического выражения любой сложности. Эти операторы могут как угодно комбинироваться и можно составлять большие выражения. Однако следует заботиться и о скорости работы. Если выражение вычисляется один раз - всё в норме, но если оно будет вычисляться несколько тысяч раз (например, обработка информации из большой базы данных), то грамотность составленного выражения будет отражаться на скорости выполнения операции. Если в программе появились грмоздкие логические выражения, следует задуматься об их упрощении: одно условие всегда будет проверяться быстрее, чем два.

 


09.06.2014; 18:07
хиты: 91
рейтинг:0
Точные науки
информатика
Языки программирования
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь