Иллюстрированный самоучитель по Turbo Pascal

Операции

В Турбо Паскале определены следующие операции:

  • унарные not, @;
  • мультипликативные *, /, div, mod, and, shl, shr;
  • аддитивные +, -, or, xor;
  • отношения =, <>, <, >, <=, >=, in.

Приоритет операций убывает в указанном порядке, т.е. наивысшим приоритетом обладают унарные операции, низшим – операции отношения. Порядок выполнения нескольких операций равного приоритета устанавливается компилятором из условия оптимизации кода программы и не обязательно слева направо. При исчислении логических выражений операции равного приоритета всегда вычисляются слева направо, причем будут вычисляться все или только достаточные операции в зависимости от установленной в среде Турбо Паскаля опции OPTIONS/COMPILER/ COMPLETE BOOLEAN EVAL: при установленном значении этой опции вычисляются все операции отношения, при не установленном – только те, которые достаточны для получения результата.

Это обстоятельство необходимо учитывать при использовании операций отношения с функциями, в которых изменяются глобальные переменные или параметры, передаваемые по имени, например:

Function AddI(var x: Integer): Integer;
begin {AddI}
inc(x);
AddI: = x end {AddI};
var
a,b: Integer;
begin {main}
if (a > b) or (Addl (a) > 100) then b: = a;
…….

При выполнении этого фрагмента значение переменной А будет зависеть от настройки опции: если опция активизирована, значение А всегда наращивается на 1, если не активизирована – только в случае А <= В.

Правила использования операций с операндами различного типа приводятся в табл. 3.1.

Таблица 3.1.

Операция Действие Тип операндов Тип результата
not Отрицание Логический Логический
not То же Любой целый Тип операнда
@ Адрес Любой Указатель
* Умножение Любой целый Наименьший целый
* То же Любой вещественный Exended
* Пересечение множеств Множественный Множественный
/ Деление Любой вещественный Extended
div Целочисленное деление Любой целый Наименьший целый
mod Остаток от деления То же То же
and Логическое И Логический Логический
and То же Любой целый Наименьший целый
shl Левый сдвиг То же То же
shr Правый сдвиг То же То же
+ Сложение То же То же
+ То же Любой вещественный Extended
+ Объединение множеств Множественный Множественный
+ Сцепление строк Строковый Строковый
- Вычитание Любой целый Наименьший целый
- То же Любой вещественный Extenden
or Логическое ИЛИ Логический Логический
or Тоже Любой целый Наименьший целый
= Равно Любой простой или строковый Логический
<> Не равно То же То же
< Меньше Логический Логический
<= Меньше или равно То же То же
> Больше То же То же
>= Больше или равно То же То же
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.