Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA Л19 Л20.docx
Скачиваний:
5
Добавлен:
02.12.2018
Размер:
254.92 Кб
Скачать

Циклы с условием на языке 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]