- •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
- •Список литературы
5.9. Оператор безусловного перехода GoTo
Оператор безусловного перехода используется для передачи управления на некоторую заранее заданную строку программы. Рассмотрим синтаксис оператора.
GoTo Метка
GoTo– ключевое слово Visual Basic.Метка– это последовательность символов, заканчивающаяся двоеточием. Метка может начинаться как с буквы, так и с цифры. Она может содержать символы латинского и русского алфавитов, цифры и знак подчеркивания. В метке нельзя использовать скобки, пробелы, знаки пунктуации и арифметических операций. Традиционно рекомендуется составлять метки, пользуясь правилом имен. Метка всегда ставится на отдельной строке перед каким-либо оператором программного кода. Помеченный оператор будет выполняться сразу после оператораGoTo. Такой способ передачи управления называется безусловным переходом, так как он выполняется без проверки каких-либо условий. Передавать управление таким способом можно как вперед, так и назад по тексту программы.
Строго доказано, что программу любой сложности можно написать, не применяя оператора безусловного перехода. Поэтому широкое использование оператора GoToсчитается «дурным тоном», так как они запутывают программу и затрудняют ее чтение.
Рассмотрим пример использования оператора безусловного перехода.
Требуется составить программу для ввода значения переменной n, которое должно находится в диапазоне от 3 до 20. При неправильном значении переменной программа должна выводить сообщение и требовать повторного ввода значения.
Полный текст программы приведен в приложении 8.
В начале программы ставим метку vvod. Она позволит нам повторить ввод значения переменной в случае ошибки.
vvod:
Затем вводим значение переменной n.
n = Val(InputBox("Введите число n от 3 до 20"))
Проверяем введенное значение.
If n < 3 Or n > 20 Then
Если оно меньше 3 или больше 20, то выводим сообщение об ошибке.
MsgBox("Неправильное значение")
И передаем управление на оператор с меткой Vvod, чтобы обеспечить повторный ввод значения переменой и его проверку.
GoTo Vvod
End If
5.10. Пример. Решение линейного уравнения
Рассмотрим программу решения уравнения вида . Значения параметров a,bиcзадаются пользователем с клавиатуры и могут быть любыми.
Для начала проанализируем, какие возможны сочетания значений параметров, и каким при этом будет решение уравнения.
Если коэффициент aнеравен нулю, то решение уравнения можно найти по формуле.
Если коэффициент a равен нулю, то нужно получается выражение вида. Если значения параметровbиcсовпадают, то это выражение будет верным при любомx. Если значения параметровbиcразличны, то выражение не имеет смысла.
Теперь можно перейти к разработке интерфейса программы. Так как значения коэффициентов мы будем вводить с помощью функции InputBox, а вывода результатов будем использовать функциюMsgBox, то на форме располагается только кнопка «Старт», запускающая нашу программу.
Следующий шаг – реализация алгоритма. Первым шагом является описание переменных. Так как значения коэффициентов могут быт любыми, то переменные a,b,cдолжны иметь типSingle. Значение переменнойxопределяется в результате деления, поэтому она тоже должна иметь типSingle.
Dim a, b, c, x As Single
С помощью функции InputBox вводим значения коэффициентов уравнения. Так как коэффициенты являются числами, то при их вводе необходимо использовать преобразование Val.
a = Val(InputBox("Введите коэффициент а"))
b = Val(InputBox("Введите коэффициент b"))
c = Val(InputBox("Введите коэффициент c"))
Анализируем значение коэффициентаa.
If a = 0 Then
Если оно равно нулю, то проверяем равенство двух других коэффициентов и выводим соответствующее сообщение.
If b = c Then
MsgBox("Решение - любое число")
Else
MsgBox("Нет корней")
End If
Else
Если коэффициент a неравен нулю, то вычисляем корень уравнения и выводим его. Так как корень уравнения является числом, то для его вывода необходимо использовать преобразование Str.
x = (c - b) / a
MsgBox("x=" + Str(x))
End If
Программа закончена. Теперь ее необходимо сохранить и запустить. Текст программы приведен в приложении 9.