![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Операторы, совместно с операндами, служат для конструирования выражений. С другой стороны, операторы можно рассматривать, как данные абстрактного типа.
Часть операторов уже определена в системе, а часть может задаваться пользователем. К числу последних относятся функциональные, процедурные и определяемые оператором define.
Все операторы системы разделяются на следующие типы.
К бинарным (binary) операторам, определенным для двух операндов, относятся операторы, представленные в таблице 1.
Таблица 1. Бинарные операторы
+ | сложение | - | вычитание |
* | умножение | / | деление |
** или ^ | возведение в степень | mod | вычисление модуля |
$ | оператор последовательности | := | присваивание |
@ | оператор композиции | @@ | повторение композиции |
.. | задание области (интервала) | &string | нейтральный оператор |
&* | некоммутативное умножение | . | разделительная точка |
\ и. | конкатенация (объединение) | , | разделитель выражений |
Логические бинарные операторы | |||
< | меньше | <= | меньше или равно |
> | больше | >= | больше или равно |
= | равно | <> | не равно |
and | логическое и | or | логическое или |
Бинарные операторы объединения, пересечения и исключения для множеств | |||
union | включение элементов первого операнда во второй, оба операнда – множества | ||
intersect | пересечение множеств | ||
minus | исключение из первого множества элементов второго |
Унарные (unary) операторы, определенные для одного операнда, делятся на префиксные – стоящие перед операндом, и постфиксные – стоящие после операнда, табл.2.
Таблица 2. Унарные операторы
+ | Унарный плюс | - | унарный минус |
! | Факториал | . | десятичная точка |
$ | Последовательность | not | логическое отрицание |
% | Метка |
Нульарные (nullary) операторы, операторы без операндов, представлены в системе одной, двумя или тремя парами кавычек (%, %%, %%%).
Нейтральные (neutral) операторы определяются пользователями по следующим правилам:
1) обозначение нейтрального оператора состоит из символа & (амперсанда), за которым следует последовательность допустимых в Maple символов алфавита или специальных символов (не алфавитных и не числовых). Из специальных символов исключены _ (символ подчеркивания), &, |, (, ), [, ], {, },;,:, ', `, #, <пробел>;
2) максимальная длина имени такого оператора - 495 символов.
Нейтральный оператор генерирует формальное обращение к функции с именем нейтрального оператора. По старшинству эти операторы являются вторыми после десятичной точки и оператора. (точка).
Примеры нейтральных операторов
> a & * b;
a &* b
Следующее определение нейтрального оператора содержит специальный символ и символ после знака амперсанда, что вызывает синтаксическую ошибку.
> & ?1 a;
on line 50, syntax error, missing operator or `;`:
&?1 a;
^
> a * b &+ c;
a (b &+ c)
> & -(a,b,c,d);
&-(a, b, c, d)
> a & xx b - & xx(a,b);
Ещё один тип – функциональные (functional) операторы. Функциональный оператор задаётся выражением вида
(v1, v2, …, vn) -> (f1, f2, …, fn).
Здесь v1, v2, …, vn – переменные, f1, f2, …, fn – результаты действия функционального оператора.
Примеры:
1) Функцию y=x2 можно рассматривать как оператор, ставящий в соответствие каждому х значение х2:
> f := x->x ^ 2: f ( 2 );
2) Оператор, ставящий в соответствие каждому t пару cos(t), sin(t) можно записать так:
> f:=t-> (cos( t ),sin( t )): f ( 0 ); f (Pi);
1, 0
-1, 0
3) > f :=( x, y,z )->(sin( x ),cos( y ), z ): f ( 1 ., 1, 1 );
.8414709848, cos(1), 1
Для создания функциональных операторов можно использовать функцию вида
unapply( a, x1,..., xn ).
Здесь a – математическое выражение, x1,..., xn – переменные. Эта функция преобразовывает указанное математическое выражение в функцию от указанных переменных.
Пример:
> f :=unapply([ x *sin( t ),cos( x-1 )/ x ],x, t );
Для создания композиции функций f и g используется оператор композиции вида f @ g. Результатом является сложная функция f(g).
Дата публикования: 2014-11-29; Прочитано: 248 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!