Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Вывод отладочных сообщений. Пошаговое выполнение
И инструменты отладки
Подпрограмма может быть запущена на исполнение также с использованием окна непосредственного исполнения. Этот инструмент интегрированной среды предназначен для вывода отладочных сообщений (debug message) во время исполнения программы, а также позволяет вводить и исполнять простые операторы (присваивания и вызова подпрограмм). Окно непосредственного исполнения вызывается с помощью команды View | Immediate Window. Для запуска подпрограммы необходимо указать идентификатор подпрограммы и нажать на клавишу ENTER (рис. 7).
Рис. 7. Использование окна Immediate Window для запуска подпрограмм
Следует отметить, что подпрограммы в окне непосредственного исполнения могут быть запущены только из простого модуля или модуля объекта текущего документа (например, из модуля ThisDocument). В последнем случае должен быть задан полный идентификатор подпрограммы, то есть с указанием имени модуля. Окно непосредственного исполнения имеет огромное значение для тестирования и отладки проекта в среде VBA, поскольку, как уже упоминалось, позволяет выводить служебные отладочные сообщения (то есть фактически не имеющие отношения к пользователю программы) в ходе работы программы. Рассмотрим простой пример, в котором показан вывод сообщений в окно непосредственного вывода:
Public Sub UsingImmediateWindow() Dim i As Integer, s As Integer For i = 0 To 10 ' перебираем в цикле переменную i s = s + I ' находим сумму i ' выводим в Immediate Window значение i и s Debug.Print "i ="; i, "s ="; s Next End Sub Окно непосредственного исполнения позволяет программисту выводить промежуточные результаты работы программы, а также реализовать простейшие средства контроля за потоком ее исполнения. Для вывода сообщения в это окно в тексте подпрограммы должен быть указан вызов метода Print объекта Debug, который определен в ядре VBA. В качестве параметров метода Print могут быть указаны литералы, переменные и свойства объектов, разделенные символами «,» или «;». Назначение разделителей в этом методе совпадает с их назначением в операторе Print классического BASIC. Подпрограмма VBA-проекта может быть исполнена в пошаговом режиме (stepping). В этом случае после исполнения очередного оператора процесс останавливается до тех пор, пока не будет активизирована команда на исполнение следующей строки программы. Запуск текущей подпрограммы в пошаговом режиме осуществляется с помощью команды Debug | Step Into. Текущая исполняемая инструкция выделяется цветом (по умолчанию желтым), а на левой границе окна редактора кода (полоса индикаторов) отображается индикатор пошагового исполнения (рис. 8).Для продолжения исполнения подпрограммы в пошаговом режиме должна быть повторно активизирована команда Step Into (с заходом в подпрограммы, вызываемые из текущей подпрограммы) или Step Over (с обходом внутренних подпрограмм). В ходе пошаговой отладки можно наблюдать за изменениями содержимого переменных, указывая на них курсором (рис. 9). Такое пошаговое исполнение, в ходе которого разработчик наблюдает за изменениями переменных и свойств объектов программы для получения сведений о ее оптимизации или устранения ошибок в ней, принято называть отладкой (debugging). Отладка кода позволяет, детально проследив за ходом исполнения кода, обнаруживать логические ошибки в программе, то есть ошибки, не связанные с неверным синтаксисом, а обусловленные неверно построенным алгоритмом.
Рис. 8. Пошаговое исполнение кода программы
Основными инструментами отладки являются Окно наблюдения (Watch Window) и Окно локальных переменных (Locals Window). Окно наблюдения, которое может быть активизировано командой View | Watch Window, позволяет разработчику добавить к списку переменные для наблюдения за их изменениями в ходе пошагового исполнения (рис. 9).
Рис. 9. Наблюдение за переменными в окне Watch Window
Аналогичные функции имеет окно локальных переменных (View | Locals Window), однако в нем автоматически отображаются только локальные внутренние переменные текущей исполняемой подпрограммы. Еще одним важнейшим средством отладки программ являются точки останова (breakpoints). Точка останова – это способ указания интегрированному отладчику на необходимость перехода исполнения программы к пошаговому режиму в заданной строке программы. Для установки точки останова необходимо указать курсором в редакторе кода на нужную строку программы и выбрать команду Debug | Toggle Breakpoint или указать одинарным щелчком на позицию в области полосы индикаторов. Наличие ассоциированной точки останова отображается в полосе индикаторов закрашенным кружком (по умолчанию темно-красного цвета) (рис. 10).
Рис. 10. Определение точки останова Рассмотрим в качестве примера работы с точками останова простейшую программу, в которой в цикле генерируется 100 случайных чисел и определяется, сколько их них кратны числу 7.
Public Sub BreakpointTest() Dim i As Integer, r As Integer, s As Integer ' инициализация генератора псевдослучайных чисел Randomize ' формируем 100 чисел For i = 0 To 100 r = CInt(Rnd * 100 + 1) ' и посчитаем сколько из них без остатка делятся на 7 If r Mod 7 = 0 Then s = s + 1 End If Next End Sub Определим точку останова в строке подпрограммы, как это показано на рис. 1.9. Откроем окно наблюдения и добавим для просмотра переменные i, r и s, используя для этого команду Debug | Add Watch и введя в открывшемся диалоговом окне Add Watch идентификатор переменной (рис. 11).
Рис. 11. Диалоговое окно добавления переменных и выражений в окно наблюдения
Запустив программу на исполнение, можно наблюдать переход в пошаговый режим, когда новое значение переменной r станет впервые кратным 7. При переходе к режиму пошагового исполнения в окне наблюдения можно будет просмотреть актуальное содержимое указанных переменных. Для возобновления нормального режима исполнения программы необходимо повторно выбрать команду Run | Run Sub/UserForm. Далее исполнение будет прерываться в точке останова всякий раз, когда значение r вновь станет кратным 7. Точка останова необязательно должна быть ассоциирована с конкретной строкой программы. Создать такую неявную точку останова можно, если переменной, указанной в списке окна наблюдения, назначить опцию Break When Value Changes (прерывать при изменении значения) в диалоговом окне Add Watch (рис. 11). Это можно сделать как для вновь добавляемой переменной, так и для ранее указанной в списке с помощью команды Debug | Edit Watch. Активизация такой точки останова происходит всякий в ходе работы программы когда изменяется значение ассоциированной переменной. Получив начальные представления об инструментах разработки программ продолжим дальнейшее изучение синтаксиса, семантики, информационной и операционной модели языков программирования на примере ранее упоминавшегося языка Visual Basic. |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 379. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |