Выбрать главу

> X/(Y*Z);

Но вернемся к ситуации с синтаксическими ошибками, которые система Maple распознает с помощью встроенного в нее синтаксического анализатора. Например, если вы задали неправильное имя функции, то это будет опознано синтаксическим анализатором и вычисления не будут выполняться. Maple просто повторит выражение в строке вывода:

> son(1.0);

son(1.0)

В этом примере вместо имени функции sin введено ошибочное имя son. Maple воспринимает его как некую, введенную пользователем, функциональную зависимость, и потому просто повторяет запись и не выводит сообщение об ошибке. А вот другая ситуация — имя функции sin введено верно, но вместо десятичной точки при задании вещественного числа 1.0 использована запятая:

> sin(1,0);

Error, (in sin) expecting 1 argument, got 2

В данном случае Maple «знает», что работа идет с его встроенной функцией синуса, которая должна иметь единственный аргумент. Задание (1,0) означает, что пользователь ввел вместо вещественного числа два целочисленных числа, разделенных запятой. На это Maple отреагировал выдачей сообщения об ошибке (на экране дисплея оно имеет малиновый цвет). Исправьте ошибку, и синус единицы будет благополучно вычислен:

> sin(1.0);

.8414709848

А вот еще одна типичная ситуация — в последовательности выражений опущен знак-разделитель (двоеточие или точка с запятой):

> X:=2: Y:=3| Z:=4:

Error, missing operator or ';'

Тут Maple не только реагирует на ошибку, но и пытается подсказать, что именно пропущено. Более того, маркер ввода в виде мигающей вертикальной черточки будет помешен на место ошибки, и вы сможете тут же устранить ошибку. Правда, подсказки не всегда точны — в нашем случае явно пропущен разделитель в виде двоеточия, a Maple сообщает о пропуске точки с запятой. Впрочем, откуда системе знать, хотим мы вывести результат операции Y:=4 сразу (для этого нужен разделитель в виде точки с запятой) или откладываем на потом (с помощью символа двоеточия).

Вот еще один пример характерной ошибки — три знака * подряд:

> 2**|*3*sin(1.);

Error, `*` unexpected

Здесь Maple подсказывает, что один оператор * надо убрать — два знака * подряд означают вполне законный вариант оператора — возведение в степень. При этом маркер ввода вновь указывает место ошибки. Проанализируйте следующие простые примеры:

> 2**3*sin(1.);

6.731767878

> 2^3*sin(1.0);

6.731767878

> 2^(3*sin(1.0));

5.753392735

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

1.11.5. Применение контекстного меню правой клавиши мыши

Достаточно опытному пользователю системой Maple большим подспорьем в эффективной работе с системой является контекстно-зависимое меню правой клавиши мыши. Для его применения достаточно навести курсор мыши на нужный объект (например, ячейку ввода или вывода, график и т.д.) и нажать правую клавишу мыши. Появится контекстное меню, в котором и можно выбрать ту или иную позицию или команду.

Удобство контекстного меню заключается в том, что оно всегда содержит только те команды, которые относятся к выбранному объекту. Контекстных меню в Maple великое множество и на копиях экрана примеров время от время будут приводиться разные варианты этого меню. Например, на рис. 1.19 показано контекстное меню двумерного графика с открытой позицией Style, позволяющей выбрать различный стиль линий графика. Позиция контекстного меню Export As открывает список графических форматов файлов, в которых может быть сохранен рисунок, представленный в графическом окне.

Если установить указатель мыши на входной ячейке, то это меню будет содержать три важные команды:

Standard Math — включает и выключает показ входных выражений в естественной математической форме;

Maple Input — управляет видом ячейки ввода (математический/текстовый);

Execute — включает выполнение ячейки.

Также, в зависимости от состояния буфера обмена и наличия выделения, в контекстном меню могут присутствовать команды Cut, Сору и Paste.