Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ГОСТу.doc
Скачиваний:
19
Добавлен:
14.11.2019
Размер:
10.65 Mб
Скачать

5.3. Логические операции

Переменным логического типа можно присвоить результаты операций отношений. Результат операций отношений всегда равен True или False. Как уже было отмечено выше, в качестве условия могут использоваться логические операции. Помимо операций отношений в Pascal существует четыре вида логических операций, которые применимы к переменным логических типов.

Значения логического выражения при использовании бинарной логической операции конъюнкции (And (логическое умножение (И))) приведены в табл. 5.1.

Таблица 5.1

Логическая операция конъюнкция

Значение операндов

Результат операции

A

B

A And B

True (1)

True (1)

True (1)

True (1)

False (0)

False (0)

False (0)

True (1)

False (0)

False (0)

False (0)

False (0)

Значения логического выражения при использовании бинарной логической операции дизъюнкции (Or (логическое сложение (ИЛИ))) приведены в табл. 5.2.

Таблица 5.2

Логическая операция дизъюнкция

Значение операндов

Результат операции

A

B

A Or B

True (1)

True (1)

True (1)

True (1)

False (0)

True (1)

False (0)

True (1)

True (1)

False (0)

False (0)

False (0)

Значения логического выражения при использовании бинарной логической операции дизъюнкции (Xor (логическое ИЛИ-НЕ (исключающее ИЛИ))) приведены в табл. 5.3.

Таблица 5.3

Логическая операция исключающее ИЛИ

Значение операндов

Результат операции

A

B

A Xor B

True (1)

True (1)

False (0)

True (1)

False (0)

True (1)

False (0)

True (1)

True (1)

False (0)

False (0)

False (0)

Четвёртая унарная логическая операция отрицания (Not (логическое отрицание (НЕ))) инвертирующая (изменяющая на противоположное) значение операнда приведена в табл. 5.4.

Таблица 5.4

Логическая операция отрицания

Значение операндов

Результат операции

A

Not A

True (1)

False (0)

False (0)

True (1)

Поскольку у операций сравнения приоритет выполнения ниже, чем у логических операций, при комбинированной записи логического выражения их необходимо брать в скобки.

Например:

1) . При значении переменных A=10, B=15, C=20, D=25 значение всего выражения равно True.

1.1. условие (1) – истинно (True),

1.2. условие (2) – ложно (False),

1.3. условие (3) – истинно (True),

1.4. выражение (4) - ложно (False),

1.5. выражение (5) - истинно (True).

2) . При значении переменных A=10, B=15, C=20, D=25 значение всего выражения равно False.

2.1. условие (1) - истинно (True),

2.2. условие (2) - ложно (False),

2.3. условие (3) - истинно (True),

2.4. выражение (4) - истинно (True),

2.5. выражение (5) - ложно (False).

3. . При значении переменных A=10, B=15, C=20 значение всего выражения равно False.

3.1. условие (1) - истинно (True),

3.2. условие (2) - ложно (False),

3.3. выражение (3) - ложно (False).

3.4. выражение (4) - ложно (False).

4. . При значении переменных A=10, B=15, C=20 значение всего выражения равно True.

4.1. условие (1) - истинно (True),

4.2. условие (2) - ложно (False)

4.3. выражение (3) - истинно (True),

4.4. выражение (4) - истинно (True),

В логических выражениях принят следующий порядок выполнения операций:

  • Not;

  • And, *, Div, Mod, /;

  • Or, Xor, +, - ;

  • все операции сравнения.

Операции Not, And, Or, Xor можно использовать для побитовых операций с целыми числами, для которых они имеют следующий смысл.

Not - унарная операция инверсии всех битов целого числа:

A=1011, Not A=0100.

And - побитовая логическая операция И двух целых чисел:

A=3­10=00112, B:=410=01002

Or - побитовая логическая операция ИЛИ двух целых чисел:

A=3­10=00112, B:=410=01002

Xor - побитовая логическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ двух целых чисел:

A=3­10=00112, B:=410=01002

Также к этой группе относят операции Shl и Shr.

Shl - операция I Shl J сдвигает содержимое I на J битов влево. Освободившиеся биты заполняются нулями:

A=3­10=00112, B:=4

Shr - операция I Shr J сдвигает содержимое I на J битов вправо. Освободившиеся биты заполняются нулями:

A=4­10=01002, B:=2