Урок из серии: «Язык программирования Паскаль»
На этом уроке мы остановимся на логическом или булевском типе данных.
Этот тип данных представлен двумя значениями: true — истина и false — ложь. Для описания величин логического типа используется зарезервированное слово boolean. Для размещения в памяти переменной логического типа требуется 1 байт.
Логические выражения широко используются в условных операторах и операторах цикла для определения пути продолжения алгоритма.
Описание данных логического типа
Идентификатор типа | Допустимые значения | Размер выделяемой памяти |
Boolean | FALSE , TRUE | 1 байт |
Пример описания величин логического типа:
var
flag, result: boolean;
Свои значения переменные логического типа получают обычно в результате выполнения операции сравнения (отношения): »<» (меньше), »>» (больше), »<=» (меньше или равно), »>=» (больше или равно), »<>» (не равно), »=» (равно).
Результат отношения равен TRUE, если отношение удовлетворяется для значений входящих в него операндов, а FALSE в противном случае. Простые условия, содержащие операции сравнения, можно соединить логическими связками (логическими операциями) и получить сложное условие или логическое выражение.
Логические операции
В языке программирования Паскаль для работы с логическими операндами введены следующие логические операции:
- not — отрицание (инверсия);
- and — конъюнкция (логическое умножение);
- or — дизъюнкция (логическое сложение, объединение);
- 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 | false | false |
Запомнить эту таблицу очень просто. Операция отрицание меняет значение операнда на противоположное.
Для того, чтобы результат операции логического умножения был истинен, все операнды должны быть истинны.
Для того чтобы логическое сложение дало истину, нужно, чтобы хотя бы один операнд был истинен.
Исключающее или дает истину, только если операнды имеют разные значения. Иногда эту операцию называют выбором альтернативы.
Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. Причем отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет.
Вообще, в логическом выражении принят следующий приоритет операций:
- NOT
- AND,*, DIV, MOD
- OR, XOR, +, —
- операции сравнения
Порядок выполнения операций можно изменить скобками. Например, в логическом выражении A OR B AND NOT(A OR B) сначала выполняется заключенная в скобки операция OR, а затем операции NOT, AND, OR.
Стандартные логические функции
odd(x) = true
, еслиx
нечетный (x
целый тип);eoln(x) = true
, если встретился конец строки текстового файлаx
;eof(x) = true
, если встретился конец файлаx
.
В остальных случаях эти функции принимают значение false.
В языке Паскаль нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write. В этом случае для идентификаторов FALSE и TRUE автоматически отводятся по 6 позиций: две — перед словом TRUE и одна — перед FALSE.
задачи для самостоятельного решения
- Определить значение логического выражения:(-3>=5) Or Not(7<9) And(0<3)
- Чему равны значения переменных a и b после выполнения последовательности действий:
a := 15 Div (16 Mod 7); b := 34 Mod a *5 — 29 Mod 5*2;
a := 4 * 5 Div 3 Mod 2; b :=4 * 5 Div ( 3 Mod 2);
a := a*b; b:= b*b.
На этом уроке мы рассмотрели логический или булевский тип данных, который используется в условных операторах (if и case ), а также в операторах цикла.
На следующем уроке вы познакомитесь с условным оператором языка Паскаль.
Следующий урок: Условный оператор If.