Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_к_курсовой_работе.doc
Скачиваний:
4
Добавлен:
25.11.2019
Размер:
6.59 Mб
Скачать
  1. Синтаксические ошибки.

  2. Ошибки периода выполнения программы.

  3. Логические ошибки.

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

2.5.1 Синтаксические ошибки

Ошибки на этапе компиляции (или синтаксические ошибки) возникают в том случае, если не описана переменная, передается неправильное количество параметров подпрограмме, не совпадают типы переменной и выражения в операторе присваивания, операторы не удовлетворяют требованиям языка Object Pascal и т.п.

Object Pascal имеет строгие правила по сравнению с другими языками, поэтому, исправив синтаксические ошибки, можно считать выполненной основную часть отладки.

На рисунке 2.17 изображено окно редактора кода в тот момент, когда программа была запущена на компиляцию и компилятор обнаружил синтаксические ошибки. Напомним, что запуск на компиляцию и выполнение программы осуществляется командой Выполнить/Выполнить (функциональная клавиша F9), а запуск программы только на компиляцию можно осуще­ствить при помощи команды Проект/Компилировать < имя файла проекта > (комбинация кла­виш Ctrl+F9). В нижней части редактора кода содержатся сообщения об ошибках. Со­общение начинается словом [Ошибка], заключенным в квадратные скобки, далее идет имя файла проекта, затем в круглых скобках указывается номер строки программы, где была допущена ошибка и, в заключение, после двоеточия идет текст, поясняющий смысл до­пущенной ошибки. Например, на рисунке 2.17 сообщение информирует нас о том, что в 38 строке программы используется неописанный идентификатор r.

Рисунок 2.17 - Сообщение компилятора о синтаксической ошибке

Исправление ошибок следует начинать с первой, поскольку часто одна ошибка являет­ся причиной появления других ошибок. Исправив первую ошибку, следует снова за­пустить программу на компиляцию. Во многих случаях исправление только одной ошиб­ки существенно уменьшает общее количество сообщений об ошибках.

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

2.1.2 Ошибки периода выполнения программы

Другой возможный тип ошибок - это ошибки этапа выполнения (или семантические ошибки). Это происходит в том случае, если транслируется корректная программа, а затем при ее выполнении предпринимается попытка выполнить недопустимое действие, например, открыть несуществующий файл для ввода или выполнить деление на 0. В этом случае Delphi генерирует так называемое исключение (Exception) – рисунок 2.18.

Рисунок 2.18 - Сообщение о сгенерированном исключении

Сообщение, содержащееся в этом окне, информирует, что произошло деление на ноль, и выполнение программы приостановлено. Нажатие кнопки OK прерывает выполнение программы. Открывается окно редактора кода, в котором строка, содержащая ошибку, будет выделена синей полосой (рисунок 2.19).

Значение любой переменной можно посмотреть, если вызвать в пункте Отладка режим Просмотр/Изменение или нажать сочетание клавиш Ctrl+F7 (рисунок 2.20).

Рисунок 2.19 - Строка кода, содержащая ошибку периода выполнения

Часто этого бывает достаточно, чтобы обнаружить и исправить ошибку. Но если этого оказывается недостаточно, то следует использовать более мощные средства отладки, такие как пошаговая отладка и окно наблюдения.

Рисунок 2.20 - Окно просмотра значения переменной n2