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

Средства контроля и отладки процедур

Одним из основных средств отладки процедур является функция трассировки trace(name). Детальность ее работы задается системной переменной printlevel (уровень вывода). При printlevel: = n (значение n = 1 по умолчанию) выводится результат только непосредственно исполняемой функции или оператора. Для вывода информации о выполнении k-ro уровня вложенности надо использовать значение этой переменной от 5*k до 5*(k+i). Так, при п от 1 до 5 выводятся результаты трассировки первого уровня, при и от 6 до 10 – второго и т. д. Максимальное значение п = 100 обеспечивает трассировку по всем уровням вложенности процедуры name.

Следующий пример показывает осуществление трассировки для функции int(x^n,x):

Иллюстрированный самоучитель по Maple 6/7 › Типовые средства программирования › Средства контроля и отладки процедур

Действие функции трассировки отменяется командой untrace:

Иллюстрированный самоучитель по Maple 6/7 › Типовые средства программирования › Средства контроля и отладки процедур

При отладке алгоритмов выполнения вычислений надо тщательно следить за сообщениями об ошибках. Для этого в Maple предусмотрены функция traceerr и системная переменная lasterr, в которой сохраняется последнее сообщение об ошибке. При каждом обращении к tracerr переменная lasterr очищается:

> 2/0;
Error, numeric exeption:division by zero
> 2/4;
1/2
> 2/.3;
6.666666667
> lasterror:
"division by zero"
> traperror(3/4);
3/4
> lasterror;
lasterror
> traperror(5/0);
Error, numeric exeption:division by zero
> lasterror:
"numeric exeption:division by zero"

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

При правильном построении процедур ошибочные ситуации заведомо предусматриваются и должным образом обрабатываются.

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