Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

1.2.4. Логические поразрядные операции

Результат логической операции над целыми числами есть целое число, биты которого формируют из битов операндов по правилам, указанным в таблице истинности (п.1.2.3).

And ‑ логическое умножение (63 And16 =16).

Or ‑ логическое сложение (4 Or2 =6).

Xor ‑ исключающее или (12 Xor22 =26).

XShlN ‑ циклический сдвиг влево на N позиций числаX(2 Shl7 =256). Умножение числа на два в степениN.

X ShrN ‑ циклический сдвиг вправо на N позиций числа X (90 Shr2 =22). Деление числа на два в степениN.

1.2.5. Операции со строками

Для строк применимы операции сравнения и операция сцепления (кон­катенации) двух строк или символов (+). Если одна из строк типа WideChar, то и вторая строка должна быть того же типа. Если обе строки ко­рот­кие, то и результат сцепление будет короткой строкой и может быть усечен до 255 символов.

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

A*B‑ пересечение множеств А и В: результат содержит элементы, общие для обоих множеств.

A+B‑ объединение множеств А и В: результат содержит элементы первого множества и недостающие элементы из второго множества.

A‑B‑ разность множеств А и В: результат содержит элементы из первого множества, которые отсутствуют во втором множестве.

A=B‑ равенство множеств А и В: результатTrue, если все элементы первого множества есть во втором, и наоборот, иначе ‑ результатFalse.

A<>B‑ неравенство множеств А и В: результатTrue, если есть хотя бы один элемент множества, отсутствующий в другом.

A<=Bесли все элементы множестваAесть во множествеB, то результатTrue, иначе ‑False.

A>=Bесли множестваBесть подмножествоA, то результатTrue, иначе -False.

A In B‑ если элемент А из множества В, то возвращаетсяTrue, иначе ‑False(If9In[1,3,5,8,9,0,123,56]Then...Else...).

Include(S,I)‑ процедура включает новый элементIв множествоS.

Exclude(S,I)‑ процедура исключает элементIиз множестваS.

1.2.7. Операции с указателями

P=QравноTrue, если оба указателя указывают на один адрес.

P<>QравноTrue, если оба указателя указывают на разные адреса.

P+I возвращает указатель на адрес, отстоящий отPнаIсимволов для указателя на символ (строку).

PI возвращает указатель на адрес, предшествующийPнаIсимволов.

PQ определяет число символов между указателями на символыPиQ.

P^ возвращается значение переменной по адресуP(разадресация, разы­ме­но­вание указателя).

@X илиAddr(X)‑ возвращает адрес операндаX: переменной, функции или процедуры (адрес входа), метода.

1.2.8. Порядок вычисления выражений

При вычислении выражения приоритет вычислений определяется скобками, а при их отсутствии ‑ приоритетами операций в порядке убывания приоритета: 1) @, Not2) *, /, Div, Mod, And, Shl, Shr,As

3)+, ‑,Or,Xor4) =, <>, <, >, <=, >=,In,Is. При равенстве приоритета, операции выполняются слева направо. Операции сравнения нужно заключать в круглые скобки, если их результаты используются в логических операциях.

1.2.9. Преобразование типов

Неявное преобразование типов операндов производится автоматически компилятором в выражениях, составленных из операндов различных типов; при этом операнд переводится в соответствующий тип, имеющий больший диапазон значений.

Явное преобразование типов реализуется с использованием функций преобразования (Int, Ord, Trunc, Round, Chr, Ptr) или применением стандартного типа или типа, определенного пользователем как имени функции преобразования к выражению преобразуемого типа.

Пример:A=LongInt(B)+1211.

Рекомендуется, чтобы операнды были одного типа, а для научно‑ тех­нических задач удобным является вещественный тип.