Функция history может применяться в качестве средства начальной отладки вычислений. Внутри фрагмента программы, заданного функцией history, можно задавать построения графиков. Например, при исполнении фрагмента программы
> history();
O1 := sin(х);
sin(x)
O2 := plot(O1,х=0..20) ;
O3:= off;
будет построен график синусоиды. В целом работа с функцией history отличается не слишком высокой стабильностью, так что возможности этой функции пока остаются не слишком востребованными.
3.1.8. Работа с логическими операторами
Логические операторы, именуемые также булевыми, указывают на логическую связь величин (или выражений). Они представлены рядом бинарных операторов, приведенных в табл. 6.3 и реализованы во всех СКМ.
Таблица 3.3. Бинарные логические операторы
Обозначение |
Оператор |
< |
Меньше |
<= |
Меньше или равно |
> |
Больше |
>= |
Большее или равно |
= |
Равно |
о |
Не равно |
And |
Логическое «и» |
Or |
Логическое «или» |
Конструкции с этими операторами, такие как х=у, возвращают логическое значение — константу true, если условие выполняется, и false, если оно не выполняется. Кроме того, к логическим операторам относится унарный оператор not — он представляет логическое «нет». Для возврата логических значений выражений с этими операторами в Maple 9.5 используется функция evalb(условие), например (файл evalb):
> 5<2 ;
5 < 2
> evalb(%);
false
> evalb(4=2+2);
true
> evalb(3<>3);
false
> evalb(not(%));
true
> evalb(3=3 and 4>2);
true
> evalb(3=3 or 2<0);
true
> evalb(x*y=y*x);
true
Логические операторы часто используются в управляющих структурах программ, составленных на языке программирования Maple. Такое их применение мы рассмотрим позже.
3.1.9. Применение операторов специальных типов
Операторы в Maple описывают операции по преобразованию данных, в частности, выражений. Последние, в свою очередь, можно отнести к данным абстрактного типа. Могут быть описаны следующие типы операторов:
• неопределенные (f);
• нейтральные (&);
• процедурные;
• функциональные;
• композиционные (@).
Оператор относится к неопределенным , если он не был заранее определен. Такой оператор не выполняет никаких действий и просто повторяется в строке вывода:
> restart:f(1,2,а);
f(1, 2, а)
Композиционные операторы (на базе знака @) мы уже применяли. Другие типы операторов рассмотрены ниже.
3.1.10. Применение функциональных операторов
Функциональные операторы Maple-языка являются альтернативами функций и записываются в двух формах.
Нотация |
Запись оператора |
«arrow» (стрелочная) |
vars -> result |
«angle bracket» (в угловых скобках) |
|
Данные операторы могут использоваться для реализации подстановок. Например, запись х->х^2 означает подстановку х^2 на место переменной х. Возможны и такие подстановки в множественной форме:
(х,у) -> x^2 + у^2
х -> (2*х, 3*х^4)
(х,у,z) -> (х*у, y*z)
Функциональный оператор в Maple часто используется для задания функций пользователя, которое будет рассмотрено несколько позднее.
3.1.11. Определение нейтральных операторов
Для создания нейтральных операторов (задаваемых пользователем и в момент задания неисполняемых), определяемых пользователем, служит знак амперсанда — &. Синтаксис нейтрального оператора следующий:
&name
Имя оператора строится по правилам задания допустимых идентификаторов. Также в качестве имени может быть использована последовательность (один и более) специальных символов. В последовательности специальных символов не должно быть букв, цифр, подчеркивания, а также следующих символов:
& | (){}[]:;'` # <���перевод строки> <���пробел>
Максимальная длина имени — 495 символов. Нейтральные операторы могут быть унарными и бинарными. Примеры задания бинарного нейтрального оператора приведены ниже:
> х&/у;
x&/y
> z+x&/y;
z+(x&/y)
> &/(х, у);
x &/ у
> х&/у-&/(х,у);
0
3.1.12. Определение операторов с помощью оператора define
Большие возможности для создания операторов с заданными свойствами предоставляет специальный оператор define. Он записывается в следующей форме:
Читать дальше
Конец ознакомительного отрывка
Купить книгу