logo
lab_rab5_6

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

Логические выражения используют операции отношения (равно =, не равно < >, меньше <, больше >,меньше или равно <=, больше или равно >=) и булевские (логические) операции: not, and, or, xor.

Логическое отрицание (инверсия) в Паскале обозначается not; выражение not А истинно, если А ложно, и, наоборот, ложно, если А – истинно.

Логическое умножение (конъюнкция) обозначается and; выражение А and В истинно, если истинны оба выражения.

Логическое сложение (дизъюнкция) обозначается or; выражение А or В ложно, если ложны оба выражения, и истинно, если истинно хотя бы одно из этих выражений.

Исключающее ИЛИ обозначается хor; выражение А хor В истинно, если истинно только одно выражение (либо А, либо В).

Приоритет логических операций:

  1. not,

  2. and,

  3. or, xor (одинаковый приоритет).

Булевской переменной можно присваивать выражение булевского типа. Использование в программах переменных булевского типа (с обязательным описанием Var p: Boolean;) значительно упрощает алгоритм, размер программы и, соответственно, время ее выполнения.

Пример: Вывести на экран TRUE, если квадратное уравнение имеет хотя бы один корень, и FALSE, если корней нет.

Основная часть программы:

После описаний и ввода коэффициентов квадратного уравнения вычисляем переменную D – дискриминант.

1 способ (без использования булевских переменных):

if (D<0) then

WriteLn(‘FALSE’)

else

WriteLn(‘TRUE’);

2 способ (с введением булевской переменной):

p:= D>=0;

WriteLn(p);

Примечание: Невозможно применение двойных неравенств, выражение 2 < a < 7 записывается в виде (2 < a) and (a < 7).