Логические выражения (PascalABC.NET)

Материал из Информационная безопасностя
Версия от 19:02, 9 мая 2023; Безуглов Сергей (обсуждение | вклад) (Новая страница: «{{TOCRight}} Логическое выражение, подобно арифметическому, является неким аналогом математи...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Логическое выражение, подобно арифметическому, является неким аналогом математической формулы и результатом его вычисления будет одна из двух логических констант – True или False.

Логические выражения могут строиться:

  • на основе логического выражения с предшествующей ему унарной операцией логического отрицания;
  • на основе двух арифметических выражений, связанных операцией отношения;
  • на основе двух логических выражений, связанных логической операцией.

Операции отношения

Операции отношения хорошо известны из математики. Их шесть: равно « = », не равно « <> », меньше « < », меньше или равно « <= », больше « > » и больше или равно « >= ». Если с помощью одной из этих операций связать два арифметических выражения, мы получим утверждение, которое будет истинным, либо ложным.

  • 6 < 9.2 – истинное утверждение и значением логического выражения будет True.
  • 3 = 5 – ложное утверждение; значением логического выражения будет False.
  • 2 * 2 = 5 – ложное утверждение, False.
  • 5 * 8 > (10 - 7) * 8 – True. 5 * 8 = 40, (10 – 7) * 8 = 24, 40 > 24 истинно.

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

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

В Паскале определена унарная логическая операция и три бинарных.

  • унарная not –логическое отрицание («НЕ», инверсия);
  • or – логическое сложение («ИЛИ», дизъюнкция);
  • and – логическое умножение («И», конъюнкция);
  • xor – сложение по модулю два, «исключающее ИЛИ»

Ниже приведена таблица истинности для перечисленных операций.

A B not A A and B A or B A xor B
False False True False False False
False True True False True True
True False False False True True
True True False True True False

Логические операции имеют свои уровни приоритета.

  • функции, в том числе Sqr( ), имеют наивысший приоритет;
  • унарные операции +, –, not, операция ** имеют приоритет 1;
  • операции *, /, div, mod, and имеют приоритет 2;
  • бинарные операции + и –, а также or и xor, имеют приоритет 3;
  • операции отношения =, <>, >, >=, <, <= имеют приоритет 4.

О «короткой схеме»

Выражение P or Q истинно, если хотя бы P или Q истинно. Выражение P and Q ложно, если хотя бы P или Q ложно. Короткая схема вычисления значения логического выражения PascalABC.NET предполагает, что если значения P достаточно для решения вопроса об истинности выражения, значение Q не вычисляется. Короткая схема может быть полезна, давая возможность не выполнять операцию, которая может привести к возникновению ошибки в программе.