Логические операции and, or, xor

Значения операндов Результаты операций
X Y X and Y X or Y X xor Y
True True True True False
False True False True True
True False False True True
False False False False False

Cуществуют 2 варианта, задаваемые директивой {$B}, вычисления логических выражений: полное {$B+}и укороченное {$B-}. Полное вычисление означает, что выполняются все запрограммированные действия, даже если на промежуточном этапе становится известным значение всего выражения. При укороченном вычислении все расчеты прекращаются, как только становится известным значение заданного выражения. Например, если в выражении (A and B) or (X xor Y) значение(A and B)равно true (операция or даёт true, если (A and B) или (X xor Y) равно true), то при укороченной форме, вычисления прекращаются.

Операции с битами выполняются над целыми числами. Существуют следующие битовые операции:

· not X - инверсия всех битов числа X;

· X and Y – побитовое логическое умножение чисел X и Y;

· X or Y - побитовое логическое ИЛИ над X и Y;

· X xor Y - побитовое исключающее ИЛИ над X и Y;

· X shr J - сдвиг содержимого числа X на J бит вправо;

· X shl J - сдвиг числа X на J бит влево.

Операции сдвига часто используются для умножения и деления целых чисел на 2, 22, 23 и т. д. Например, пусть X = 3 - в двоичной форме 0011. Выполним X shl 1 – 0011 сдвигаем влево на 1 разряд, - получим 0110. Двоичное число 0110 равно 6 в десятичной системе, т. е. выполнено умножение на 2.

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

= - равно, > - больше,

<> - не равно, <= - меньше или равно,

< - меньше, >= - больше или равно.

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

Остальные операции будут рассмотрены далее.

ФУНКЦИИ

Функция представляет собой специальную подпрограмму, предназначенную для вычисления какого-либо параметра, исходя из значений аргументов этих функций. Имеется большое количество встроенных стандартных функций, например перечисленных в табл. 5. Возможно создание собственных функций, которые используются наряду со стандартными. Любая функция задаётся своим именем с указанием после него в круглых скобках перечня параметров, например sin(X), которые эта функция использует в качестве аргументов.

ПОРЯДОК ВЫЧИСЛЕНИЯ ВЫРАЖЕНИЙ

Выражения вычисляются в определенном порядке в соответствии с приоритетами (табл. 9) выполняемых операций.

Таблица 9

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

Приоритет Операции
( ) – круглые скобки
Вычисление функций
@, not, унарные +, -
*, /, div, mod, and, shl, shr, as
+, -, or, xor
=, <>, >, <, <=, >=, is, in

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

ВИДЫ ОПЕРАТОРОВ

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

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

Структурированными являются такие операторы, которые состоят из других операторов. К ним относятся:

· составной оператор;

· операторы условного перехода;

· операторы цикла;

· оператор над записями;

· операторы обработки исключительных ситуаций.

Иногда объявления программных элементов называют операторами объявления, которые, в отличие от “настоящих” операторов, являются неисполнимыми.

ПРОСТЫЕ ОПЕРАТОРЫ

Таких операторов четыре:

· оператор присваивания;

· обращение к процедуре;

· оператор безусловного перехода;

· пустой оператор.

Оператор присваивания является средством изменения содержимого памяти. Синтаксически с помощью этого оператора переменной или функции присваивается значение какого-либо выражения. Записывается этот оператор следующим образом: Y := <выражение>;, где Y - переменная, := - знак присваивания. Например, Х:= 5; Y:= sin(X); C := 'A';.

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

Обращение к процедурепозволяет выполнить вычисления, задаваемые подпрограммой вида “процедура”. Как и функция, процедура имеет имя и может иметь список аргументов. При вызове вычислений из процедуры записывается имя нужной процедуры, а затем справа от имени в круглых скобках записывается список параметров-аргументов. Например, ProcName(X, Y);. Существует большое количество встроенных стандартных процедур, например Dec(X) и Inc(X) (табл. 1). Программист может составлять собственные процедуры.

Оператор безусловного перехода записывается в следуюшем виде: GOTO <метка>;.Этот оператор позволяет изменить последовательный порядок выполнения операторов и перейти к выполнению программы, начиная с заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Метки бывают двух видов: или какое-либо число 1..9999или обычный идентификатор: А, В25, Point. Все метки должны быть описаны в объявлении Label: 56, A, B25, Point;.Одной меткой можно пометить только один оператор: Point: Y := 2*X;.Использование оператора GOTO считается плохим стилем программирования.

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

СОСТАВНОЙ ОПЕРАТОР

Составной оператор представляет собой совокупность последовательно выполняемых операторов, заключённых в так называемые операторные скобки begin и end, т. е.

Begin

<Оператор 1>;

. . . . . . .

<Оператор N>;

End;

Этот оператор, как правило, используется в составе других операторов.

Наши рекомендации