print:
>> print(2*sin(1));
>> print(2*sin(1.));
2sin(1)
1.682941970
Обратите внимание на несколько необычный вывод в этом примере (до сих пор вывод каждого выражения шел после его завершения). Такой вывод обеспечивается, если строки ввода ряда выражений заключены в общую квадратную скобку слева от приведенных выражений. Для блокирования вывода используется оператор «двоеточия», а оператор «%» применяется для исполнения предшествующего выражения:
>> print(2*sin(1.)):
1.682941970
>> 2*sin(1.):
>> %;
1.682941970
Обратите внимание и на то, что знак «двоеточия» в первом случае не сработал. Это связано с тем, что сам оператор print выполнил свою функцию — вывода.
Некоторые выражения могут записываться в виде инертных функций, которые выводят записываемое выражение, но без их исполнения. Такие функции обычно записываются с большой буквы. Следующие примеры иллюстрирует применение функции интегрирования — обычной int и инертной Int:
>> int(х^2,х=0..1);
⅓
>> Int(х^2,х=0..1);
>> evalf(%);
0.3333333333
В первом примере Maple вычисляет интеграл предельно точно и дает ответ в виде рационального числа. Во втором примере просто выводится запись интеграла в математической нотации. В третьем случае функция evalf вычисляет этот интеграл и возвращает результат уже в форме числа с плавающей точкой. Мы еще вернемся в дальнейшем к более подробному описанию этих и иных средств вывода.
1.11.4. Обработка и индикация ошибок
При работе с системой Maple надо строго придерживаться правил корректного ввода выражений и иных объектов Maple-языка, называемых синтаксисом языка.
Алгоритмические, но синтаксически корректные, ошибки часто могут не распознаваться системой. Например, если в выражении a*sin(x) вы вместо аргумента х взяли аргумент b, то есть записали a*sin(b), то такую ошибку Maple распознать не может, ибо синтаксически как a*sin(x), так и a*sin(b) абсолютно корректны. Если вы перепутаете синус с косинусом и запишете a*cos(x), то такая ошибка также не будет распознана.
Ошибки в записи выражений, описывающих те или иные алгоритмы вычислений, не нарушающие синтаксическую корректность, системой Maple не распознаются. Контроль за такими ошибками целиком лежит на пользователе. Приведем еще один характерный пример ошибки, которую Maple не может распознать. Вводя выражение X/Y*Z, мы можем предположить, что это означает X/(Y*Z). Однако в Maple приоритет операций деления и умножения одинаков. Поэтому Maple вначале делит X на Y, а затем полученный результат умножает на Z:
>> X/Y*Z:
>> %;
Ошибки такого рода называют семантическими.