Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000555.doc
Скачиваний:
31
Добавлен:
30.04.2022
Размер:
19.12 Mб
Скачать

2.1.4. Операции и выражения

Операция – это символ (или последовательность символов), задающий действие над элементами данных, связанное с получением значения.

Операнд - элемент данных, над которым выполняется операция.

Операция может применяться к данным определенного типа и давать результат такого же или другого типа.

Перечень (неполный) операций, имеющихся в Паскале, приведен в табл. 2.4

Таблица 2.4

Обозначение операции

Выполняемое действие

Приоритет

Тип операндов

Тип результата

Арифметические операции

+

сложение

3

integer real

integer real

-

вычитание

3

integer real

integer real

*

умножение

2

integer real

integer real

/

деление

2

integer real

real real

div

целочисленное деление

2

mod

остаток от Целочисленного деления

2

integer

integer

shl

сдвиг влево

2

integer

integer

shr

сдвиг вправо

2

integer

integer

Операции сравнения

<

меньше

4

Boolean

Integer

Real

char

Boolean

Boolean

Boolean

Boolean

>

большс

4

Boolean

Integer

Real

char

Boolean

Boolean

Boolean

Boolean

=

равно

4

Boolean

Integer

Real

char

Boolean

Boolean

Boolean

Boolean

>=

больше или равно

4

Boolean

Integer

Real

char

Boolean

Boolean

Boolean

Boolean

<=

меньше или равно

4

Boolean

Integer

Real

char

Boolean

Boolean

Boolean

Boolean

<>

Не равно

4

Boolean

Integer

Real

char

Boolean

Boolean

Boolean

Boolean

not

отрицание

1

Boolean

Integer

Boolean

Integer

and

конъюнкция

2

Boolean

Boolean

(логическое И)

integer

integer

or

дизъюнкция (логическое ИЛИ]

3

boolean integer

boolean integer

xor

исключающее ИЛИ

3

boolean integer

boolean integer

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

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

Таким образом, получается, что над логическими значениями можно выполнять логические операции: NOT, AND, XOR. а также операции сравнения, дающие логический тип.

Над величинами целого типа допустимы арифметические операции: + (сложение), - (вычитание), *(умножение), div (деление нацело), mod (остаток от деления), дающие результат целого типа.

Например,

выполнение операции 15 div 4 дает значение 3, выполнение операции 25 mod 4 дает значение 1.

Над целыми определено и обычное деление. Оно обозначается косой чертой «/»и даёт частное вещественного типа.

выполнение операции 15/4 дает значение 3.75.

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

выполнение операции 15 > 4 дает значение TRUE,

выполнение операции 5 с 4 дает значение FALSE,

выполнение операции 14AND 7 дает значение 4,

выполнение операции 5 AND 11 дает значение 15,

выполнение операции 5 SHL 2 дает значение 20,

выполнение операции 5 SHR 1 дает значение 2.

В Турбо-Паскале все операции, применимые к типу INTEGER, применимы и к остальным целым типам.

Над величинами вещественного типа допустимы арифметические операции: + (сложение), - (вычитание). * (умножение), / (деление).

Также допустимы операции сравнения, дающие логический тип.

В Паскале все операции, применимые к типу REAL, применимы и к остальным вещественным типам.

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

=. <=. >=, <, >,<>,

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

Значение выражения определяется по следующим правилам:

  • последовательность выполнения операций определяется их приоритетом;

  • операции равного приоритета выполняются слева направо;

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

  • В первую очередь выполняются операции во внутренних скобках.

Примеры выражений:

5MOD 3+1

2*6/(2/3)

2.4/2 - 24 * 20

(3<4) = TRUE

245 SHL 4 AND 127

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

Иногда Паскаль автоматически выполнит преобразование типов.

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

2.5 / 6 + 7 div 2

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