4.6. Порядок вычисления выражений в Turbo Pascal 7
Вычисление значений выражений выполняется в определенном порядке. Начинается вычисление с определения переменных и констант, входящих в выражение. Они являются основой для дальнейших вычислений. Дальнейшие действия выполняются в соответствии с их приоритетами. Так, в первую очередь вычисляются выражения, заключенные в круглые скобки. Для любых двух вложенных друг в друга пар круглых скобок вычисляется сначала внутреннее выражение, а затем внешнее. Далее вычисляются значения входящих в выражение функций и т. д. Приоритеты всех действий, выполняемых при вычислении выражений, приведены в табл. 8.
Таблица 8. Приоритеты действий при вычислении выражений
Группа |
Тип действий |
Операции или элементы |
1 |
Вычисления в круглых скобках |
( ) |
2 |
Вычисления значений функций |
Функции |
3 |
Унарные операции |
@, not, унарный +, унарный - |
4 |
Операции типа умножения |
*, /, div, mod, and, shl, shr |
5 |
Операции типа сложения |
+, -, or, xor |
6 |
Операции отношения |
=, <>, <, >, <=, >=, in |
Примечание. Операции @ и in будут рассмотрены в пп. 7 и 6.4 соответственно.
Следует иметь в виду что в пределах одного и того же приоритета действия не обязательно выполняются слева направо. В целях оптимизации программы компилятор может нарушить этот порядок вычисления. Исключение составляют укороченные логические вычисления логических выражений, где вычисления всегда выполняются слева направо.
Пример.
(X > 0) and (X < 5)
В этом примере сначала выполняются две операции сравнения (операции 6-й группы), а затем логическая операция (операция 4-й группы).
|