Иллюстрированный самоучитель по Maple 6/7

Основы работы с Maple 7 в диалоговом режиме

Обработка и индикация ошибок

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

Алгоритмические, но синтаксически корректные ошибки часто могут не распознаваться системой. Например, если в выражении a*sin(x) вы вместо аргумента х взяли аргумент b, то есть записали a*sin(b), то такую ошибку Maple 7 распознать не может, ибо синтаксически как a*sin(x), так и a*sin(b) абсолютно корректны. Если вы перепутаете синус с косинусом и запишете a*cos(x), то такая ошибка также не будет распознана.

Примечание
Ошибки в записи выражений, описывающих те или иные алгоритмы вычислений, не нарушающие синтаксическую корректность, системой Maple 7 не распознаются. Контроль за такими ошибками целиком лежит на пользователе
.

Приведем еще один характерный пример ошибки, которую Maple 7 не может распознать. Вводя выражение X/Y*Z, мы можем предположить, что это означает X/(Y*Z). Однако в Maple 7 приоритет операций деления и умножения одинаков. Поэтому Maple 7 вначале делит X на Y, а затем полученный результат умножает на Z:

Иллюстрированный самоучитель по Maple 6/7 › Первое знакомство с системой Maple › Основы работы с Maple 7 в диалоговом режиме

Ошибки такого рода называют семантическими. Если бы мы не проверили вывод с помощью оператора вычисления предыдущего выражения (%), то эта ошибка осталась бы нераспознанной. Выявление и устранение семантических ошибок выполняется на этапе отладки вычислений и программ.

Примечание
Используйте блокировку вычислений с помощью знака двоеточия только в том случае, когда вы абсолютно уверены в правильности записи выражения. Иначе вы можете не заметить вкравшейся в вычисления серьезной ошибки
.

В нашем примере мы получили бы верный результат, заключив выражение Y*X в круглые скобки. Как обычно, они предназначены для задания явного приоритета выполнения операций – в нашем случае вначале будет вычислено выражение в скобках (Y*Z), а затем уже X будет поделено на это выражение:

Иллюстрированный самоучитель по Maple 6/7 › Первое знакомство с системой Maple › Основы работы с Maple 7 в диалоговом режиме

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

Иллюстрированный самоучитель по Maple 6/7 › Первое знакомство с системой Maple › Основы работы с Maple 7 в диалоговом режиме

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

Иллюстрированный самоучитель по Maple 6/7 › Первое знакомство с системой Maple › Основы работы с Maple 7 в диалоговом режиме

В данном случае Maple 7 "знает", что работа идет с его встроенной функцией синуса, которая должна иметь единственный аргумент. Задание (1.0) означает, что растяпа-пользователь ввел вместо вещественного числа два целочисленных числа, разделенных запятой. Этого синтаксический анализатор Maple 7 стерпеть уже не смог, и он отреагировал выдачей сообщения об ошибке (на экране дисплея оно имеет малиновый цвет). Исправьте ошибку, и синус единицы будет благополучно вычислен:

Иллюстрированный самоучитель по Maple 6/7 › Первое знакомство с системой Maple › Основы работы с Maple 7 в диалоговом режиме

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.