- •Лекция 2
- •4.Выражения
- •4.1. Переменные
- •4.2. Константы
- •4.2.1. Целые константы
- •4.2.2. Вещественные константы
- •4.2.3. Строковые константы
- •4.2.4. Константные выражения
- •4.2.5. Типизированные константы
- •4.3. Стандартные функции
- •4.3.1. Арифметические функции
- •4.3.2. Функции преобразования типа
- •4.3.3. Функции для величин порядкового типа
- •4.4. Знаки операций
- •Операции со строками;
- •4.4.2. Операции отношения
- •4.4.3. Логические операции
- •Результат операции and
- •4.4.3. Операции с битами информации
- •4.4.4. Приоритеты операций
4.4. Знаки операций
Все операции в Турбо Паскале можно разбить на следующие группы:
-
арифметические операции;
-
логические операции;
-
операции с битами информации;
-
Операции со строками;
-
операции отношения;
-
адресный оператор @.
Типы данных, которые используются в операциях, должны быть либо идентичными, либо совместимыми.
Арифметические операции применимы только к величинам целых и вещественных типов. Перечень арифметических операций приведен в таблице.
Знак |
Операция |
Тип операндов |
Тип результата |
+ |
Сложение |
Целый Хотя бы один вещественный |
Целый Вещественный |
- |
Вычитание |
Целый Хотя бы один вещественный |
Целый Вещественный |
* |
Умножение |
Целый Хотя бы один вещественный |
Целый Вещественный |
/ |
Деление |
Целый Хотя бы один вещественный |
Целый Вещественный |
DIV |
Деление нацело |
Целые |
Целый |
MOD |
Остаток от деления целых чисел |
Целые |
Целый |
Операцию возведения в степень в Турбо Паскале предлагается реализовывать самому программисту в зависимости от конкретных значений операндов. Так, если основание степени положительное число, то возведение в степень можно реализовать по схеме: ax=exlna EXP(X*LN(a)). Например, 1/3 exp(1/3*ln(x)) или лучше exp(ln(x)/3), при х>0.
4.4.2. Операции отношения
Операции отношения предназначены для сравнения различных величин (величины должны быть сравнимых типов). Результат сравнения имеет логический тип. Имеются следующие операции отношения:
= - равно; < > - не равно;
> - больше; >= - больше или равно;
< - меньше; <= меньше или равно.
Операции отношения используются также для указателей, строк и множеств.
4.4.3. Логические операции
Для величин логического типа определены логические операции NOT (не), AND (и), OR (или), XOR (исключающее или).
Операция NOT имеет смысл противоположного события, она изменяет значение FALSE на TRUE и наоборот.
NOT(a<b) a>=b;
NOT(a=b) a< >b;
Операция AND называется также конъюнкцией или логическим умножением.
Результат операции and
A B |
A |
||
TRUE |
FALSE |
||
B |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
Операция ИЛИ (OR), иначе говоря, логическая дизъюнкция (логическое сложение).
Результат операции OR
A B |
A |
||
TRUE |
FALSE |
||
B |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
Операция исключающее ИЛИ (XOR) даёт результат TRUE, если только один из операндов имеет значение TRUE, а другой имеет значение FALSE; при совпадении логических значений операндов результат имеет значение FALSE. В математике эту операцию часто называют сложением по модулю.
Результат операции XOR
A B |
A |
||
TRUE |
FALSE |
||
B |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
В Турбо Паскале имеется два вида вычисления логических выражений: полное вычисление и укороченное вычисление. Так при вычислении
-
a and b and c and d;
-
a or b or c or d;
в первом выражении достаточно получить одно значение FALSE, чтобы прекратить проверки, а во втором вычисление логического выражения теряет смысл при получении первого значения TRUE.
Выбор вида вычислений осуществляется с помощью директивы компилятора $B. В случае директивы{$B-} (этот вариант выбирается по умолчанию) производится укороченное вычисление. В случае директивы {$B+} производится полное вычисление.