Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные вопросы экзамену программирование.doc
Скачиваний:
5
Добавлен:
16.04.2019
Размер:
264.19 Кб
Скачать

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

Когда операции =, <>, <, >, >= или <= применяются для операндов простых типов, то это должны быть совместимые типы. Однако, если один операнд имеет вещественный тип, то другой может быть целого типа.

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

Операции отношения =, <>, <, >, >= или <= могут применятся для сравнения строк согласно порядку расширенного набора символов кода 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------------+-----------+-----------------------+---------------

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