- •1. Теоретические сведения
- •2. Встроенный отладчик системы Delphi
- •Команды, соответствующие командам отладчика
- •3. Использование команд отладчика
- •4. Методика отладки программы
- •5. Некоторые замечания
- •6. Лабораторное задание
- •7. Порядок выполнения лабораторной работы
- •8. Требования к отчету
- •9. Контрольные вопросы
- •10. Ваpианты заданий
Л а б о р а т о р н а я р а б о т а N 2
ОТЛАДКА ПРОГРАММ В ИНТЕГРИРОВАННОЙ СРЕДЕ
СИСТЕМЫ DELPHI
Цель работы: получение практических навыков по отладке программ, написанных на языке Паскаль.
Продолжительность работы - 4 часа.
1. Теоретические сведения
Нередко при первом выполнении программы получается неверный результат. Это обусловлено тем, что и в алгоритме, и при записи программы на бумаге, и при создании файла с текстом программы могут быть допущены ошибки. Поэтому возникает необходимость в отладке - поиске и исправлении ошибок в программе. Различают синтаксические, семантические и логические ошибки.
Cинтаксические ошибки обнаруживаются при компиляции программы, когда в ней встречаются операторы или другие языковые конструкции, не удовлетворяющие правилам языка программирования. Если при компиляции программы будет найдена синтаксическая ошибка, система Delphi прекратит компиляцию, отметит курсором место ошибки в тексте программы и в нижней части окна редактора поместит сообщение об ошибке (табл.1).
После исправления ошибки следует повторить компиляцию программы. Компиляция программы завершится успешно только после устранения всех имевшихся в ней синтаксических ошибок.
Семантические ошибки возникают при выполнении программы в
том случае, когда делается попытка произвести недопустимые
действия, например: выполнить деление на нуль, прочитать информацию из несуществующего файла, ввести недопустимое значение для переменной и т.п.
В этом случае на экране появляется сообщение об ошибке, которое имеет такой вид:
Runtime error nnn at xxxx:yyyy
где nnn - номер ошибки, xxxx:yyyy - адрес ошибки. Дополнительно к этому система Delphi автоматически отмечает курсором место возникновения ошибки в тексте программы и может вывести сообщение о семантической ошибке (табл.2):
Error nnn: Текст сообщения на английском языке.
В момент появления сообщения о синтаксической или семантической ошибке можно щелкнуть мышью по тексту сообщения и нажать клавишу F1, чтобы получить подробную информацию на английском языке о возможных причинах ошибки.
Логические ошибки в отличие от двух ранее рассмотренных видов ошибок не могут быть обнаружены автоматически без целенаправленного поиска. Логические ошибки обусловлены неточностями в алгоритме решения задачи, неправильным описанием формальных параметров в подпрограммах, некорректным использованием глобальных переменных, непониманием механизма взаимодействия программы и подпрограммы и другими причинами.
Для обнаружения логических ошибок целесообразно использовать отладчик, позволяющий автоматизировать процесс отладки. Система Delphi имеет мощный встроенный отладчик, который будет использоваться при выполнении лабораторной работы.
Таблица 1
Сообщения о некоторых синтаксических ошибках
Cообщение об ошибке |
Пpичина ошибки |
Identifier expected--------------------- Unknown identifier-------------------- Duplicate identifier-------------------- Syntax error----------------------------- String constant exceeds line---------
Unexpected end of file---------------- Line too long---------------------------- Variable identifier expected--------- Error in type--------------------------- Type mismatch------------------------ Error in expression------------------- Illegal assignment-------------------- THEN expected----------------------- TO or DOWNTO expected--------- Constant out of range----------------- ";" expected---------------------------- ":" expected "," expected "(" expected ")" expected "=" expected ":=" expected "." expected Case constant out of range-----------
Error in statement---------------------- Invalid procedure or function reference |
Не указан идентификатор Неизвестный идентификатор Повторное описание идентификатора (имени) Синтаксическая ошибка (найден недопустимый символ в программе) Строковая константа превышает допустимые размеры Найден конец файла с неполным текстом программы Слишком длинная строка в тексте программы Отсутствует идентификатор переменной Ошибка в описании типа Несоответствие типов Ошибка в выражении Неверное присваивание Требуется слово THEN Требуется слово TO или DOWNTO Константа не соответствует допустимому диапазону Нужно указать ";" Нужно указать ":" Нужно указать "," Нужно указать "(" Нужно указать ")" Нужно указать "=" Нужно указать ":=" Нужно указать "." Метка выбора не соответствует допустимому диапазону Ошибка в операторе Недопустимая ссылка на процедуру или функцию |
Таблица 2
Сообщения о некоторых семантических ошибках
Номер ошибки |
Cообщение об ошибке |
Пpичина ошибки |
2 102 103 200 201 205 |
File not found File not assigned File not open Division by zero Range check error Floating point overflow |
Файл не найден Файлу не присвоено имя Файл не открыт Деление на нуль Выход значения за допустимый диапазон Переполнение при операции с плавающей запятой |