Порядок вычислений
Если в выражении расставлены скобки, то вычисления производятся в порядке, известном всем еще с начальной школы: чем меньше глубина вложенности скобок, тем позже вычисляется заключенная в них операция. Если же скобок нет, то сначала вычисляются значения операций с более высоким приоритетом, затем - с менее высоким. Несколько подряд идущих операций одного приоритета вычисляются в последовательности "слева направо".
Таблица 2.1. Приоритеты (для всех) операций языка Pascal Операции Приоритет
Унарные2) операции +, -, not, @, ^, # Первый(высший)
Операции, эквивалентные умножению *, /, div, mod, and, shl, shr Второй
Операции, эквивалентные сложению +,-, or, xor Третий
Операции сравнения =, <>, >, <, <=, >=, in Четвертый
Замечание: Вызов любой функции имеет более высокий приоритет, чем все внешние относительно этого вызова операции. Выражения, являющиеся аргументами вызываемой функции, вычисляются в момент вызова (см. лекцию 8).
Примеры выражений (с указанием последовательности вычислений) для целых чисел:
a + b * c / d (результат принадлежит к вещест-
3 1 2 венному типу данных);
a * not b or c * d = 0 (результат принадлежит к логиче-
2 1 4 3 5 скому типу данных);
-min(a + b, 0) * (a + 1) (результат принадлежит к целочис-
3 2 1 5 4 ленному типу данных).
Дата добавления: 2015-01-13; просмотров: 512;