Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
31
Добавлен:
16.04.2013
Размер:
189.91 Кб
Скачать

Л а б о р а т о р н а я р а б о т а 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

Файл не найден

Файлу не присвоено имя

Файл не открыт

Деление на нуль

Выход значения за допустимый диапазон

Переполнение при операции с плавающей запятой

Соседние файлы в папке ВМИП