К статьям

Логические операции

3 мин


Булевы операции

«Луна - спутник Земли» - это высказывание, о котором можно сказать, правда это или нет, т. е. истинно оно или ложно. Еще одно высказывание: «Земля вращается» - оно тоже истинно..

Объединив оба высказывания союзом «И», получим: «Луна - спутник Земли, И Земля вращается». Об этом высказывании тоже можно сказать, истинно оно или ложно. Союз «И» означает, что объединенное высказывание будет истинно, когда обе его части истинны. «Луна - спутник Земли, И Земля вращается» - истинно. Значит:

Истина И Истина = Истина

«Земля плоская» - это ложное высказывание. Если скажем «Луна - спутник Земли, и Земля плоская», то получим ложное высказывание. 

Истина И Ложь = Ложь

НЕ «Земля плоска» - это уже истинное высказывание.

НЕ Ложь = Истина

Объединим высказывания союзом «ИЛИ»: «Луна - спутник Земли ИЛИ Земля вращается» - высказывание истинно.

Истина ИЛИ Истина = Истина

«Луна - спутник Земли ИЛИ Земля плоская» - истинно тогда, когда хотя бы одно высказывание истинно.

Истина ИЛИ Ложь = Истина

При этом неважно, какая последовательность высказывание при союзах И, ИЛИ, результат останется прежним.

Объединенное высказывание может состоять из большого количества высказываний. Для упрощения процесса вычислений, будем считать, что:

  • Истина - 1
  • Ложь - 0
  • И - логическое умножение (конъюнкция)
  • Или - логическое сложение (дизъюнкция)
  • Не - отрицание (обратное значение)

Логическое умножение и сложение выполняется по математическим правилам, но результат не превышает 1.

«Не» меняет значение на обратное.

Порядок почти по математическим правилам, только добавляется «Не», т. е. 

  1. Сначала выражения в скобках, затем
  2. Отрицание («Не»),
  3. Логическое умножение («И»),
  4. Логическое сложение («Или»).
Логическое выражение Альтернативная запись
Истина И Истина = Истина 1 * 1 = 1
Истина И Ложь = Ложь 1 * 0 = 0
Ложь И Истина = Ложь 0 * 1 = 0
Ложь И Ложь = Ложь 0 * 0 = 0
Истина Или Истина = Истина 1 + 1 = 1
Истина Или Ложь = Истина 1 + 0 = 1
Ложь Или Истина = Истина 0 + 1 = 1
Ложь Или Ложь = Ложь 0 + 0 = 0
Не Истина Не 1 = 0
Не Ложь Не 0 = 1

Теперь можем решать логические выражения любой сложности, например: нужно выяснить истинно или ложно высказывание:

Не (Истина Или Ложь) И Истина

Не (1 + 0) * 1 = Не 1 * 1 = 0 * 1 = 0 

  • первое действие в скобках (1 + 0) = 1
  • второе действие отрицание Не 1 = 0
  • третье логическое умножение 0 * 1 = 0 

Выражение ложно.

Операции сравнения

Во встроенном языке определены операции сравнения.

Операция Выражение операции
Больше Операнд1 > Операнд2
Больше или равно Операнд1 >= Операнд2
Равно Операнд1 = Операнд2
Меньше Операнд1 < Операнд2
Меньше или равно Операнд1 <= Операнд2
Не равно Операнд1 <> Операнд2

Результат операции сравнения - либо истина, либо ложь.

5 > 3 - Истина

Булевы операции и операции сравнения используют совместно.

5 > 3 И 5 <= 5 - Истина И Истина = Истина

Операции сравнения определены для разных типов.

Операция Выражение операции
Больше Число > Число
Число > Булево
Строка > Строка
Дата > Дата
Больше или равно Число >= Число
Число >= Булево
Строка >= Строка
Дата >= Дата
Меньше Число < Число
Число < Булево
Строка < Строка
Дата < Дата
Меньше или равно Число <= Число
Число <= Булево
Строка <= Строка
Дата <= Дата
Равно Любой тип = Любой тип
Не равно Либой тип <> Либой тип
  • Строки сравниваются посимвольно по числам кодов,
  • Булево преобразуется к типу число: Истина - 1, Ложь - 0,
  • Дата по оси времени.

Результат логического выражения может быть присвоен переменной, например:

Результат = 2 > 1;

Сообщить(Результат); // Да

Результат = 1 = 1;

Сообщить(Результат); // Да

Задачи на эту тему:

Рейтинг 0

Комментарии