Выражения в языке Паскаль.
Основными элементами, из которых строятся конструкции, составляющие исполняемую часть программы, являются переменные, константы, операции (см. стр. 12) и вызовы функции. Простейшей такой конструкцией является выражение. Выражения используются в составе более крупных конструкций – операторов.
Операторы, в отличие от операций и выражений, не вырабатывают новых значений (кроме оператора присваивания). Операторы обычно используются для указания последовательности действий. Примеры операторов:
- оператор присваивания: Левая часть := Выражение
для вычисления присваиваемого значения
- оператор (процедура) вывода: Write(..., Выражение, …);
вычисление того, что надо выводить на экран
- вызов функции: Имя_переменной := Имя_функции(…, Выражение, …);
вычисление значения фактического параметра функции
Выражение - конструкция, предназначенная для вычисления нового значения. Элементы выражения (операнды или лексемы – переменные, константы, знаки операций и вызовы функций) соединяются знаками операций (арифметических, логических, отношений). Операции в выражении определяют его семантику (смысл или значение). Например, в выражении (высказывании) «Казнить нельзя помиловать» положение запятой определяет смысл (значение) этого высказывания.
Одно выражение от другого отличается : значением, типом операндов, типом операций и типом результата. Различают арифметические, логические и символьные выражения.
В арифметических выражениях используются в качестве операндов числа или символьные значения переменных и результатом является целое или вещественное число:
x + 4 - Sin(x);
где x - переменная, 4 - константа, Sin -вызов функции.
Логические выражения строятся с помощью логических переменных (констант) и логических операций, которые возвращают логические значения (операции отношения). Знаки операций логические или операции отношений. Результата - логический.
ПРИМЕР логического выражения: (a>b) or false and (c>d).
В символьных выражениях операндами служат строки. Единственная разрешенная операция – конкатенация строк.
Кроме значения и типа результата для вычисления значения выражения важно задать порядок выполнения элементарных операций в выражении. Для выражений действуют три правила для определения порядка действий:
1). Правило скобок.
В первую очередь выполняется действие в скобках, а если их несколько, то в самых внутренних скобках.
2). Правило учета приоритета операций.
В первую очередь выполняются операции с наиболее высоким приоритетом.
3). Правило следования.
При одинаковых приоритетах операции обычно выполняются слева направо.
Приоритет операций на Паскале следующий (ко 2-му правилу):
приоритет | операция | тип значения |
not not | арифметический логический | |
and shl, shr *, / div, mod, and | арифметический арифметический арифметический арифметический логический | |
+, -, or, xor or, xor | арифметический логический | |
=, <>, >, < | логический |
Всего 4 группы приоритетов.
В пределах каждой из 4х групп приоритет одинаков
Примечание 1. Чем меньше значение приоритета, тем он выше.
Примечание 2. В Паскале, как видно из таблицы, приоритет операций отношения ниже, чем у логических операций. В многих других языках – наоборот, поэтому возникает вопрос о порядке выполнения операций, например, в следующем выражении:
a > b or c < d
Примечание 3. Чтобы указать правильный порядок вычислений в выражении надо расставить скобки.
Существуют две схемы вычисления логических выражений: полная и неполная. Полная схема означает, что выражения вычисляются полностью слева направо. По короткой схеме вычисление логических выражений прерывается, как только станет известным итоговый результат выражений (истина или ложь).
ПРИМЕР.
(1>2) and ((c>d) or (a<b)). - false.
При вычислении значения этого выражения по короткой схеме с самого начала ясно, какой результат имеет значение выражения (False).
Для выбора схем используется директива:
{$B+} -по полной схеме
{$B-} - по короткой схеме(по умолчанию).
Дата добавления: 2016-05-28; просмотров: 5869;