- •Часть I
- •1.1 Простейшее консольное приложение. Основные понятия
- •Задачи.
- •1.2 Простые типы
- •Целые типы.
- •Задачи.
- •Символьные типы.
- •Логические типы
- •Перечислимый тип
- •Задачи.
- •Вещественные типы
- •Тип дата-время
- •1.3 Операторы Оператор присваивания
- •Составной оператор
- •Условный оператор if
- •Задачи.
- •Оператор выбора case
- •Задачи.
- •Операторы цикла
- •Задачи.
- •Задачи.
- •Задачи.
- •1.4 Процедуры и функции.
- •Процедуры.
- •Функции.
- •Вызов подпрограмм.
- •Локализация имён.
- •Параметры.
- •Задачи.
- •Перегрузка функций.
- •Процедурные типы.
- •1.5 Динамическая память и указатели
- •1.6 Массивы
- •Статические массивы
- •Задачи.
- •Задачи.
- •Задачи.
- •Задачи.
- •Динамические массивы
- •Параметры-массивы
- •1.7 Строки Строковые типы
- •Стандартные подпрограммы для строк.
- •Строковые выражения
- •Задачи.
- •Преобразование строк в числовые типы и обратно.
- •1.8 Множества
- •Задачи.
- •1.9 Записи
- •Задачи.
- •Литература.
- •Оглавление
Логические типы
В 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.
