Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Сравнение простых типов

Когда операции =, <>, <, >, >= или <= применяются для опе-

рандов простых типов, то это должны быть совместимые типы. Одна-

ко, если один операнд имеет вещественный тип, то другой может

быть целого типа.

Сравнение строк

Операции отношения =, <>, <, >, >= или <= могут применятся

для сравнения строк согласно порядку расширенного набора символов

кода ASСII. Любые два значения строковых данных можно сравнить,

поскольку все значения строковых данных совместимы.

Значения символьного типа совместимы со значениями строково-

го типа, и при их сравнении символьное значение обрабатывается

как строковое значение с длиной 1. Когда со значением строкового

типа сравнивается упакованное строковое значение из N элементов,

то оно обрабатывается, как значение строкового типа длиной N.

Сравнение упакованных строк

Операции отношения =, <>, <, >, >= или <= могут применятся

также для двух упакованных значений строкового типа, если они со-

держат одинаковое число элементов. Если число элементов равно n,

то операция соответствует сравнению двух строк, каждая из которых

имеет длину n.

Сравнение указателей

Операции = и <> могут использоваться для сравнения операндов

типа указатель. Два указателя равны только в том случае, если они

ссылаются на один и тот же объект.

Сравнение символьных указателей

При разрешении по директиве компилятора {$X+} расширенного

синтаксиса операции =, <>, <, >, >= или <= могут применятся к

значениям PChar. Заметим, однако, что эти операции отношения

предполагают, что два сравниваемые указателя ссылаются на один и

тот же символьный массив.. По этой причине в сравнении участвуют

только смещения двух значений-указателей. Если указатели ссылают-

ся на разные символьные массивы, результат будет не определен.

Сравнение множеств

Если операндами являются множества a и b, то при их сравне-

нии получаются следующие результаты:

1. Выражение a=b истинно (= True) только когда a и b содер-

жат одни и те же элементы, в противном случае a<>b.

2. Выражение a = b истинно, когда каждый элемент множества

а является также элементом множества b.

3. Выражение a = b истинно, когда каждый элемент множества

b является также элементом множества a.

Проверка на принадлежность к множеству

Операция in возвращает истинное значение (True), когда зна-

чение элемента порядкового типа является элементом операнда мно-

жественного типа, в противном случае он возвращает значение

False.

Операция @

Операция @ используется в адресном коэффициенте для вычисле-

ния адреса переменной, процедуры, функции или метода. В Таблице

6.9 показан операнд и типы результата.

адресный коэффициент

¦ ---- -----------------------

L--¦ @ +--T-----¦ ссылка не переменную +----------------------->

L---- ¦ L----------------------- ^

¦ -------------------------- ¦

+---->¦ идентификатор процедуры +-----------+

¦ L-------------------------- ¦

¦ ------------------------ ¦

+---->¦ идентификатор функции +-------------+

¦ L------------------------ ¦

¦ ---------------------------------- ¦

L---->¦ уточненный идентификатор метода +----

L----------------------------------

Операция создания указателя Таблица 6.9

-------------T-----------T-----------------------T--------------

¦ Операция ¦ Действие ¦ Типы операндов ¦Тип результата¦

+------------+-----------+-----------------------+--------------+

¦ @ ¦ Получение ¦ Ссылка на переменную, ¦ Указатель ¦

¦ ¦ указателя ¦ процедуру или иденти- ¦ (совмести- ¦

¦ ¦ ¦ фикатор функции. ¦ мый с nil) ¦

L------------+-----------+-----------------------+---------------

Операция @ возвращает адрес операнда, то есть строит значе-

ние-указатель, ссылающееся на этот операнд.

Соседние файлы в предмете Программирование на Pascal