Автор работы: Пользователь скрыл имя, 21 Ноября 2013 в 19:12, реферат
Выражение в программировании служит для определения порядка выполнения действий над элементами данных и состоит из операндов (констант, переменных, обращений к функциям), круглых скобок и знаков операций.
По количеству операндов операции делятся на унарные и бинарные. Унарные операции имеют только один операнд, перед которым располагается символ операции. К унарным относятся: операции изменения знака «-» (минус) и сохранения знака «+» (плюс), а также логическое отрицание «not» (НЕ) и взятия адреса @, например,
Приоритет операций выражений.
Выражение в программировании служит для определения порядка выполнения действий над элементами данных и состоит из операндов (констант, переменных, обращений к функциям), круглых скобок и знаков операций.
По количеству операндов операции делятся на унарные и бинарные.
Унарные операции имеют
только один операнд, перед которым
располагается символ операции. К
унарным относятся: операции изменения
знака «-» (минус) и сохранения знака
«+» (плюс), а также логическое отрицание
«not» (НЕ) и взятия адреса @, например,
Выражение |
Результат |
-7 |
-7 |
-(-9) |
9 |
+5 |
5 |
not False |
True |
Остальные операции являются бинарными
и содержат два операнда, между
которыми ставится символ операции, например,
Выражение |
Результат |
5+7 |
12 |
(4-2)*5+10 |
20 |
True or False |
True |
По характеру выполняемых действий операции разделяются на следующие группы:
1. Арифметические операции:
• унарные: +, -
• бинарные: +, -, *, /, div, mod
2. Операции отношения:
=, <>, <, >, <=, >=
3. Булевы (логические) операции:
not, and, or, xor
4. Поразрядные логические и сдвиговые операции:
not, and, or, xor, shl, shr
5. Строковая операция (конкатенация):
+
6. Операции над множествами:
+, -, *, in, <=, >=
7. Операция взятия адреса:
@
8.Операции над операндами типа PChar:
+, -
9.Операции над классами и объектами:
as, is
10.Операции над операндами вариантного типа:
+, -, *, /, div, mod, shl, shr, and, or, xor, not, =, <>, <, >, <=, >=
Последовательность выполнения операций в выражении определяется тремя факторами:
• приоритетом операций;
• порядком расположения операций в выражении;
• использованием скобок.
По приоритету все операции делятся на четыре группы:
Приоритет |
Операции |
Категория операций |
Первый (высший) |
+ - not @ |
Унарные операции |
Второй |
* / div mod and shl shr |
Бинарные операции типа умножения |
Третий |
+ - or xor |
Бинарные операции типа сложения |
Четвертый (низший) |
= <> < > <= >= in |
Бинарные операции отношения |
Для определения приоритета операций
имеются четыре основных правила:
• Операнд, находящийся между двумя операциями с различными приоритетами, связывается с операцией, имеющий более высокий приоритет.
• Операция, находящаяся между двумя операциями с равными приоритетами, связывается с той операцией, которая находится слева.
• Выражение, заключенное в скобки, перед выполнением вычисляется как отдельный операнд.
• Операции с равным приоритетом
производятся слева направо с возможным
регулированием порядка выполнения скобками.
Операции первого (высшего) приоритета
выполняются в первую очередь. Операции
четвертого (низшего) приоритета выполняются
в последнюю очередь. Операции с
равным приоритетом выполняются
слева направо, хотя иногда компилятор
для генерации оптимального кода
может переупорядочить
При наличии в
числителе или знаменателе
Например A > B AND C > D -сначала выполнится B AND C, а затем A > (B AND C) и потом (A > B AND C) > D. Если поставить скобки – (A>B) AND (C>D) – сначала выполнится (A>B) затем (C>D) и только потом сравнение между этими скобками.