В следующей таблице приведены типы операндов и результаты
для бинарных и унарных арифметических операций:
Бинарные арифметические операции Таблица 6.2
┌───────────┬──────────────┬──────────────────┬─────────────────┐
│ Операция │ Действие │ Типы операндов │ Тип результата │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ + │ Сложение │ Целый │ Целый │
│ │ │ Вещественный │ Вещественный │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ - │ Вычитание │ Целый │ Целый │
│ │ │ Вещественный │ Вещественный │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ * │ Умножение │ Целый │ Целый │
│ │ │ Вещественный │ Вещественный │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ / │ Деление │ Целый │ Вещественный │
│ │ │ Вещественный │ Вещественный │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ div │ Целочисленное│ │ │
│ │ деление │ Целый │ Целый │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ mod │ Остаток │ Целый │ Целый │
└───────────┴──────────────┴──────────────────┴─────────────────┘
Примечание: Операция + используется также, как опера-
ция для работы со строками и множествами. Операции +, - и *
используются также для операций над множествами.
Унарные арифметические операции
Таблица 6.3
┌───────────┬──────────────┬──────────────────┬─────────────────┐
│ Операция │ Действие │ Тип операнда │ Тип результата │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ + │ Сохранение │ Целый │ Целый │
│ │ знака │ Вещественный │ Вещественный │
├───────────┼──────────────┼──────────────────┼─────────────────┤
│ - │ Отрицание │ Целый │ Целый │
│ │ знака │ Вещественный │ Вещественный │
└───────────┴──────────────┴──────────────────┴─────────────────┘
Любая операция, включающая операнд, тип которого является
подмножеством порядкового типа, обрабатывается также, как если бы
он был порядкового типа.
Если оба операнда в операциях +, -, *, div или моd являются
операндами целого типа, то тип результата будет таким же, как об-
щий тип обоих операндов. (Определение общего типа см. в разделе
"Целый тип" в Главе 3).
Если один или более операндов в операциях +, -, или * имеют
вещественный тип, то тип результата будет вещественным, если ис-
пользована директива компилятора {$N-}, или типом с повышенной
точностью при использовании директивы компилятора {$N+}.
Если при использовании операции сохранения знака или опера-
ции отрицания знака операнд имеет целый тип, то результат будет
тоже целого типа. Если операнд вещественного типа, то тип резуль-
тата будет вещественным или типом с повышенной точностью
(extended).
Значение выражения х/у всегда будет вещественного типа
(real) или с повышенной точностью (extended), независимо от типов
операндов. Если у равно 0, то результат будет ошибочным.
Значение выражение i div j представляет собой математическое
частное от i/j, округленное в меньшую сторону до значения целого
типа. Если j равно 0, результат будет ошибочным.
Операция mod возвращает остаток, полученный путем деления
двух ее операндов, то есть:
i mod j = i - (i div j) * j
Знак результата операции mod будет тем же, что и знак i. Ес-
ли j равно нулю, то результатом будет ошибка.