Выражения
Выражение предназначено для вычисления значения и состоит из операндов (констант, переменных, функций) и операций над ними. Порядок действий в выражении определяется приоритетами знаков операций и круглыми скобками. Типы операндов, входящих в выражение должны совпадать или удовлетворять правилам согласования типов языка программирования.
Выражения называют арифметическими, отношения, логическими и символьными в зависимости от того, какого типа операнды и операции в них используются.
Арифметическое выражениевключает операции, допустимые для числовых типов данных (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 | Четвертый (низший) |