Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_6W.DOC
Скачиваний:
15
Добавлен:
07.06.2015
Размер:
319 Кб
Скачать
☆

5.1. Отладка Вашей второй программы

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

Интегрированный отладчик Turbo Pascal позволит Вам передвигаться по своему коду по строкам. В то же время, Вы сможете просматривать переменные: как изменяются их значения.

Чтобы начать сеанс отладки, выберите команду Run/Trace Into (или нажмите F7). Если Ваша программа нуждается в перекомпиляции, Turbo Pascal сделает это. Первое утверждение (в данном случае Begin) в теле Вашей программы будет высвечено; с этого момента мы будем называть эту высвеченную полосу – полосой запуска.

Первое нажатие клавиши F7 инициализирует сеанс отладки. Теперь нажмите F7, чтобы начать выполнение программы. Отладчик выполнит невидимый код запуска. Следующая выполнимая строка в этой программе – утверждение Write в строке 7.

Нажмите F7 снова. На этот раз появится экран пользователя и останется. Это произойдет потому, что утверждение ReadLn ожидает ввода двух чисел. Наберите два целых числа, разделенные пробелом; убедитесь, что второе число – не нуль. Теперь нажмите Enter. Вы вернетесь назад в окно редактора, с полосой запуска на утверждении присваивания в строке 9.

Нажмите F7 и выполните утверждение присваивания. Теперь полоса запуска находится на утверждении WriteLn в строке 10. Нажмите F7 дважды. Теперь вы должны выполнить ReadLn в строке 12.

Нажмите F7, посмотрите вывод программы и затем нажмите Enter/

Полоса запуска теперь находится на предложении Until. Нажмите F7 несколько раз, и Вы вернетесь к началу цикла Repeat.

5.2. Использование окна Watch

Давайте посмотрим на значение объявленных переменных. Нажмите Alt-D для появления меню Debug. Выберите команду Add Watch из меню Watches (или нажмите Ctrl-F7). Наберите А в окне ввода Watch Expression и нажмите Enter. А появится в окне Watch вместе со своим текущим значением. Теперь используйте команду Add Watch для добавления В и Ratio в окно Watch. Наконец, используйте ее для добавления выражения А/В в окно Watch.

Выберите Run/Trace Into (или нажмите F7) для того, чтобы сделать шаг в своей программе. На этот раз, когда Вы должны ввести два числа, введите 0 для второго числа. Когда Вы нажмете Enter и вернетесь в редактор, посмотрите на выражение А/В в окне Watch (нажмите Alt и # (номер) окна или Alt-W W). Вместо этого значения будет стоять фраза”Invalid floating-point operation” (неправильная операция над числами с плавающей запятой); это произошло потому, что деление на нуль неопределено. Хотя заметим, что наличие этого выражения в окне Watch не приводит к остановке программы с ошибкой. Вместо этого выдается сообщение об ошибке, а отладчик не выполняет деление в окне Watch.

Теперь нажмите F7 снова, присваивая А/В переменной Ratio. В этой точке произойдет аварийное завершение программы, и вверху окна редактора опять появится сообщение об ошибке “Division by zero”.

5.3. Исправление Вашей второй программы

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

Как исправить ее? Если В имеет значение 0, не делите А на В. Отредактируйте свою программу так, чтобы она выглядела следующим образом:

program MySecond;

var

A, B: Integer;

Ratio: Real;

Begin

Repeat

Write(‘Enter two numbers: ‘);

ReadLn(A, B);

If B = 0 Then

Writeln(‘The ratio is undefined’);

Else

Begin

Ratio := A/B;

Writeln(‘The ratio is ‘, Ratio:8:2);

End;

Write(‘Press <Enter>…’);

ReadLn;

Until B = 0;

End.

Теперь запустите свою программу (или сами, или используя отладчик, замечайте, как изменяются значения в окне Watch по мере совершения шагов в программе. Когда Вы готовы остановиться, введите 0 для В. Программа остановится после выведения сообщения “The ratio is undefined/ Press <Enter>…” (Отношение не определено. Нажмите <Enter>…).

Теперь Вы поняли, каким мощным средством является отладчик. Можно передвигаться в программе строка-за-строкой; можно показывать значение переменных и выражений своей программы и просматривать изменение значений по мере выполнения программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]