Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДРАЗРАБОТКА ИНФОРМАТИКА ПАСКАЛЬ_p.doc
Скачиваний:
6
Добавлен:
07.05.2019
Размер:
503.81 Кб
Скачать

3.7.4. Логический тип (boolean)

Не всегда переменные используются для того, чтобы представлять числа. Одним из нечисловых типов данных является тип данных BOOLEAN. Булевы (логические) переменные могут иметь одно из двух значений: TRUE (истина) или FALSE (ложь). Булевы выражения могут принимать несколько различных форм.

1. Они могут быть просто константами TRUE (истина) или FALSE (ложь). Оператор присваивания, использующий эту форму, аналогичен обычному арифметическому оператору присваивания.

Пример:

Flag:=true;

Valid:=false;

2. Булевы выражения можно также использовать, чтобы проверить отношение между двумя переменными. Допустим, у нас есть две переменные типа INTEGER и нужно узнать, равны ли они. Если имена переменных FIRST и SECOND, мы можем проверить их равенство с помощью булевого выражения

(FIRST = SECOND)

Если они равны, это выражение примет значение TRUE. Если они не равны, выражение примет значение FALSE. Отметим, что знак равенства (=) отличен от знака присваивания (:=).

3. Булевы выражения могут конструироваться с помощью булевых операций. Эти операции образуют инструментальный фундамент булевой логики, алгебры логики, разработанной в XIX в. математиком Джорджем Булем.

Простые логические выражения

В язык Паскаль включены три основные булевы операции: and ("И"), or ("ИЛИ") и not ("НЕ").

Результат операции and есть истина, только если оба ее операнда истинны.

Таблица истинности для AND

X1

X2

Результат

0

0

0

FALSE and FALSE → FALSE

1

0

0

TRUE and FALSE → FALSE

0

1

0

FALSE and TRUE → FALSE

1

1

1

TRUE and TRUE → TRUE

Результат операции or есть истина, если какой-либо из ее операндов истинен.

Таблица истинности для OR

X1

X2

Результат

0

0

0

FALSE or FALSE → FALSE

1

0

1

TRUE or FALSE → TRUE

0

1

1

FALSE or TRUE → TRUE

1

1

1

TRUE or TRUE → TRUE

Третья операция not имеет один операнд и образует его логическое отрицание. Результат операции not есть FALSE, если операнд истинен, и TRUE, если операнд имеет значение ложь.

not FALSE → TRUE

not TRUE → FALSE

Составное логическое выражение

Логическое выражение может быть достаточно сложным и содержать несколько логических операций. В этом случае операции выполняются слева направо и приоритет имеет операция NOT, затем AND, и далее OR. Для изменения порядка выполнения операций можно (как и в арифметических выражениях) использовать круглые скобки.

Примеры. Условие «Х<0 или Х>100» можно записать так:

If ((Х<0) OR (X>100))

Это же условие можно сформулировать словами «X не принадлежит отрезку [0,100]» и записать следующим образом:

If NOT( (0<=X) AND (X<=100) )

Условие: «Если А, В, С одновременно обращаются в 0» можно записать так:

If ((А=0) AND (B=0) AND (C=0))

Когда полезны эти операции? Если нужно проверить сложное условие.

Пример: Необходимо вычислить значение функции

при .

Условие является составным, то есть x одновременно принадлежит и промежутку и . При программировании на языке Паскаль необходимо использовать конструкцию (( ) AND ( )).

Логические переменные могут использоваться для хранения результатов каких-либо логических вычислений. Для логических переменных разрешены только две операции сравнения: «=» (равно) и «<>» (не равно), а также логические операции AND, OR, XOR, NOT. Для идентификаторов констант FALSE и TRUE имеют место следующие отношения: False<True, Ord(False)=0, Ord(True)=1, Succ(False)=True, Pred(True)=False.

Переменные типа BOOLEAN занимают в памяти 1 байт.