Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Titulnye_listy (Восстановлен) (Восстановлен).docx
Скачиваний:
2
Добавлен:
26.09.2019
Размер:
325.79 Кб
Скачать

2.11 Операции

В соответствии с типом операндов и результатом операции в языке Паскаль классифицируются как арифметические, логические, множественные и операции отношения [4].

Как показано в таблице 2.11.1, результат операции сложения, вычитания и умножения будет целого типа, если оба операнда – целого типа, в других случаях результат – вещественного типа. Операции div и mod определены только для целочисленных операндов.

Таблица 2.11.1 – Основные математические операции в языке Паскаль

Приоритет

Символ операции

Название операции

Тип операнда

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

1

*

умножение

Integer или Real

Integer или Real

/

деление

Integer или Real

Real

div

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

Integer

Integer

mod

остаток от деления

Integer

Integer

2

+

сложение

Integer или Real

Integer или Real

-

вычитание

Integer или Real

Integer или Real

Над логическими аргументами в языке Паскаль определены следующие операции:

- not – логическое отрицание ("не");

- and – логическое умножение ("и");

- or – логическое сложение ("или");

- xor – логическое "исключающее или".

Результаты выполнения этих операций над переменными А и В логического типа приведены в таблице 2.11.2.

Таблица 2.11.2 – Таблица истинности логических операций

A

B

not A

A and B

A or B

A xor B

true

true

false

true

true

false

true

false

false

false

true

true

false

true

true

false

true

true

false

false

true

false

false

false

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

Таблица 2.11.3 – Операции над множествами в языке Паскаль

Операция

Действие

Тип операнда

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

+

Обьединение множеств

set of T

set of T

-

Разность множеств

set of T

set of T

*

Пересечение множеств

set of T

set of T

Операции отношения приведены в таблице 2.11.4. За исключением операции in типы операндов либо должны быть совместимыми, либо один должен быть real, а другой – integer. Для операции in первый (левый) операнд должен относиться к ординальному типу, совместимому с базовым типом того множественного типа, к которому относится второй операнд. Упорядоченность совместимых строк определяется упорядоченностью значений типа char.

Таблица 2.11.4 – Операции отношения в языке Паскаль

Операция

Действие

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

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

=

Равенство

Простой, ссылочный, множественный, строковый

Boolean

<>

Неравество

Простой, ссылочный, множественный, строковый

Boolean

<=

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

Простой, строковый

Boolean

<=

Включение множеств

Множественный

Boolean

>=

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

Простой, строковый

Boolean

>=

Включение множеств

Множественный

Boolean

<

Меньше

Простой, строковый

Boolean

>

Больше

Простой, строковый

Boolean

In

Принадлежность множеству

Ординальный и множественный

Boolean

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

- not, @;

- *, / , and, div, mod;

- +, -, or;

- =, <>, <,>, <=, >=, in.

Операции языка Си показаны в таблице 2.11.5 [3].

Таблица 2.11.5 – Операции языка Си, в порядке снижения приоритета

Знак

Операция

Класс

Приоритет

Ассоциативность

Имена, литералы

Простые лексемы

Первичный

16

Нет

A[k]

Индексы

Постфиксный

16

Слева направо

F(…)

Вызов функции

Постфиксный

16

Слева направо

.

Прямой выбор

Постфиксный

16

Слева направо

->

Опосредованный выбор

Постфиксный

16

Слева направо

++ --

Положительное и отрицательное приращение

Постфиксный

16

Слева направо

++ --

Положительное и отрицательное приращение

Префиксный

15

Справа налево

sizeof

Размер

Унарный

15

Справа налево

~

Побитовое логическое отрицание

Унарный

15

Справа налево

!

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

Унарный

15

Справа налево

- +

Изменение знака, плюс

Унарный

15

Справа налево

&

Вычисление адреса

Унарный

15

Справа налево

Продолжение таблицы 2.11.5

*

Разадресация (косвенная адресация)

Унарный

15

Справа налево

(имя типа)

Приведение типа

Унарный

14

Справа налево

*

Умножение

Бинарный

13

Слева направо

/

Деление

Бинарный

13

Слева направо

%

Остаток от деления

Бинарный

13

Слева направо

+

Сложение

Бинарный

12

Слева направо

-

Вычитание

Бинарный

12

Слева направо

<<

Сдвиг влево

Бинарный

11

Слева направо

>>

Сдвиг вправо

Бинарный

11

Слева направо

<

Меньше

Бинарный

10

Слева направо

>

Больше

Бинарный

10

Слева направо

<=

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

Бинарный

10

Слева направо

>=

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

Бинарный

10

Слева направо

==

Равно

Бинарный

9

Слева направо

!=

Не равно

Бинарный

9

Слева направо

&

Побитовое и

Бинарный

8

Слева направо

^

Побитовое исключающее или

Бинарный

7

Слева направо

|

Побитовое или

Бинарный

6

Слева направо

&&

Логическое и

Бинарный

5

Слева направо

||

Логическое или

Бинарный

4

Слева направо

? :

Условие

Тернарный

3

Слева направо

Окончание таблицы 2.11.5

= += -= *= /= %= <<= >>= &= ^= |=

Присваивание

Бинарный

2

Слева направо

,

Последовательная оценка

Бинарный

1

Слева направо

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]