§ 5. Логический тип данных в языке программирования Паскаль

Подобно предыдущему заданию, теперь мы вновь перейдём к изучению программирования и применим полученные знания по алгебре логики на практике.

В прошлом задании мы работали с числовыми типами переменных и учили арифметику, теперь познакомимся с логическим типом переменных, который называется Boolean. Переменные этого типа имеют всего два значения – true и false (соответственно, «истина» и «ложь»). Подобно числовым переменным им можно присваивать значения при помощи оператора присваивания. При этом необходимо строго соблюдать правило совместимости типов. То есть логическим переменным нельзя присваивать числовые значения, а числовым – логические.

В языке Паскаль помимо арифметических операций ещё существует `6` операций сравнения: больше» `(>)`, «больше или равно» `(> =)`, «меньше» `(<)`, «меньше или равно» `(< =)`, «равно» `(=)`, и «не равно» `(<>)`. Операция «не равно» записывается, как последовательность знаков «меньше» и «больше».  Результатом каждой из этих операций является логическое значение true или false. Например, операция `5 > 2` выдаст значение true, а операция `x<>3` выдаст значение true, если переменная `X` имеет любое значение, кроме `3`. Сравнивать можно не только числа (причём как целые, так и вещественные), но и логические значения. При этом считается, что значение true больше, чем значение false. При сравнении обязательно соблюдать правило совместимости типов, то есть можно сравнивать числа между собой (причём в отличие от оператора присваивания, здесь никаких ограничений нет). Можно сравнивать между собой логические значения. Но нельзя сравнивать логическое значение с числом любого типа.

Помимо операций сравнения, в паскале существуют четыре логические операции, абсолютно аналогичные операциям алгебры логики.

1) Операция AND (в алгебре логики – «конъюнкция»)

2) Операция OR (в алгебре логики – «дизъюнкция»)

3) Операция XOR (в алгебре логики – «строгая дизъюнкция»)

4) Операция NOT (в алгебре логики – «отрицание»)

Все операнды этих операций должны быть логического типа, а никак не числового. Причём, операции AND, OR и XOR имеют по `2` операнда, а операция NOT – один операнд, который записывается справа от названия операции (аналогично обозначению операции NOT при помощи `¬` в алгебре логики)

Теперь у нас есть достаточно много операций и нужно расставить их по приоритету выполнения. В Паскале есть четыре приоритета операций:

1) Операция not;

2) Операции группы умножения: *, /, div, mod, and;

3) Операции группы сложения: +, – , or, xor;

4) Операции группы сравнения: >, <, <=, >=, =, <>.

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

Теперь рассмотрим несколько примеров задач на использование логического типа.

Общая Задача

Записать на Паскале логическое выражение истинное при выполнении указанного условия и ложное в противном случае. Результат вычисления данного выражения присвоить переменной F.

Условие 1

Числовая  переменная  X  имеет  значение  на  отрезке [–1,1].

Решение

 F:=abs(X)<=1;

Условие 2

Числовая переменная X имеет значение на отрезке [2,7].

Решение

F:=(X>=2)and(X<=7).

Обратите внимание на скобки. Они обязательны, поскольку операции сравнения имеют более низкий приоритет, чем операция and.

Условие 3

Числовая переменная X имеет значение на одном из 2 отрезков: [–10, 3] или [10, 20].

Решение

F:=(X>=-10)and(X<=3)or(X>=10)and(X<=20).

Условие 4

Логические переменные A и B имеют различные значения.

Решение

F:=A<>B.

Условие 5

По крайней мере 2 из логических переменных A, B и C имеют значение true.

Решение

F:=A and B or A and C or B and C.



: