Математические выражения в алгоритмической записи состоят из операций и операндов. Большинство операций в языке Турбо Паскаль являются бинарными, т.е. содержат два операнда. Некоторые операции являются унарными и содержат только один операнд. В бинарных операциях используется обычное двухместное алгебраическое представление. В унарных операциях операция всегда предшествует операнду, например: -b.
В сложных выражениях порядок, в котором выполняются операции, соответствует приоритету операций (табл. 9.1).
Число и число
Строка и число
Строка и литера
Pointer и Pointer
Множества
Логический
Бинарные операции
in
Вхождение в множество
Элементарный и множество
Логический
Примечания:
1. Под вещественными понимаются тип Real и вещественные типы, поддерживаемые математическим сопроцессором (типы с повышенной точностью).
2. Под целыми понимаются целочисленные типы языка.
3. В таблице указан оператор @, не имеющий никакого отношения к математике. Он включен только для показа его приоритета.
При вычислениях сначала применяются операции наивысшего порядка, затем более низкого. Операции равного приоритета вычисляются слева направо:
2*3/4/5 = ((2 * 3)/4)/5
Применение скобок позволяет явно расставлять приоритеты и менять порядок вычислений.
Значение выражения X/Y всегда будет вещественного типа, независимо от типов операндов. Если Y равно 0, то произойдет фатальная ошибка (номер 200) и останов программы. {163}
Значение выражение i div j представляет собой математическое частное i/j, округленное в меньшую сторону до значения целого типа. Если j равно 0, то результатом будет фатальная ошибка.
Операция деления по модулю mod возвращает остаток, полученный путем деления двух ее операндов, т.е.
i mod j = i - (i div j) * j
Знак результата операции mod будет тем же, что и знак i. Если j равно нулю, то результатом будет фатальная ошибка.