Пятница, 03 Мая 2024, 14.39.18 Приветствую Вас Гость |
Всё о Паскале |
Главная | Операции | Регистрация | Вход | RSS |
|
Операции
В Турбо Паскале определены следующие операции: Приоритет операций убывает в указанном порядке, т. е. наивысшим приоритетом обладают унарные операции, низшим — операции отношения. Порядок выполнения нескольких операций равного приоритета устанавливается компилятором из условия оптимизации кода программы и не обязательно слева направо. При исчислении логических выражений операцииравного приоритета всегда вычисляются слева направо, причем будут вычисляться все или только достаточные операции в зависимости от установленной в среде Турбо Паскаля опции ptions | compiler | complete boolean eval: при установленном значении этой опции вычисляются все операции отношения, при неустановленном — только те, которые достаточны для получения результата. Это обстоятельство необходимо учитывать при использовании операций отношения с функциями, в которых изменяются глобальные переменные илипараметры, передаваемые по имени, например:
Function Addl(var x: Integer): Integer; При выполнении этого фрагмента значение переменной А будет зависеть от настройки опции: если опция активизирована, значение А всегда наращивается на 1, если не активизирована — только в случае А <= в.
Правила использования операций с операндами различного типа приводятся
в таблице Операция Действие Тип операндов Тип результата * Пересечение множеств Множественный Множественный / Деление Любой вещественный EXTENDED div Целочисленное деление Любой целый Наименьший целый mod О статок от деления То же То же and Логическое И Логический Логический and To же Любой целый Наименьший целый shl Левый сдвиг То же То же shr Правый сдвиг То же То же + Сложение То же То же + То же Любой вещественный EXTENDED + Объединение множеств Множественный Множественный + Сцепление строк Строковый Строковый - Вычитание Любой целый Наименьший целый - То же Любой вещественный EXTENDED or Логическое ИЛИ Логический Логический or To же Любой целый Наименьший целый = Равно Любой простой или строковый Логический <> Не равно То же То же < Меньше Логический Логический <= Меньше или равно То же То же > Больше То же То же >= Больше или равно То же То жеПри действиях с вещественным типом одним из операндов может быть значение любого целого типа. Результат операций имеет указанный в таблице тип EXTENDED только для установленного в среде Турбо Паскаля режима генерации кода, рассчитанного на арифметический сопроцессор или на его эмуляцию. Если этот режим не установлен, результат будет иметь значение типа REAL. Унарная операция @ применяется к операнду любого типа и возвращает результат типа POINTER, в котором содержится адрес операнда.
Пусть, например, задано описание Тогда оператор       TwoCharPtr := @Int; приведет к тому, что в TwoCharPtr будет храниться адрес целочисленной переменной INT, которая может теперь интерпретироваться как совокупность двух символов. Поэтому возможен, например, такой оператор:       if TwoCharPtrA[l] = 'С' then ...
Если операция @ применяется к процедуре, функции или методу в объекте,
ее результатом будет адрес точки входа в эту процедуру (функцию, метод).
Этот адрес можно использовать только в подпрограмме, написанной на ассемблере,
или в фрагментах, определенных оператором INLINE. Логические операции применимы к операндам целого и логического типов. Если операнды — целые числа, то результат логической операции есть тоже целое число, биты которого (двоичные разряды) формируются из битов опе- рандов по правилам, указанным в таблице: Логические операции над данными типа INTEGER (поразрядно) Операнд 1 Операнд 2 not and or xor 1 — 0 — — — 0 — 1 — — — 0 0 - 0 0 0 0 1 — 0 1 1 1 0 - 0 1 1 1 1 — 1 1 0К логическим же в Турбо Паскале обычно относятся и две сдвиговые операции над целыми числами:       i shi j — сдвиг содержимого i на j разрядов влево; освободившиеся младшие разряды заполняются нулями;       i shr j — сдвиг содержимого i на j разрядов вправо; освободившиеся старшие разряды заполняются нулями. В этих операциях i и j — выражения любого целого типа. С помощью программы, показанной в следующем примере, можно вывести на экран результат применения логических операций к двум целым числам.
{Программа вводит два целых числа и печатает результат применения к ним
логических операций. Для выхода из программы ввести Ctrl-Z и нажать Enter) В программе организуется ввод двух произвольных целых чисел и печать результата применения к.ним всех логических операций. Для выхода из программы следует нажать комбинацию клавиш Ctrl+Z, а затем клавишу Enter . Логические операции над логическими данными дают результат логического типа по правилам, указанным в таблице Операнд 1 Операнд 2 not and or xor True — False — — — False — True — — — False — False False False False False True — False True True True False - False True True True True — True True False Операция отношения IN применяется к двум операндам. Первым (левым)
операндом должно быть выражение любого порядкового типа, вторым —
множество, состоящее из элементов того же типа, или идентификатор мно-
жественного типа. Операция дает TRUE, если левый операнд принадлежит
множеству, например: |
|
progmma.ucoz.ru © 2024 |