Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория_информатика.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.34 Mб
Скачать

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

Логические операции применяются к величинам логического типа, результат операции – тоже логического типа. Имеется одна унарная логическая операция not (ОТРИЦАНИЕ) и три бинарные операции and (И), ог (ИЛИ), xor (ИСКЛЮЧАЮЩЕЕ ИЛИ). Они определяются таблицами истинности (таб. 17.3 и табл. 17.4).

Таблица 17.9. Таблица истинности операции NOT

X

notX

False

True

True

False

Таблица 17.10 Таблица истинности операций AND, OR и XOR

X

Y

X and Y

X or Y

X xor Y

False

False

False

False

False

False

True

False

True

True

True

False

False

True

True

True

True

True

True

False

В Turbo Pascal имеется два вида вычисления логических выражений: полное и укороченное.

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

Укороченное вычисление проводится до тех пор, пока не станет известен результат всего выражения, после чего вычисление последующих операндов прекращается.

17.1.4.3 Операции с битами информации

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

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

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

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

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

К этой же группе можно отнести операции shl и shr, имеющие следующий смысл:

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

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

17.1.4.4 Операции отношения

Операции отношения предназначены для сравнения двух величин (величины должны быть сравнимых типов). Результат сравнения имеет логический тип. Операции отношения следующие:

= - равно;` <= - меньше или равно;

<> - не равно; >= - больше или равно;

< - меньше; > - больше.

Примечание. Операции отношения используются также для указателей, строк, множеств. Их применение в этих случаях будет рассмотрено ниже.

17.1.5 Круглые скобки.

Круглые скобки используются для заключения в них части выражения, значения которой необходимо выполнить в первую очередь. В выражении может быть любое количество круглых скобок, причем количество открывающих круглых скобок должно быть равно количеству закрывающих круглых скобок. Части выражений, заключенные в круглые скобки, должны быть либо непересекающимися, либо вложенными друг в друга.

17.1.6 Порядок вычисления выражений

Вычисление значений выражений выполняется в определенном порядке. Начинается вычисление с определения переменных и констант, входящих в выражение. Они являются основой для дальнейших вычислений. Дальнейшие действия выполняются в соответствии с их приоритетами. Так, в первую очередь вычисляются выражения, заключенные в круглые скобки. Для любых двух вложенных друг в друга пар круглых скобок вычисляется сначала внутреннее выражение, а затем внешнее. Далее вычисляются значения входящих в выражение функций и т.д. Приоритеты всех действий, выполняемых при вычислении выражений, приведены в таблице 17.5.

Таблица 17.11 Приоритеты действий при вычислении выражений

Группа

Тип действий

Операции или элементы

1

Вычисления в круглых скобках

( )

2

Вычисления значений функций

Функции

3

Унарные операции

@, not, унарный +, унарный -

4

Операции типа умножения

*, /, div, mod, and, shl, shr

5

Операции типа сложения

+, -, or, xor

6

Операции отношения

=, <>, <, >, <=, >=, in

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