Выражения в Pascal: арифметические, логические
Выражения представляют собой конструкцию языка, которая содержит в себе данные, операции и имеется строгий порядок выполнения этих операций. Выражения всегда возвращают какое-либо значение.
Операнды — это данные, над которыми производятся действия. Операндами могут быть переменные, константы, переменные массивов и другие элементы.
1. Арифметические операции
Арифметические операции выполняются над целыми и действительными числами. Результатом выполнения арифметического выражения является, соответственно, целое или действительное число.
Знак Операция | Операции | Типы операндов | Тип результата | Пример |
+ | Сложение | Integer, Real | Integer, Real | x+y |
— | Вычитание | Integer, Real | Integer, Real | x-y |
* | Умножение | Integer, Real | Integer, Real | x*y |
/ | Деление | Integer, Real | Real | x/y |
div | Целочисленное деление | Integer | Integer | X div Y |
mod | Целочисленный остаток от деления | Integer | Integer | X mod Y |
Операций div и mod:
• результатом целочисленного деления x div Y будет результат деления x на Y, округленный в сторону нуля до ближайшего целого числа. Например, результатом выражения 4 div 2 будет 2, а результатом выражения 17 div 4 будет 4;
• результатом операции mod будет остаток от целочисленного деления операндов. Таким образом, выражение x mod у эквивалентно выражению x-(x div Y) *Y. Например, результатом выражения 4 mod 2 будет о, а результатом выражения 9 mod 4 будет 1.
Пример
Var a, b, c, d: integer;
Begin a: = 7; b: = 5; c: = -10;
d: = a+b; d: = -d; end;
2. Логические операции
Логические выражения — это выражения, в которых содержатся:
1. логические константы True И (ИЛИ) False;
2. логические переменные и (или) константы типа Boolean;
3. операции отношения;
4. логические операции;
5. скобки.
В результате выполнения логической операции получается логическое значение True или False.
Знак Операция | Операции | Типы операндов | Тип результата | Пример |
not | Отрицание | Boolean | Boolean | not(C in MySet) |
and | Конъюнкция (логическое И) | Boolean | Boolean | A and В |
or | Дизъюнкция (логическое ИЛИ) | Boolean | Boolean | A or В |
xor | Исключающая дизъюнкция (исключающие ИЛИ) | Boolean | Boolean | A xor В |
Для того чтобы был четкий порядок выполнения операции, в языке Delphi имеется понятие приоритет.
Приоритет определяет старшинство операций, служит для установления порядка выполнения операций. Операции с более высоким уровнем приоритета выполняются раньше остальных.
По приоритету все операции разделяются на четыре уровня:
По первый (наивысший) уровень приоритета. К нему относятся операции and и not;
• второй уровень приоритета — операции *, /, div, mod, and, shl, shr и as;
• третий уровень приоритета — операции +, -, or и хоr;
• четвертый (самый низкий) уровень приоритета — операции =, о, <, >,<=, >=, in и is.
Если подряд идут несколько операций с одинаковым приоритетом, то операции выполняются слева направо.