- •1. Простейшие конструкции языка Visual Basic
- •2. Функции языка Visual Basic
- •Функции преобразования типов данных
- •Функции даты и времени
- •3. Основные типы алгоритмических структур
- •If Условие Then
- •If Условие Then Действие 1 _
- •Цикл со счетчиком на языке vba.
- •Цикл со счетчиком на языке Visual Basic.
- •Циклы с условием на языке Visual Basic.
- •3.2 Работа с массивами Заполнение массива
- •Поиск в массивах
Циклы с условием на языке Visual Basic.
Пример. Подсчитать количество букв «а» в заданном тексте.
Введенный пользователем с помощью функции InputBox текст анализируется в цикле с предусловием. Условие I < Len(strA) выполняется, пока значение переменной I меньше или равно количеству символов во введенном тексте.
В цикле с помощью функции Mid последовательно «вырезаются» поодиночке символы текста и сравниваются с буквой «а». В случае совпадения к значению переменной N, где хранится количество подсчитанных символов, прибавляется единица. Значение этой переменной распечатывается.
Dim strA, strB As String, I, N As Byte
Sub Command1_Click()
strA = InputBox ("Введите текст", "Ввод текста")
Do While I < Len(strA)
I = I + 1
strB = Mid(strA, I, 1)
If strB = "a" Then N = N + 1
Loop
Form1.Print "Количество букв а в тексте равно "; N
End Sub
Условие выхода из цикла можно поставить в конце, после тела цикла. Такой цикл называется циклом с послеусловием. Такой цикл реализуется также с помощью инструкции Do ... Loop.
Do
тело цикла
Loop While Условие
Do
тело цикла
Loop Until Условие
Рис. 23. Цикл с послеусловием
Проверка условия выхода из цикла проводится с помощью ключевых слов While или Until. Цикл с предусловием никогда не выполняется в случае невыполнения условия. Цикл с послеусловием выполняется обязательно как минимум один раз, независимо от того, выполняется условие или нет.
Пример. Создать программу для преобразования слов в обратном порядке.
Для «перевертывания» слов в цикле с послеусловием последовательно «вырезаются» все буквы исходного слова и приписываются слева к изначально «пустой» строковой переменной srtD. Процесс «перевертывания» слова распечатывается.
Dim strA, strB, strD As String, I As Byte
Sub Command1_Click()
strA = InputBox("Введите слово", "Ввод слова")
Do
I = I + 1
strB = Mid(strA, I, 1)
strD = strB + strD
Form1.Print strD
Loop While I < Len(strA)
End Sub
3.2 Работа с массивами Заполнение массива
После объявления массива для его хранения отводится определенное место в памяти. Однако для начала работы с массивом необходимо его предварительно заполнить, т.е. присвоить элементам массива определенные значения. Заполнение массива можно производить различными способами.
Заполнение с помощью функции InputBox. Первый способ состоит в том, что значения элементов массива вводятся пользователем с помощью функции InputBox. Например, для заполнения строкового массива strA(I) буквами русского алфавита можно использовать следующую программу:
Dim strA (l To 33) As String, I As Byte
Sub Command1_Click()
For I = 1 To 33
strA(I) = InputBox ("Введите букву", _
"Заполнение массива")
Next I
End Sub
После запуска программы на выполнение и щелчка по кнопке Command1 необходимо вводить на последовательно появляющихся панелях ввода в текстовое поле буквы алфавита.
Заполнение с помощью оператора присваивания. Второй способ заполнения массива состоит в использовании оператора присваивания. Заполним числовой массив bytA(I) целыми случайными числами в интервале от 1 до 100, используя функцию случайных чисел Rnd и функцию выделения целой части числа int в цикле со счетчиком:
Dim bytA (l To 100), I As Byte
Sub Command1_Click()
For I = 1 To 100
bytA(I) = Int (Rnd*100)
Next I
End Sub