Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по КМ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.81 Mб
Скачать

Арифметические и логические выражения

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

Операндами арифметического выражения служат:

  • численные константы;

  • символьные константы;

  • глобальные переменные и функции;

  • функции;

  • последовательности;

  • параметры ресурсов;

  • параметры релевантных ресурсов;

  • параметры образцов;

  • параметры функций.

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

В выражениях целого и вещественного типа допустимы следующие арифметические операции: сложение (+), вычитание (-), умножение (*), деление (/). Порядок вычисления значения выражения определяется старшинством арифметических операций и скобками. Сначала выполняется вычисление значений в скобках, затем умножение и деление, и, наконец, сложение и вычитание.

Тип арифметического выражения определяется типами операндов, которые задаются пользователем при описании констант, функций, последовательностей, типов ресурсов, образцов. Выражение имеет целый тип, если все операнды имеют целый тип. Если в выражение входят только целые и вещественные операнды (хотя бы один), то выражение имеет вещественный тип. Выражения перечислимого типа состоят из единственного операнда перечислимого типа либо имени значения перечислимого типа. Арифметические операции над перечислимыми операндами не определены.

При вычислении значения арифметического выражения тип результата выполнения арифметической операции будет целым, если оба операнда целые. Если хотя бы один операнд имеет вещественный тип, то результат имеет вещественный тип. Результатом деления целых чисел является целое число - целая часть результата деления. Дробная часть отбрасывается. Например, результатом выражения 2 * (5 / 2) будет целое число 4, а выражения 2 * (5.0 / 2) - вещественное число 5.0.

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

Логические выражения состоят из стандартных логических функций, арифметических выражений, объединенных в пары операциями отношения, логических операций и квадратных скобок.

Операции отношения включают в себя:

  • = - равно;

  • <> - не равно;

  • < - меньше;

  • > - больше;

  • <= - меньше или равно;

  • >= - больше или равно.

Логические операции содержат: and - операция И; or - операция ИЛИ. При вычислении значения логического выражения сначала вычисляются значения арифметических выражений, затем результаты операций отношения и значения стандартных логических функций и в последнюю очередь выполняются логические операции. Оба арифметических выражения в операции отношения должны иметь один и тот же тип, либо одно должно быть вещественным, а второе - целым. Если одно из арифметических выражений в операции отношения имеет вещественный тип, то при выполнении операции отношения значение второго выражения также преобразуется к вещественному типу. Если оба арифметических выражения целого типа, то операция отношения выполняется над целыми операндами. Над выражениями перечислимого типа допустимы только операции "равно" и "не равно".

Порядок выполнения логических операций при вычислении выражения определяется старшинством и скобками. Сначала вычисляются значения в скобках, затем выполняются операции И, затем ИЛИ. При вычислении используется короткая схема, т.е. вычисляются значения не всех логических операндов, а только значения, необходимые для получения результата логической операции. Так, если первый операнд в операции ИЛИ имеет значение ИСТИНА, то независимо от значения второго операнда результат операции будет ИСТИНА, поэтому нет необходимости вычислять значение второго операнда. Аналогично, если в операции И первый операнд имеет значение ЛОЖЬ, то независимо от значения второго операнда значением операции будет ЛОЖЬ.