• Иллюстрированный самоучитель по 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, чтобы сообщить об этом редактору.