Выражения

Выражение предназначено для вычисления значения и состоит из операндов (констант, переменных, функций) и операций над ними. Порядок действий в выражении определяется приоритетами знаков операций и круглыми скобками. Типы операндов, входящих в выражение должны совпадать или удовлетворять правилам согласования типов языка программирования.

Выражения называют арифметическими, отношения, логическими и символьными в зависимости от того, какого типа операнды и операции в них используются.

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