Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Операции присвоения и сравнения




К операциям относятся: присвоить значение (:=), равно (=), не равно (<>), меньше чем (<), больше чем (>), меньше или равно (<=), больше или равно (>=). Результатом сравнения является логическая константа True (истина) либо False (ложь). В операции сравнения могут участвовать однотипные опе­ранды, кроме Real и Integer, которые сравниваются друг с другом.

Логические операции

Таблица истинности (1‑True, 0‑False)

Значение X X        
Значение Y Y        
Отрицание Not X        
Логическое «и» X And Y        
Логическое «или» X Or Y        
Исключающее «или» X Xor Y        

Результатом логической операции является логическая константа True (истина) либо False (ложь).

Имеется два режима вычисления логического выражения:

1.Полный, при котором вычисление производится до конца вы­ра­же­ния (директива компилятора {$B+}).

2.Сокращенный ‑ вычисления заканчивается, если текущий резуль­тат не изменится в дальнейшем ({ B‑ }).

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

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

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

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

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

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

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

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

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

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

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 (If 9 In [1,3,5,8,9,0,123,56] Then... Else...).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вопросы для самопроверки и контроля

Вопросы для самопроверки

1. Назовите тип результата деления.

2. Какие существуют режимы вычисления логического выражения?

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

1. Имеют ли логические операции больший приоритет, чем операции сравнения?

2. В какой последовательности выполняются операции при равенстве приоритета?

3. Чему равно для четного числа N выражение N Mod 2?

4. Можно ли выполнить цикл For с шагом 2?

5. У какой операции выше приоритет ‑ сравнения или логической?

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...