В Mathcad’e13 имеется режим отладки программ (debugging mode). Для его запуска нужно вызвать инструментальную панель Debug из меню View/Toolbars/Debug (отображение/инструментальные панели/отладка), рис. 7.18:
Рис. 7.18. Панель Debug
Она имеет всего четыре кнопки:
- step – продолжить приостановленный расчет;
- pause/stop – прервать/закончить отладку (то же, что и Esc);
- включить/выключить (on/off) режим отладки;
- открыть/закрыть окно трассировки (Trace Window).
Для отладки программы используется новое окно Trace window и две функции
trace(S, x, y, z,...)
pause(S, x, y, z,...),
которые выводят в это окно значения локальных переменных x, y, z,..., полученных при выполнении программы. Здесь S – опциальный параметр (строка, записанная в двойных кавычках), содержащий форматы вывода в окно Trace window контролируемых локальных переменных.
Чтобы начать отладку программы, нужно открыть окно Trace window кнопкой на панели и включить режим отладки (on). Затем в отлаживаемый фрагмент программы записывается одна из функций trace()или pause(). Программа запускается на выполнение и в окне трассировки печатаются тестируемые значения. Для того чтобы переместить окно трассировки в нужное место документа, необходимо нажать клавишу [Ctrl] и перетащить его мышкой.
|
|
В качестве примера на рис. 7.19 приведена программа, в теле цикла которой имеется вызов функции trace(). Если выделить эту программу и написать знак равенства, то в окне трассировки будет выведено значение локальной переменной х.
Рис. 7.19. Трассировка простой переменной
На рис. 7.20 для тестирования введены два параметра (x,i), причем использована строка S для вывода идентификаторов переменных.
Рис. 7.20. Трассировка простой переменной с использованием строки форматирования
На рис. 7.21 показана трассировка элементов матрицы. Если строк матрицы больше двух, то в окне трассировки печатаются размер матрицы, первая и последняя строка, заключенные в квадратные скобки. Между ними печатается многоточие.
Рис. 7. 21. Трассировка матрицы
В дополнение, можно также делать паузу выполнения программы и отображать локальные переменные в окне трассировки. При выполнении паузы приостанавливаются все вычисления в рабочем документе. Для продолжения вычисления следует нажать кнопку step на панели Отладка. Для выхода из режима отладки нужно нажать кнопку pause/stop на той же панели. На рис. 7. 22 показана программа создания вектора v. В теле цикла введена функция pause(). Когда управление передается этой функции, расчет приостанавливается, в окне трассировки печатается строка, расчет останавливается и для продолжения его нужно нажать кнопку step на панели Отладка. После нажатия кнопки step четыре раза, в окне трассировки печатаются четыре строки и расчет закончен.
|
|
Рис. 7.22. Использование функции pause().
Если программа не запускается и ошибку заметить трудно, можно установить курсор на выделенный красным фрагмент, нажать левую кнопку мыши, затем вызвать всплывающее меню правой кнопкой и выполнить команду «Отследить ошибку». Появится диалоговое окно, рис. 7.23, нажав кнопку «<< Первый» и т.д. на которой можно отследить ошибки в программе.
Рис. 7.23. Диалоговое окно отслеживания ошибок