- •Основные элементы управления
- •Введение
- •Запуск системы и выход из системы
- •Элементы интерфейса
- •Работа с меню
- •Работа с окнами
- •Управление окнами
- •Диалоговые окна
- •Набор и редактирование текста программы
- •Простейшие операции
- •Фрагменты текста и буфер обмена
- •Трансляция и выполнение программы
- •Трансляция программы
- •Выполнение программы
- •Отладка программы
- •Контрольные задания и вопросы
- •Контрольное задание
- •Контрольные вопросы
10
3.2. Выполнение программы
Информация
После того, как в тексте программы устранены все ошибки, можно запустить программу на выполнение. Для этого необходимо подать команду Run/Run (CTRL+F9). При выполнении программы интерфейс ИСП заменяется экраном пользователя (User screen), предназначенным для организации диалога пользователя и программы. На экране пользователя отображаются данные, вводимые пользователем с клавиатуры, и результаты работы программы, выводимые с помощью процедур write и writeln.
Задание 27
Запустите программу на выполнение. В ответ на приглашение "Ввод х= " введите значение 1 и нажмите клавишу Enter.
Информация
После окончания работы программы экран пользователя автоматически заменяется интерфейсом ИСП. Для просмотра экрана пользователя необходимо подать команду
Debug/User screen (Alt+F5).
Задание 28
Просмотреть результат выполнения программы, открыв экран пользователя. Содержимое экрана пользователя должно иметь следующий вид:
Ввод х= 1 Значение z= 3.00
Информация
Для возвращения к интерфейсу ИСП достаточно нажать любую клавишу.
Задание 29
Вернитесь к интерфейсу ИСП.
Информация
В некоторых случаях удобно иметь отображение диалога с программой, не выходя из интерфейса ИСП. Для этого по команде Debug/Output можно открыть окно вывода
(Output).
Задание 30
Просмотреть результаты выполнения программы с помощью окна вывода. Для этого следует:
1)открыть окно вывода;
2)запустить программу на выполнение;
3)ввести значение 2 в ответ на приглашение "Ввод х= ";
4)просмотреть результат выполнения программы в окне Output;
5)закрыть окно вывода.
4. Отладка программы
Информация
Отсутствие в тексте программы ошибок, которые выявляются на этапе трансляции, не означает, что программа работает правильно, т.е. в итоге работы программы получается ожидаемый результат. Неправильная работа программы обусловлена логическими ошибками, которые допускаются программистом, как на этапе постановки задачи, так и на этапах разработки алгоритма и кодирования. Основными средствами устранения логических ошибок являются тестирование и трассировка программы.
Тестом называется известный ожидаемый результат работы программы для заданных значений исходных данных. Если при выполнении программы получается результат, совпадающий с ожидаемым, то считается, что тест выполнен. В противном случае следует искать ошибку, послужившую причиной неправильной работы программы.
11
Основным методом поиска ошибок, обнаруживаемых при выполнении тестов, является трассировка программы. Трассировкой называется просмотр текущих значений переменных в процессе выполнения программы. Для выполнения действий по трассировке программы в состав ИСП включен отладчик, позволяющий отслеживать процесс выполнения программы по её тексту и просматривать текущее значение переменных.
Рассмотрим основные возможности отладчика на примере программы, которая должна выполнить обмен значений двух переменных.
Задание 31
Набрать приведенный ниже текст программы, выполнить трансляцию и устранить ошибки, если они возникли при наборе текста.
{Автор: Фамилия И.О. } {Группа: } {Тема: Третья программа} program ThirdProg;
var x,y:integer;
begin
write('Ввод х и y '); readln(x,y);
writeln('До обмена х= ',x,' y=',y); x:=y;
y:=x;
writeln('После обмена х= ',x,' y=',y) end.
Информация
Для поиска и устранения возможных логических ошибок используем следующий
тест:
При вводе начальных значений переменных x и y, соответственно, 1 и 2 в результате работы программы ожидается выдача сообщений:
До обмена х= 1 y=2; После обмена х= 2 y=1.
Задание 32
Выполнить программу. Убедиться, что в результате работы программы выдаются сообщения:
До обмена х= 1 y=2; После обмена х= 2 y=2.
Таким образом, тест дает неверный результат и, следовательно, программа содержит логические ошибки. Для поиска ошибок выполним трассировку программы.
Информация
Для просмотра значений переменных в процессе выполнения программы используется окно просмотра (Watch), которое открывается по команде Debug/Watch. Идентификаторы переменных, значения которых требуется просмотреть, заносятся в окно просмотра по команде Debug/Add watch (Ctrl+F7).
Задание 33
Откройте окно просмотра, выполнив команду Debug/Watch. Занесите в окно просмотра переменные X и Y, для этого:
1)выполните команду Debug/Add watch;
2)в строке ввода диалогового окна введите идентификатор X и нажмите Enter;
3)сделайте активным окно с текстом программы, если оно не активно;
12
4)установите курсор на идентификатор Y в любом месте программы, где он встречается, например, в строке x:=y;
5)нажмите комбинацию клавиш Ctrl+F7;
6)убедитесь, что в строке ввода находится идентификатор “y”, и нажмите Enter;
7)расположите окна каскадом, выполнив команду Window/Cascade.
Информация
Значения переменных, которые демонстрируются в окне просмотра, являются корректными только в процессе выполнения программы. Для просмотра значений переменных выполнение программы приостанавливается с помощью точек прерывания (Breakpoints), указываемых в тексте. Установка точки прерывания в заданной строке выполняется нажатием комбинации клавиш Ctrl+F8. Повторное нажатие этой комбинации клавиш, при положении курсора в строке, содержащей точку прерывания, приводит к снятию точки прерывания.
Задание 34
Установите точку прерывания в строке программы x:=y, для этого следует:
1)поместить текстовый курсор в любое место указанной строки;
2)нажать комбинацию клавиш Ctrl+F8.
Если точка прерывания установлена, то строка выделяется цветом (обычно красным).
Информация
Трассировка программы обычно выполняется в пошаговом режиме (режим, при котором выполняются операторы, находящиеся в одной строке программы). Выполнение одного шага вызывается командой Run/Step over (F8) или для трассировки подпрограмм Run/Trace into (F7). Строка, которая будет выполнена следующей, выделяется цветом.
Задание 35
Выполните трассировку программы. Для этого следует:
1)запустить программу на выполнение;
2)в ответ на запрос " Ввод х и y" набрать значения 1 и 2 и нажать Enter;
3)убедиться, что значения переменных X и Y, показанные в окне просмотра, равны 1 и 2 соответственно;
4)выполнить строку x:=y, нажав F8;
5)убедиться, что значение переменной X изменилось и стало равным 2, а значение 1 потеряно;
6)выполнить строку y:=x, нажав F8;
7)убедиться, что значения переменных X и Y, показанные в окне просмотра, равны 2 и 2 соответственно.
Информация
Для завершения сеанса отладки следует нажать комбинацию клавиш Ctrl+F2. При этом выделение строки, которая будет выполняться следующей, снимается.
Задание 36
Завершить текущий сеанс отладки. Снять точку прерывания, установив курсор в соответствующую строку и нажав комбинацию клавиш Ctrl+F8.
Информация
Анализ результатов трассировки показывает, что обмена значениями переменных X и Y не происходит, потому что при выполнении оператора x:=y стирается введенное значение переменной X, и значения обеих переменных становятся одинаковыми. Для исправления ошибки следует использовать вспомогательную переменную, предназначенную для сохранения старого значения переменной X перед присваиванием ей значения переменной Y.