Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo-Pascal.7.0.doc
Скачиваний:
19
Добавлен:
08.11.2018
Размер:
3.66 Mб
Скачать

Пошаговый режим

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

На случай возникновения таких ситуаций Паскаль предлагает ряд отладочных средств. Я начну с пошагового режима.

Идея пошагового режима вот в чем. Компьютер слишком быстро выполняет программу и человек не успевает проследить «за ходом его мыслей». Хорошо бы мы сами задавали темп выполнения программы. Тогда ошибку обнаружить было бы значительно легче.

Рассмотрим задачу из 1.1: В компьютер вводятся два произвольных положительных числа - длины сторон двух кубиков. Компьютер должен подсчитать объем одного кубика - большего по размеру . Обозначаем a1 - сторону одного кубика, a2 - сторону другого, V - объем кубика. Приведем второй вариант программы:

VAR a1,a2,V : Real;

BEGIN

ReadLn (a1,a2);

if a1>a2

then V:=a1*a1*a1

else V:=a2*a2*a2;

WriteLn (V : 15:5)

END.

Запускайте программу, но не обычным образом, а клавишей F7, которая является более быстрым способом вызова меню RunTrace into. (Кстати, обратите внимание, что справа от многих опций меню обозначены «горячие» клавиши, которыми эти опции можно быстро вызывать.) Паскаль откомпилирует вашу программу и сделает паузу перед началом выполнения программы, подсветив горизонтальной полосой строку BEGIN.

Еще раз F7. Ничего не происходит, только полоса подсветки прыгает на следующую строку. В ней находится первый исполняемый оператор вашей программы – ReadLn (a1,a2).

Итак, правило простое – при нажатии на F7 Паскаль выполняет одну строку программы и подсвечивает ту строку, которой предстоит быть выполненной.

F7. Паскаль выполняет ReadLn (a1,a2), в результате чего у вас, как и при обычном выполнении программы, во весь экран распахивается черное окно пользователя. Оператор требует ввода двух чисел. Введите, например, 5 и 4, не забыв нажать на клавишу ввода. Окно пользователя пропадет, снова возникнет окно редактора и вы увидите, что серая полоса подсветки перескочила на строку if a1>a2.

F7. Паскаль выполняет if a1>a2, в результате чего полоса прыгает на then V:=a1*a1*a1, так как 5>4.

F7. Полоса перепрыгивает через else V:=a2*a2*a2 и попадает на WriteLn (V : 15:5).

F7. Паскаль выполняет WriteLn (V : 15:5), в результате чего печатается результат, а полоса перескакивает на строку END.

F7. Полоса пропадает. Программа выполнена. Посмотрим на результат при помощи Alt-F5.

Теперь еще раз выполните ту же программу в пошаговом режиме. Но когда ReadLn (a1,a2) потребует двух чисел, введите 2 и 3. Теперь уже после if a1>a2 полоса прыгает не на then V:=a1*a1*a1, а на else V:=a2*a2*a2.

В любой момент пошагового выполнения программы вы можете вместо F7 выбрать RunRun (клавиши Ctrl-F9) и программа продолжит выполняться в обычном режиме. Чтобы прервать пошаговый режим, выберите RunProgram reset (клавиши Ctrl-F2).

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