Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






III. Отладка программы






До окончательного рабочего состояния программа доводится в процессе отладки. В старших версиях Турбо Паскаля имеется система отладки (Debug). С ее помощью можно просмотреть на экране значение любой переменной, найти значение любого выражения, установить новое значение переменной. Можно прервать выполнение программы в указанных местах, которые называются контрольными точками. Система отладки существенно облегчает программисту поиск ошибок.

Ошибки могут быть «языковые» (синтаксические), могут быть алгоритмические.

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

Алгоритмические ошибки приводят к различным последствиям. Во-первых, могут возникнуть невыполнимые действия. Например, деление на нуль, корень квадратный из отрицательного числа, выход индекса за границы строки и т. п. Это ошибки времени исполнения. Они приводят к прерыванию выполнения программы. Как правило, имеются системные программные средства, помогающие в поиске таких ошибок.

Другая ситуация, когда алгоритмические ошибки не приводят к прерыванию выполнения программы. Программа выполняется до конца, получаются какие-то результаты, но они не являются верными. Такие ошибки называют логическими.

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

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

Успешное прохождение всех тестов есть необходимое условие правильности программы. При этом оно необязательно является достаточным. Чем сложнее программа, тем труднее построить исчерпывающий план тестирования. Опыт показывает, что даже в «фирменных» программах в процессе эксплуатации обнаруживаются ошибки. Поэтому проблема тестирования программы — очень важная и одновременно очень сложная проблема.

Для нахождения ошибок часто используют пошаговое исполнение программы. Для этого используются клавиша F8 или пункт меню Run, Step Over. При этом подсвеченная полоса устанавливается на первую исполняемую строку программы. Каждое новое нажатие клавиши F8 будет вызывать исполнение всех операторов данной строки, и строка выделения смещается на следующую строку программы.

Аналогичные действия вызывают нажатие клавиши F7 иливыбор пунктов меню Run, Trace Into. Но эти действия называются трассировкой программы. Отличие трассировки от пошагового исполнения в том, что когда в программе встречается подпрограмма (процедура или функция), то при трассировке они выполняются по порядку, а при пошаговом выполнении пользователь видит только результат работы процедуры или функции и не знает, что происходит внутри.

При трассировке и при пошаговом выполнении программы можно просмотреть значения переменных в окне отслеживания. Для этого существуют режимы Watch и Evaluate/Modify в пункте меню Debug.

После выбора режима Watch в нижней части экрана открывается окно Watches зеленого цвета:

В меню в пункте Debug есть режим Add Watch, в котором есть поле ввода и три кнопки:

В поле ввода вводится одна или несколько переменных, значения которых надо отследить. Это окно убирается клавишей Esc. Остается окно Watches, в котором указаны имена переменных и, через двоеточие, их значения. Используя пошаговое исполнение программы можно видеть, как меняются значения этих переменных. Если нужно добавить еще одну переменную в окно Watch, то, не выходя из редактора, нужно нажать комбинацию клавиш Ctrl + F7. Опять появится окно Add Watch, в которое добавляется имя новой переменной. Если окно Watch активно, из его списка можно удалить имя переменной. Для этого выбирается переменная с помощью клавиш управления курсором и нажимается клавиша Delete.

Окно Watch убирается и восстанавливается с помощью клавиши F6.

Для изменения значений некоторых переменных выбирается режим Evaluate/Modify в пункте меню Debug (или нажатием клавиш Ctrl + F4). Открывается диалоговое окно:

В первое поле Expression (выражение) вводится имя переменной. В поле Result (результат) появляется ее значение. Переменной можно присвоить новое значение, введя его с клавиатуры в поле New.

Кнопка Evaluate служит для вычисления выражения в поле ввода, кнопка Modify изменяет значение. Для закрытия окна служит кнопка Esc.

Иногда требуется просмотреть не всю программу, а только ее часть. Это можно сделать двумя способами:

1. Установить курсор на строку, до которой программа должна выполниться, затем выбрать пункт меню Run, Goto Cursor (или нажать клавишу F4). Эта строка называется строкой останова. Программа выполнится до этой строки и остановится. Теперь пользователь может просмотреть часть программы при помощи пошагового исполнения или трассировки программы.

2. Можно установить в некоторой строке (или нескольких строках) точку останова. Тогда выполнение программы будет остановлено в этой строке. Это можно сделать, нажав комбинацию клавиш Ctrl + F8 (эта же комбинация удаляет текущую точку останова). Строка, в которой установлена точка останова, выделится красным цветом. Точки останова можно просматривать в режиме Debug, Breakpoints.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал