Выражение предназначено для вычисления значения и состоит из операндов (констант, переменных, функций) и операций над ними. Порядок действий в выражении определяется приоритетами знаков операций и круглыми скобками. Типы операндов, входящих в выражение должны совпадать или удовлетворять правилам согласования типов языка программирования.
Выражения называют арифметическими, отношения, логическими и символьными в зависимости от того, какого типа операнды и операции в них используются.
Арифметическое выражение включает операции, допустимые для числовых типов данных (integer, byte, real и других). Приоритет операций в порядке убывания следующий: /, *, div (частное от деления целых чисел), mod (остаток от деления целых чисел), and (поразрядное «и»), or (поразрядное «или»), shl (сдвиг влево), shr (сдвиг вправо), -, +.
Пример:
45.2 / 4 { результат 11.3 }
r mod 10 { если r = 25, результат 5 }
r div 10 { если r = 25, результат 2 }
d1 shl 2 { если d1 = 2, результат 8 }
Выражение отношения выполняет сравнение операндов и определяют истинно выражение или ложно. Все операции выражения являются бинарными. Приоритет операций в порядке убывания следующий: =, <>, <, >, <=, >=, in ( операцияпринадлежности множеству ). Результат всегда имеет логический тип.
|
|
Пример:
W <= R { если W = 25, R = 34, результат true }
f1 <> 5 { если f1 = 5, результат false }
ch in ['a'..'z'] { если ch – латинскаябуква,результат true }
Логическое выражение выполняет логические операции над логическими операндами. Приоритет операций в порядке убывания следующий: not, and, or, xor.
Пример:
(W and R) or (not f1 and f2) { если W, f2=true; R, f1=false, результат true}
Символьное выражение включает такие операнды, как символьная константа, символьная переменная, элемент массива символьного типа, функция, возвращающая значение символьного типа. Над операндами может выполняться операция конкатенации (объединения) – +.
Пример:
'Pas'+'cal' { результат – символьная константа 'Pascal' }
Относительные приоритеты операций языка Object Pascal приведены в таблице 1.2.
Таблица 1.2 Приоритет операций в языке Object Pascal
Операция | Приоритет |
@, not | Первый (высший) |
*, /, div, mod, and, shl, shr | Второй |
+, -, or, xor | Третий |
=, <>, >,<, <=,>=, in | Четвертый (низший) |