Порядок действий. 1.Закомментируйте строку программного кода N=N+1(представьте себе, что вы забыли вести в программе подсчет количества введенных чисел)

1.Закомментируйте строку программного кода N=N+1 (представьте себе, что вы забыли вести в программе подсчет количества введенных чисел).

Рис. 14.11

2. Запустите программу на выполнение, введите три числа и щелкните по кнопке < Саnсеl >. Система не выдаст сообщения об ошибке, но результат будет таким, которого вы не ожидали (рис. 14.11).

3. Запустите проект на выполнение не кнопкой < Start >, как вы привыкли это делать, а с помощью команд меню Debug => Step Into или нажав клавишу [ F8] на клавиатуре.

4. Щелкните по кнопке < Начало ввода>.

Вы сразу почувствуете разницу. Проект остановится на самой первой строке процедуры (эта строка будет подсвечена желтым цветом):

Private Sub cmdЦикл_Click()

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

Рис. 14.12

5. Нажимайте на клавишу [ F8 ] до тех пор, пока не будет выделена строка

Р = InputВох("Введите число и щелкните по кнопке <ОК>.

Для завершения ввода щелкните по кнопке <Саnсе1>, "Ввод очередного числа").

6. Еще раз нажмите на клавишу [ F8 ]. В результате появится окно для ввода числа. Введите число 10 и щелкните по кнопке «OK >.

7. Нажмите на клавишу [ F8 ]. Проверьте значение переменной Р (рис. 14.13).

Рис. 14.13

8. Нажимайте на клавишу [ F8 ] до тех пор, пока в цикле не будет выделена строка

Р = InputBox ("Введите число и щелкните по кнопке <ОК>.

Для завершения ввода щелкните по кнопке <Саnсеl>, "Ввод очередного числа").

9. Проверьте значение переменной sum. Оно равно 10. Следовательно, накопление суммы проходит нормально.

10. Еще раз нажмите на клавишу [ F8 ]. В результате появится окно для ввода числа. Щелкните по кнопке < Саnсеl >. Будет подсвечена строка Loop.

11. После следующего нажатия клавиши [ F8 ] будет подсвечена строка Do Until P = "".

12. Проверьте, что Р= "", т.е. цикл должен завершиться.

13. После следующего нажатия клавиши [ F8 ] будет подсвечена строка If N=0. Проверьте, что N=0, т.е. количество чисел не увеличилось. Дальнейший результат после очередного нажатия клавиши [ F8 ] предсказуем: появляется окно с сообщением " Не введено ни одного числа!"

14. После следующего нажатия клавиши [ F8 ] будет подсвечена строка End If, а далее End Sub.

15. Устраните ошибку.

16. В программе может происходить зацикливание.

Замените строку

Do Until P = ""

строкой

Do

(представьте себе, что вы "забыли" ввести условие выполнения цикла). Относительно синтаксиса все нормально.

17.Запустите программу на выполнение, введите число и щелкните по кнопке < Саnсе1 >. В результате появится следующее окно для ввода числа. Снова щелкните по кнопке < Саnсе1 > и т.д. Произошло зацикливание программы.

18.Прервите выполнение программы, нажав комбинацию клавиш [ Ctrl+Break ]. После прерывания будет выделена строка Loop.

19.Если снова применить пошаговое выполнение программы, то можно будет увидеть, что после строки Loop будет подсвечиваться строка N=N+1, т.е. никакое условие продолжения цикла не проверяется: оно просто отсутствует.

Инструментарий отладки. В среде разработки Visual Basic инструменты поиска ошибок объединены в меню Debug (рис. 14.14).

Рис. 14.14

Воспользовавшись командой Toolbars меню View, можно отобразить панель инструментов Debug для доступа к основным средствам отладки (рис. 14.15).

Рис. 14.15

Назначение кнопок панели приведено в табл. 14.1.

Таблица 14.1

Кнопка Название Назначение
Start/Continue Запускает программу или продолжает ее выполнение после прерывания
Break Вызывает прерывание программы в необходимом месте (без использования точек останова)
End Завершает выполнение программы
Toggle Breakpoint Устанавливает/Снимает точку останова на текущей строке кода
Step Into Пошаговая обработка с заходом в процедуры
Step Over Пошаговая обработка без захода в процедуры
Step Out Пошаговая обработка до выхода из процедуры
Locals Window Открывает окно для контроля значений переменных
Immediate Window Открывает окно для ввода и выполнения команд
Watch Window Открывает окно для просмотра выражений, включенных в список наблюдения
Quick Watch Открывает окно для просмотра выражения и значения, которое оно возвращает в данный момент в точке останова программы или на определенном шаге при пошаговом запуске программы
Call Stack Открывает окно для просмотра списка выполнямых поцедур

Как видно из рис. 14.14 и 14.15, некоторые инструменты панели Debug дублируют меню Debug или взаимосвязаны с ним.

Окно Immediate Window. При работе с окном Immediate удобно использовать объект Debug и его метод Print. В процессе выполнения программы с помощью метода Debug. Print выводятся сообщения в окне Immediate. Познакомьтесь с тем, как это происходит.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: