- •7. Одномерные массивы 114
- •8. Обработка двумерных массивов (матриц) 162
- •9. Обработка строк 183
- •10. Тип данных, определенный пользователем. Структуры 214
- •11. Использование подпрограмм 228
- •Приложение 52 310 Список литературы 313 Введение
- •1. Этапы создания Windows-приложения
- •2. Среда Visual Basic 2005
- •2.1. Структура среды Visual Basic 2005
- •2.2. Создание нового проекта
- •2.3. Сохранение проекта
- •2.4. Выполнение приложения
- •2.5. Основные команды среды Visual Basic 2005
- •2.6. Методы тестирования
- •2.7. Отладка приложений в среде vb
- •3. Разработка интерфейса в среде vb. Основные элементы управления
- •3.1. Метка
- •3.2. Текстовое поле
- •3.3. Кнопка
- •3.4. Окно списка
- •3.5. Выравнивание положения элементов управления
- •4. Программа линейной структуры
- •4.1. Понятие переменной
- •4.2. Типы данных
- •4.3. Объявление переменных
- •4.4. Оператор присваивания
- •Оператор присваивания работает справа налево.
- •4.5. Константы
- •4.6. Арифметические операции
- •4.7. Математические функции
- •4.8. Арифметическое выражение
- •4.9. Окно ввода (InputBox)
- •4.10. Окно вывода сообщения (MsgBox)
- •4.11. Пример. Вычисление площади треугольника
- •4.12. Пример. Нахождение цифр числа
- •5. Организация ветвлений
- •5.1. Логические константы и переменные
- •5.2. Операции сравнения
- •5.3. Логические операции
- •5.4. Логическое выражение
- •5.5. Условный оператор
- •5.6. Функция iIf
- •5.7. Оператор множественного ветвления ElseIf
- •5.8. Оператор выбора Select Case
- •5.9. Оператор безусловного перехода GoTo
- •5.10. Пример. Решение линейного уравнения
- •5.11. Пример. Программа-калькулятор
- •6. Программирование повторений
- •6.1. Цикл со счетчиком
- •6.1.1. Табуляция функции
- •6.1.2. Вычисление факториала
- •6.1.3. Обработка совокупности чисел с известным числом элементов
- •6.2. Цикл с условием
- •6.2.1. Ввод с проверкой
- •6.2.2. Обработка совокупности чисел с неизвестным числом элементов
- •6.2.3. Вычисление суммы ряда по общей формуле
- •Вычисление суммы ряда с использованием рекуррентного соотношения
- •6.2.5. Вычисление произведения ряда
- •Решение нелинейных уравнений методом простой итерации
- •7. Одномерные массивы
- •Массивы всегда обрабатываются в цикле.
- •7.1. Ввод массива
- •Вывод массива в окно списка и в текстовое поле
- •7.3. Вычисление суммы и произведения элементов массива
- •7.4. Определение количества элементов массива, удовлетворяющих некоторому условию
- •7.5. Вычисление среднего арифметического и среднего геометрического элементов массива, удовлетворяющих некоторому условию
- •7.6. Нахождение максимального элемента массива
- •7.7. Нахождение минимального элемента массива, удовлетворяющего некоторому условию
- •7.8. Поиск первого элемента массива, удовлетворяющего некоторому условию
- •7.9. Поиск последнего элемента массива, удовлетворяющего некоторому условию
- •7.10. Замена одного элемента массива
- •7.11. Замена всех элементов массива, удовлетворяющих некоторому условию
- •7.12. Перестановка местами двух элементов массива
- •7.13. Формирование нового массива из некоторых элементов исходного массива
- •7.14. Проверка совпадения всех элементов массива
- •7.15. Проверка упорядоченности всех элементов массива
- •7.16. Сортировка массива методом пузырька
- •7.17. Линейная сортировка массива (методом поиска минимума)
- •Никогда нельзя использовать одновременно оба способа перестановки элементов массива.
- •8. Обработка двумерных массивов (матриц)
- •8.1. Ввод прямоугольной матрицы
- •8.2. Вывод прямоугольной матрицы в окно списка и в текстовое поле
- •8.3. Поиск максимального элемента матрицы
- •8.4. Обработка матрицы по строкам
- •8.5. Обработка матрицы по столбцам
- •8.6. Обработка квадратных матриц
- •Для обработки элементов, стоящих на любой диагонали, достаточно одного цикла. Для обработки элементов, принадлежащих к одному из треугольников, необходимо использовать вложенные циклы.
- •9. Обработка строк
- •9.1. Основные функции обработки строк
- •9.2. Посимвольная обработка строки
- •9.3. Формирование массива слов строки
- •9.4. Формирование строки из массива слов
- •9.5. Слова-палиндромы
- •9.6. Выделение чисел из строки
- •9.7. Сравнение строк
- •9.8. Обработка многострочного текста
- •10. Тип данных, определенный пользователем. Структуры
- •10.1. Описание структуры. Область видимости. Понятие метода
- •10.2. Оператор With
- •10.3. Ввод массива структур
- •10.4. Вывод массива структур
- •10.5. Поиск в массиве структур
- •10.6. Формирование нового массива из некоторых элементов исходного массива
- •10.7. Сортировка массива структур
- •11. Использование подпрограмм
- •11.1. Определение процедуры и функции. Описание процедуры и функции
- •11.2. Передача параметров по ссылке и по значению
- •11.3. Формальные параметры и фактические переменные
- •11.4. Локальные и глобальные переменные
- •11.5. Static-переменные
- •Приложение 1
- •Приложение 2
- •Приложение 3
- •Приложение 4
- •Приложение 5
- •Приложение 6
- •Приложение 7
- •Приложение 8
- •Приложение 9
- •Приложение 10
- •Приложение 11
- •Приложение 12
- •Приложение 13
- •Приложение 14
- •Приложение 15
- •Приложение 16
- •Приложение 17
- •Приложение 18
- •Приложение 19
- •Приложение 20
- •Приложение 21
- •Приложение 22
- •Приложение 23
- •Приложение 24
- •Приложение 25
- •Приложение 26
- •Приложение 27
- •Приложение 28
- •Приложение 29
- •Приложение 30
- •Приложение 31
- •Приложение 32
- •Приложение 33
- •Приложение 34
- •Приложение 35
- •Приложение 36
- •Приложение 37
- •Приложение 38
- •Приложение 39
- •Приложение 40
- •Приложение 41
- •Приложение 42
- •Приложение 43
- •Приложение 44
- •Приложение 45
- •Приложение 46
- •Приложение 47
- •Приложение 48
- •Приложение 49
- •Приложение 50
- •Приложение 51
- •Приложение 52
- •Список литературы
2.7. Отладка приложений в среде vb
Отладка программы – это процесс обнаружения содержащихся в ней ошибок, установления их причин и последующего исправления.
Как правило, ошибки выявляются в ходе тестирования программы, но в процессе отладки программы часто необходимо разрабатывать дополнительные тесты, направленные на локализацию обнаруженных ошибок. В результате корректировки программы может быть изменена как ее структура, так и взаимосвязь между входными и выходными параметрами. Поэтому после исправления найденных ошибок должны быть подготовлены новые тесты и проведено дополнительное тестирование, так как в ходе исправления ошибок могли быть внесены новые ошибки. Этот процесс повторного тестирования исправленной программы называется регрессионным тестированием.
Ошибки, содержащиеся в программе, можно разделить на две основные группы: синтаксические и семантические.
Синтаксические ошибки заключаются в неправильном использовании операторов и конструкций языка программирования. Как правило, такие ошибки обнаруживаются первыми. Среда Visual Basic 2005 автоматически подчеркивает в программе места, содержащие синтаксические ошибки.
Семантические ошибки – это ошибки в смысловой части обработки данных, часто их называют логическими ошибками. Семантические ошибки нельзя обнаружить в автоматизированном режиме. Для их обнаружения применяют специальные методы и инструменты, входящие в состав среды Visual Basic 2005. К семантическим ошибкам относятся: обращение к несуществующему элементу массива, выполнение недопустимых математических операций (например, извлечение квадратного корня из отрицательного числа), выход за границы допустимых значений для переменных (например, попытка записать в переменную типа Byte число 1000) и многие другие. Семантические ошибки приводят к тому, что синтаксически правильная программа дает неправильные результаты или происходит аварийное завершение программы.
Локализация или поиск семантической ошибки выполняется в несколько этапов.
Определение сущности ошибки
Выявление фрагмента программы, содержащего ошибку.
Определение конкретного места ошибки.
Для выявления сущности ошибки текст программы может и не пригодиться, но необходимы хорошее знание алгоритма, наличие тестовых данных и результатов выполнения программы на этих тестовых данных. Если установить сущность ошибки не удалось, то процесс ее локализации сводится к необходимости обнаружения фрагмента программы, содержащего ошибку. Затем найденный фрагмент выполняется в пошаговом режиме до обнаружения точного месторасположения семантической ошибки.
Среда Visual Basic 2005 предлагает программисту ряд инструментов, существенно облегающий процесс поиска семантических ошибок:
точки останова;
два способа пошагового выполнения программы;
окна наблюдения за значениями переменных.
Точки останова (Breakpoints) следует располагать в тех местах программы, где необходимо временно приостановить выполнение приложения и проанализировать значения переменных с целью обнаружения ошибки. По умолчанию Visual Basic 2005 выполняет программу непрерывно. Дойдя до точки останова, выполнение останавливается, и на экран выводится окно редактора кода. В этот момент для того чтобы узнать значение любой переменной, достаточно навести на нее курсор мыши, тогда во всплывающем окне появится ее значение.
Чтобы установить или убрать точку останова, надо щелкнуть левой кнопкой мыши по серому полю рядом с нужной строкой программы, или, установив курсор в нужную строку, нажать клавишу F9. Выбранная строка станет красной, а в левой колонке появится красная точка – знак точки останова. Точки останова можно размещать только в тех строках, где есть операторы.
После останова можно продолжить выполнение программы. Если выбрать из пункта меню DebugкомандуContinueили нажать клавишуF5, то выполнение программы будет продолжено до следующей точки останова или до конца программы, если точки останова больше не встречаются.
Для пошагового выполнения программы (трассировки) надо из пункта меню Debugвыбрать командуStep Intoили нажать клавишуF11. Visual Basic 2005 выполнит текущую строку и остановится. Активная строка выделяется желтым цветом. Рядом с ней находится желтая стрелка. В этом режиме трассируются все подпрограммы. Если пошаговое выполнение какой-либо подпрограммы нужно пропустить, то следует из пункта менюDebugвыбрать командуStep Overили нажать сочетание клавишF10. В этом случае подпрограмма будет выполнена без пошаговой демонстрации. В любой момент времени трассировку можно прервать, выбрав командыContinueилиStop Debuggingиз менюDebug. КомандаContinueпродолжает выполнение программы. КомандаStop Debuggingзавершает работу программы.
Значение любой переменной можно узнать, наведя на нее курсор мыши. В тех случаях, когда одновременно надо контролировать значения нескольких переменных используются окна наблюдения Watch. Среда Visual Basic 2005 позволяет одновременно использовать четыре разных окна наблюдения для слежения за разными группами переменных. Для того чтобы вызвать эти окно надо из пункта менюDebugвыбрать подменюWindows, а в нем – подменюWatch (обратите внимание, что этот пункт меню доступен только в процессе выполнения программы), а там нужное окно отWatch 1доWatch 4. В нижней части главного окна появится окно наблюдения (рис. 14). Оно состоит из трех колонок. В первой (Name) отображаются имена переменных, во второй (Value) – их значения, а в третьей (Type) – тип данных, к которому принадлежит эта переменная. Для того чтобы добавить переменную, достаточно просто набрать ее имя и нажать клавишуEnter. Если какую-то переменную надо удалить из списка наблюдения, то надо выделить в таблице соответствующую строку и нажать клавишуDelete. Когда в процессе выполнения программы некоторая переменная из списка меняет свое значение, оно выводится красным цветом. На следующем шаге оно снова восстанавливает обычный черный цвет. Таким образом можно легко следить за изменением значений переменных, что позволяет существенно повысить эффективность отладки программы.
Рис. 14.Окно наблюдения за значениями переменных