Встроенные операторы и функции
Встроенные операторы и функции .
Операторы и операнды
Виды операторов
Операторы во входном языке и языке программирования Maple служат для конструирования выражений. Формально операторы представлены своими идентификаторами в виде специальных математических знаков, слов и иных имен. Операторы, как это вытекает из их названия, обеспечивают определенные операции над данными, представленными операндами.
Имеется пять основных типов операторов:
- binary — бинарные операторы (двумя операндами);
- unary — унарные операторы (с одним операндом);
- nullary — нульарные операторы (без операнда — это одна, две и три пары кавычек);
- precedence — операторы старшинства (включая логические операторы);
- functional — функциональные операторы.
Для просмотра операторов и их свойств можно использовать следующие команды:
> ?operators[binary];
> ?operators[unary];
> ToperatorsCnullary];
> ?operators[precedence];
> ?operators[functional]:
А для изучения примеров применения операторов нужно задать и исполнить команду:
> ?operators[examples];
Команда:
> Tdefine:
позволяет ознакомиться с функций define. С ее помощью можно определять новые операторы.
Бинарные (инфиксные) операторы
Бинарные (инфиксные) операторы используются с двумя операндами, обычно размещаемыми по обе стороны от оператора. В ядро Maple 15 включено около трех десятков бинарных операторов. Основные из них перечислены в табл. 6.1.
Tаблица 6.1. Бинарные операторы
Обозначение |
Оператор |
+ |
Сложение |
— |
Вычитание |
* |
Умножение |
/ |
Деление |
** или ^ |
Возведение в степень |
mod |
Остаток от деления |
$ |
Оператор последовательности |
. |
Разделительная точка |
@ |
Оператор композиции |
@@ |
Повторение композиции |
, |
Разделитель выражений |
:= |
Присваивание |
. .. |
Задание интервала |
/ |
Разделитель выражений |
&* |
Некоммутативное умножение |
&<string> |
Нейтральный оператор |
|| |
Конкатенация (объединение) |
Примеры использования бинарных операторов:
Оператор композиции @@ может использоваться для создания сложных функций, содержащих цепные дроби:
А вот еще один пример применения этого оператора для составления цепного радикала и вычисления ряда таких цепочек в цикле:
Операторы объединения, пересечения и исключения для множеств
Для данных типа «множество» определены следующие бинарные операторы:
- union — включает первый операнд (множество) во второй;
- intersect — создает множество, содержащее общие для операндов элементы;
- minus — исключает из первого операнда элементы второго операнда.
В любом случае, в результирующем множестве устраняются повторяющиеся элементы. Действие этих операторов поясняют следующие примеры:
Напоминаем, что эти операторы заданы ключевыми словами. Обратите внимание на то, что в Maple 15 результат применения оператора union представлен членами, расположенными в довольно произвольном порядке.
Унарные арифметические операторы
Унарные операторы используются с одним операндом. Они могут быть префиксными, если оператор стоит перед операндом, и постфиксными, если он стоит после операнда. К унарным относятся семь операторов, приведенных в табл. 6.2.
Таблица 6.2. Унарные операторы
Обозначение |
Оператор |
+ |
Унарный плюс (префикс) |
— |
Унарный минус (префикс) |
; |
Факториал (постфикс) |
. |
Десятичная точка (префикс или постфикс) |
$ |
Последовательность (префикс) |
not |
Логическое отрицание (префикс) |
&string |
Метка (префикс) |
Примеры применения унарных операторов:
Оператор % и команда history
Мы уже неоднократно отмечали, что оператор % обеспечивает подстановку в строку ввода (или в выражение) последнего результата операции, Х% — предпоследнего и %%% — третьего с конца. Есть еще одна иногда полезная возможность проследить за ходом частных вычислений внутри документа — применение команды-функции history. В Maple V R5 это была библиотечная функция, которая требовала вызова из библиотеки. В Maple 15 такого вызова уже не требуется. Функция history (ехрr) или history() создает список переменных вида от, где индекс f = 1, 2, 3…. Этим переменным можно присваивать значения в диалоговом режиме и отслеживать результаты вычислений. Команда off;, вводимая после использования данной функции, завершает работу с ней. Ниже представлен диалог с применением функции history:
К сожалению, полученный результат и значения глобальных переменных 01 после завершения работы с данной функцией становятся недоступными, так что практической пользы от ее применения не так уж много. Разумеется, внутри блока history вы можете присвоить результат другой переменной и он сохранится (попробуйте это сделать сами). При каждом очередном применении функции history нумерация переменных 0i начинается с начала, так что какой-либо преемственности при использовании этой функции нет.
Функция history может применяться в качестве средства начальной отладки вычислений. Внутри фрагмента программы, заданного функцией history, можно задавать построения графиков. Например, при исполнении фрагмента программы: