Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по дисциплине Объектно-ориентирован...doc
Скачиваний:
33
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

7. Операции с множествами

Множества могут использоваться как операнды в следующих операциях (см. табл. 7):

Таблица 7

Операции с множествами

Обозначение

Операция

Типы операндов

Тип результата

Пример

+

объединение

множество

множество

Setl + Set2

-

разность

множество

множество

S-T

*

пересечение

множество

множество

S*T

<=

подмножество

множество

Boolean

Q <= MySet

>=

включающее множество

множество

Boolean

SI >= S2

=

эквивалентность

множество

Boolean

S2 = MySet

<>

Неэквивалентность

множество

Boolean

MySet <> SI

in

является элементом

порядковый, множество

Boolean

A in Setl

8. Операции с классами

Для классов определены операции отношения = и <>. Кроме того, для классов определены еще две операции: as (как) и is (является). Первым операндом в обеих операциях является объект, вторым — класс.

9. Операция @

Операция @ возвращает адрес своего операнда: переменной, функции, процедуры, метода. Иначе говоря, операция @ создает указатель на свой операнд. При этом действуют следующие правила:

• Если X — переменная, то @Х возвращает адрес X. Если включена директива компилятора {$Т—} (она включена по умолчанию), то тип результата pointer. Если же включена директива {$Т+}, то тип результата ЛТ, где Т — тип X.

• Если F — функция или процедура, то @F возвращает точку входа F, причем тип результата всегда pointer.

• При применении операции @ к методу перед идентификатором метода должна идти ссылка на имя класса, например, @TMyClass.DoSomething.

10. Приоритет и ассоциативность операций

В сложных выражениях последовательность вычислений определяется скобками, а если подряд идет несколько операций, не разделенных скобками, то последовательность их вычисления определяется старшинством и ассоциативностью операций. По старшинству (приоритету) операции разделяются на четыре уровня (см. табл. 8):

Таблица 8

Приоритет операций

Операция

Приоритет

@, not

Первый (высший)

*, /, div, mod, and, shl, shr, as

Второй

+, — , or, xor

Третий

=, <>, <, >, <=, >=, in, is

Четвертый (низший)

Операции с более высоким приоритетом выполняются прежде операций с более низким приоритетом. Если же подряд следует несколько операций с равным приоритетом, то последовательность вычислений определяется ассоциативностью, которая у всех операций в Object Pascal одинакова — слева направо.

Контрольные вопросы:

  1. Какие арифметические операции используются в языке Objkect Pascal?

  2. Какие операции отношения используются в языке Objkect Pascal?

  3. Назовите основную операцию со строками.

  4. Назовите приоритет операций по старшинству.

Рекомендуемая литература: 1.1, 1.3, 1.5, 1.6, 1.8.