Логические величины
В языке определен логический тип boolean, который содержит только два значения: истина (TRUE) и ложь(FALSE). Эти константы определены таким образом, что false < true, поскольку false = 0, true = 1.При решении задач очень часто возникает необходимость составлять логические выражения, результатом которых являются значения типа boolean. Например, при сравнении числовых (символьных, строковых, логических) переменных получается логический результат TRUE или FALSE.
При выводе на экран переменной логического типа будет напечатано TRUE или FALSE.
При построении логических выражений используются:
- операции отношения: > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), = (равно), <> (не равно),
- логические операции: AND (логическое умножение), OR (логическое сложение), XOR (исключающее ИЛИ, другое название – сложение по модулю 2), NOT (отрицание).
Приведем таблицы истинности для этих операций.
X |
Y |
X AND Y | X OR Y | X XOR Y |
false |
false |
false |
false |
false |
false |
true |
false |
true |
true |
true |
false |
false |
true |
true |
true |
true |
true |
true |
false |
X |
NOT X |
false |
true |
true |
false |
Операция AND дает логический результат истина (true), когда оба операнда истины.
Операция OR дает логический результат истина, когда хотя бы один из операндов есть истина.
Операция XOR дает логический результат истина, когда операнды различны.
Логический результат дает стандартная функция ODD(x), которая применяется к целочисленному аргументу x:
odd(x) = true, если х нечетное число
odd(x) = false, если x четное число.
В логических выражениях могут встречаться как арифметические операции, так и логические.
Например,
a + b > 100 (сумма чисел a и b больше 100)
a mod 2 = 0 (число a четное)
Порядок выполнения операций определяется их приоритетом.
1. not
2. *, /, div, mod, and
3. +, -, or, xor
4. >, <, >=, <=, =, <>
Как видно из таблицы приоритетов, самый высокий приоритет у операции not, а самый низкий - у операций отношения. Операции с одинаковым приоритетом выполняются по порядку слева направо. Для изменения порядка выполнения операции используют круглые скобки.
Приведем примеры построения логических выражений, соответствующих приведенным ниже высказываниям.
1. x ∈ [a,b] |
(x >= a) and (x <= b) |
2. x ∉ [a,b] |
(x < a) or (x > b) или not((x >= a) and (x <= b)) |
3. числа а и b положительны |
(a > 0) and (b > 0) |
4. числа a и b имеют разные знаки |
(a * b < 0) |
5. квадратное уравнение, заданное коэффициентами a, b, c, не имеет вещественных корней |
(b * b – 4 * a * c < 0) |
6. запись x ∈ [a, b] без использования логических операций |
((b - x) * (a - x) < 0) |