Рис 1 12
Рис 1 13
Функция val преобразует текстовую строку в числовое значение Составные имена txtFahr Text и txtCels Text связаны с включением в Visual Basic так. называемых методов для объектов (форм и командных кнопок) Введем также описания переменных tem_Cels и tem_Fahr в раздел общих (general) описании, что делает их доступными для обеих процедур
Форма и программы обработки событий подготовлены Теперь, щелкнув мышью на кнопке Run панели инструментов главного меню, проект можно отправить на выполнение Появляется спроектированная форма, в окнах которой можно вводить информацию (рис 1 15) Кроме ввода и вывода информации, форма соответствует стандарту Windows приложений (реагирует на кнопки минимизации и максимизации, изменяет размеры и др )
Щелчок на кнопке Конец выполнения панели инструментов главного меню завершает выполнение проекта
Отлаженный проект можно сохранить двумя способами • используя команду Save Project или Save Project as... раскрывающегося меню File главного меню;
Рис 1 14
В первом случае выполнить проект можно только после запуска Visual Basic.
Во втором случае программы проекта компилируются и создается ЕХЕ-файл, позволяющий выполнить проект автономно без запуска Visual Basic, даже если на компьютере не установлен Visual Basic.
При выполнении команды Save Project as... появляется окно (рис. 1.16), позволяющее задать директорию для хранения и имя проекта (проект сохраняется в директории C:\VB под именем temper, mak).
При выполнении команды Make EXE File появляется окно (рис. 1.17), позволяющее задать директорию для хранения ЕХЕ-файла и его имя (EXE- файл сохраняется в директории C:\VB под именем temper.exe).
Рис 1 15
При щелчке по кнопке “Options...” появляется специальное окно (рис. 1.18) для задания необходимой информации по готовому приложению (номер версии, информация о компании- разработчике, имя созданного приложения (TEMPER), иконка для формы и др.).
Рис 1 16
Программа на любом языке программирования перед выполнением переводится на машинный язык (набор команд процессора) специальными программами переводчиками. Эти программы принципиально делятся на компиляторы (compilers) и интерпретаторы (interpreters). Первые транслируют всю программу целиком и создают законченный программный модуль на машинном языке Вторые транслируют единовременно только одну строку программы на языке программирования и сразу же
Рис 1 17
Рис 1 18
исполняют полученный фрагмент программы на машинном языке. Далее интерпретатор возвращается к следующей строке программы на языке программирования, транслирует ее и т. д
Visual Basic относится к языкам программирования интерпретирующего типа
1.3. ОТЛАДКА ПРОГРАММ
Любая программа, написанная даже квалифицированным программистом, содержит ошибки, которые выявляются и исправляются в процессе отладки программы Кроме того, при работе с отлаженной программой пользователь может создать ситуацию, которая программой не обрабатывается корректно Рассмотрим процесс отладки программ и способы обработки ошибок при выполнении программы и имеющиеся для этого средства в Visual Basic
1.3.1. Синтаксический контроль
При ошибке в наборе текста программы в окне кода автоматически (при активизации в диалоговом окне Environment Options (Параметры Среды) флажка Display Syntax Errors (Показывать синтаксические ошибки)) инверсной подсветкой выделяется неправильный фрагмент оператора программы На этом этапе Visual Basic отслеживает синтаксические ошибки (неправильно написанные ключевые слова, неверный порядок операндов в операторах, некорректную пунктуацию и т п )
Лишняя точка в операторе уже приведенной выше процедуры автоматически показывается с разъяснением ошибки в окне
Рис 1 19 Вызов диалогового окна Environment Options (Параметры Среды) производится из пункта Tools Главного меню. Окно показано на рис. 1.20 и позволяет, кроме указания на выдачу синтаксических ошибок, определить выводимые окна среды (Toolbox, Properties, Project, Debag), задать обязательность объявления переменных (Require Variable Declaration), показа сетки формы (Show Grid) и ее шаг (Width, Height), выравнивания элементов управления относительно сетки (Align Controls to Grid), автоматического сохранения текущих версий файлов форм и проекта перед каждым запуском программы (Save Before Run).
1.3.2. Контроль корректности алгоритма
Для дальнейшей отладки синтаксически правильной программы существуют специальные средства, позволяющие контролировать значения переменных на различных этапах выполнения программы. Окно Debug является основным средством для поиска ошибок (рис. 1.21). В верхнем поле окна выводятся вид выражения (колонка Expression), значение выражения (колонка Value), местонахождение выражения (колонка Context). Кнопки Immediate и Watch обеспечивают переключение на просмотр соответственно непосредственно вводимого в этом поле выражения (прямой ввод выражения) или уже заданного. В нижнем поле отображается текст программы.
Вид выражения задается в окне Add Watch (вызывается из пункта Tool Главного меню) (рис. 1.22). Раскрывающиеся списки модулей (Module) и процедур (Procedure) позволяют задать местоположение выражения в программе. Выражение может быть набрано вручную в текстовом окне. Кроме того, если в тексте программы перед вызовом окна выделен какой-либо оператор или его часть, то оно автоматически появляется в окне (см. рис. 1.22).
Кнопки в области Watch Type определяют условия вывода выражения (Watch Expression - наблюдение за значением в точках прерывания; Break When Value Is True - прерывание выполнения программы, когда значение выражения равно заданному; Break When Value Changes - прерывание выполнения программы, когда значение выражения меняется).
Рис. 1.22 Для вывода в окно Debug нужно также установить точки прерывания (моменты, когда программа прекращает работу и выдает требуемую информацию в окно Debug). Обычно такими точками являются места программы, проверяемые на корректность работы.
Для установки точки прерывания нужно:
Установленная точка прерывания выделится подсветкой (рис. 1.23).
После запуска программы значение проверяемого выражения выводится в окне Debug (рис. 1.24.). Оператор прерывания выделяется рамкой, в окне указывается место прерывания (проект, форма, процедура обработки события).
Удалить точку прерывания можно щелкнув мышью по пункту Clear Toggle Breakpoint (Убрать точку прерывания) раскрывающегося меню Run (Старт) Главного меню.
При отладке программ целесообразно комбинировать постановку точек прерывания и точек наблюдения (их установка задается кнопками Break When Value Is True (Прерывание выполнения программы, когда значение выражения равно заданному) и Break When Value Changes (Прерывание выполнения программы, когда значение выражения меняется) окна Add Watch). Точки наблюдения замедляют выполнение программы. Лучше установить точку прерывания в подозрительном месте программы и выполнять программу с нормальной скоростью до этой точки. Далее поставить одну или несколько точек наблюдения и продолжать более медленный поиск ошибок в локализованной области программы.
Если нет необходимости прослеживать изменение значения какой-либо переменной в процессе выполнения программы, то для вывода текущего значения вместо использования окна Add Watch можно использовать пункт меню Instant Watch (Быстрый просмотр) раскрывающегося меню Tool Главного меню. Перед этим, после прерывания выполнения программы, необходимо выделить переменную в окне кода. В окне Instant Watch (рис. 1.25.) выводится имя переменной, текущее значение и имя процедуры, в которой используется переменная.
Щелчком мыши по кнопке Add переменную можно добавить в список окна Debug Windows.
Кнопка Immediate окна Debug (рис. 1.26) позволяет вывести переменную на форму или изменить ее значение с помощью оператора присваивания (эти изменения не отражаются на содержании программы). Это окно можно также использовать для ввода команд, изменяющих свойства элементов управления (шрифты, цвет фона и др.). Измененные значения выводятся в окне Debug (рис. 1.27).
Если проект включает много процедур, то полезным средством отладки является трассировка вызова процедур (пункт меню Call... раскрывающегося меню Tool Главного меню или одноименная кнопка панели инструментов). Окно (рис. 1.28.) показывает всю последовательность вызовов от исходной процедуры до текущей (в верхней части расположена последняя вызванная процедура, в нижней - первая). Список позволяет определить, как произошел переход в текущую точку программы.