Операции присвоения и сравнения
К операциям относятся: присвоить значение (:=), равно (=), не равно (<>), меньше чем (<), больше чем (>), меньше или равно (<=), больше или равно (>=). Результатом сравнения является логическая константа True (истина) либо False (ложь). В операции сравнения могут участвовать однотипные операнды, кроме Real и Integer, которые сравниваются друг с другом. Логические операции Таблица истинности (1‑True, 0‑False)
Результатом логической операции является логическая константа 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|