Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delphi_p1.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
571 Кб
Скачать
☆

Логические типы

В Object Pascal данные логического (булева) типа могут принимать одно из двух значений: true (истина) или false (ложь). Логические типы, определённые в Object Pascal:

Тип

Размер (в байтах)

Boolean

1

ByteBool

1

WordBool

2

LongBool

4

Основным логическим типом в Delphi 5 является Boolean. Остальные типы нужны для совместимости с логическими данными, используемыми в Windows и некоторых других системах программирования, например Visual C.

В логических выражениях можно использовать логические операции: not (отрицание), and (логическое И ), or (логическое ИЛИ), xor (логическое исключающее ИЛИ). Результат применения этих операций к операндам логического типа представлен в следующей таблице.

X

Y

X and Y

X or Y

X xor Y

Not X

false

false

false

false

false

true

false

true

false

true

true

true

true

false

false

true

true

false

true

true

true

true

false

false

При записи логических выражений нужно помнить, что первой выполняется операция not, затем and, потом or и xor. Операции отношения выполняются в последнюю очередь.

Рассмотрим пример. Определить значение выражения:

(-3>=5) or not (7<9) and (0<=3)

Сначала выполняются операции в скобках слева направо:

(false) or not (true) and (true)

Затем not, and, or:

false or false and true  false or false  false

Таким образом, значение данного выражения – false.

Логические поразрядные операции предназначены для поразрядной обработки целочисленных операндов, представленных в двоичном виде. Такими операциями являются поразрядные отрицание (not), и (and), или (or), исключающее или (xor), а также поразрядные сдвиг влево (shl) и сдвиг вправо (shr). Расмотрим пример. Пусть переменные a и b типа byte имеют значения 3 и 5 соответственно. В двоичном представлении эти числа будут иметь вид : 00000011 и 00000101. Вычислим a xor b. Операция xor будет применяться поразрядно, т.е. к каждой паре чисел, стоящих в одинаковых позициях. Результат можно определить при помощи приведённой выше таблицы, если мысленно заменить 0 словом false, а 1 – словом true. Получим 00000110 = 6 (10). Операции shl и shr сдвигают значение переменной влево или вправо на указанное количество битов (например a shl 1 – сдвиг влево на 1 бит). При этом начальные или конечные биты теряются, а вновь появившиеся биты содержат нулевые значения. Это эквивалентно умножению на 2 в степени, равной количеству разрядов смещения.

Пример 4. Присвоить логической переменной t значение следующего логического выражения: натуральное число n при умножении на 6 заканчивается на 2, а при умножении на 7 заканчивается на 4.

var t : boolean; n : integer;

begin

readln(n);

t:=(n*6 mod 10=2) and (n*7 mod 10=4) ;

writeln(t);

readln

end.

Если ввести, например, число 32, то ответ получится true, а если ввести число 17, то получится false.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]