Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Операции, понятие приоритета. Выражения






Все вычисления и другие преобразования данных в программе записываются в виде выражений. Обычно выражение включает несколько операций, которые выполняются в порядке их приоритетности. Различают следующие типы выражений:

- арифметические операции: + (сложение), - (вычитание), * (умножение), / (деление вещественное), div (деление целочисленное), mod (остаток целочисленного деления) - эти операции применяют к вещественным и целым числам, результат - также число;

- операции отношения: > (больше), < (меньше). = (равно), < > (не равно), > = (не меньше). < = (не больше) - эти операции применяют к числам, символам, символьным строкам и некоторым другим типам данных, результат -значение логического типа;

- логические операции: and (и), or (или), хог(исключающее или), not (не) - эти операции выполняют с логическими переменными и константами, результят -значение логического типа;

- поразрядные операции: and (и), or (или), хог (исключающее или), not (не), shr (сдвиг вправо), shl (сдвиг влево) - эти операции выполняют с целыми числами, результат - целое число;

- строковая операция: + (сцепление строк) - выполняемся над символами и строками, результат - строка;

- операции над множествами: +- (объединение), - (дополнение), * (пересечение), результат - множество; in (определение принадлежности элемента множеству), результат - значение логического типа;

- операция над указателями: @(определение адреса программного объекта), результат-адрес.

Таблица 2. Приоритеты операций

Операции Приоритет
@, not  
*, /, div, mod, and, shr, shl  
+, -, or, xor  
>, <, < >, =, < =, > =, in  

Для изменения порядка выполнения операций в выражении используют круглые скобки. В выражениях также допускается использование стандартных и определенных программистом функций. Им присваиваем высший приоритет.

Запись выражений, содержащих арифметические операции, выполняется в строку, порядок выполнения операций определяется скобками. Особенно внимательно следует программировать выражения, включающие операции различных приоритетов.

Операции отношения определены для вещественных и целых чисел, логических значений, кодов символов, строк н множеств. Результат этих операций - значение логического типа, true, если отношение истинно, и false - в противном случае.

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

Логические операции выполняют над значениями типа boolean. Если в логических операциях в качестве операндов используют результаты операций сравнения, которые имеют более веский приоритет, то необходимы скобки. Сложные логические выражения необходимо представить в виде набора простых и сочетать их логическими операциями, а каждое простое выражение в этом случае необходимо заключить в круглые скобки.

Поразрядные логические операции и операции сдвигов выполняются над целыми числами. Полученный результат- число того же типа. Второй операнд операций сдвига определяет количество двоичных разрядов, на которое необходимо сдвинуть первый операнд.

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

Совместимыми считаются:

- все целые типы;

- все вещественные типы;

- отрезок некоторого базового типа и базовый тип;

- два отрезка одного базового типа;

- символ и строка.

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

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

Явное преобразование обычно выполняют посредством использования специальных функций:

Trunc(х) - преобразует значение вещественного типа в значение целою типа, отбрасывая дробную чаcть;

Raund(x) - преобразует значение вещественного типа в значение целого типа, округляя его до ближайшего целого;

Оrd(х) - преобразует значение порядкового типа в его номер;

Chr(x) -преобразует номер символа по таблице ASCII в сам символ.

Кроме того, для явного преобразования типов можно использовать функции, имена которых соответствуют идентификаторам стандартных или определенных пользователем типов. Этот вид преобразования иногда называют автоопределенным.

 


Лекция 3. Структура программы (2 часа)






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.