Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_VBA_1.doc
Скачиваний:
11
Добавлен:
03.05.2019
Размер:
1.01 Mб
Скачать

Цикл Do While…Loop / Do…Loop While

Циклы типа While предназначены для ситуаций, когда количество проходов заранее неизвестно, но известно условие завершения цикла. В обеих своих разновидностях цикл While работает до тех пор, пока Условие остается истинным. Как только Условие примет значение False, выполнение цикла заканчивается. Вот синтаксис двух разновидностей цикла While:

Do While Условие

Инструкции

Loop

Do

Инструкции

Loop While Условие

Отличие между ними заключается в том, что условие выхода проверяется в одном случае перед очередным проходом, а в другом случае – после прохода. Для досрочного выхода из цикла используется оператор Exit Do.

Цикл Do Until...Loop / Do…Loop Until

Цикл Until подобен циклу While с той лишь разницей, что тело цикла выполняется до тех пор, пока Условие в строке Until ложно. Как только Условие становится истинным, цикл завершается. Проверка условия может осуществляться как до очередного прохода, так и после него. Для досрочного выхода из цикла используется оператор Exit Do.

Do Until Условие

Инструкции

Loop

Do

Инструкции

Loop Until Условие

Практические задания Задание 4.1

С оздайте приведенную форму. Она демонстрирует, как можно организовать в программе ввод нескольких элементов. На форме размещены 2 элемента Надпись, 2 элемента Поле и 3 Кнопки. Введенные элементы помещаются в поле TextBox2. Для ввода используется функция InputBox.

Кнопка FOR предназначена для ввода элементов, когда их количество заранее известно. Оно указывается в поле TextBox1.

Кнопка DO…LOOP позволяет ввести заранее неизвестное количество элементов. В этом случае количество введенных элементов подсчитывается и выводится в поле TextBox1. После ввода каждого элемента пользователя спрашивают, хочет ли он закончить ввод. Для этого используется функция MsgBox.

Private Sub CommandButton1_Click()

TextBox2.Text = ""

For i = 1 To TextBox1.Text

X = InputBox("Введите элемент " & i)

TextBox2.Text = TextBox2.Text & " " & X

Next

End Sub

Private Sub CommandButton2_Click()

TextBox1.Text = ""

TextBox2.Text = ""

i = 0

Do

i = i + 1

TextBox1.Text = i

X = InputBox("Введите элемент " & i)

TextBox2.Text = TextBox2.Text & " " & X

Loop Until MsgBox("Закончить ввод?", vbYesNo + vbQuestion) = vbYes

End Sub

Задание 4.2

Создайте форму, которая приведена ниже. Цель данного задания – научиться программировать основные математические операции над группой чисел. Для каждой операции предусмотрена своя кнопка. Числа, над которыми выполняются операции, генерируются с помощью датчика случайных чисел. Для контроля они выводятся в поле TextBox2. Количество чисел можно задать в поле TextBox1. Результат выводится в поле TextBox3.

Ниже приведены тексты программ для вычисления суммы чисел и нахождения максимального числа. Программы для вычисления произведения и нахождения минимума напишите самостоятельно. Обратите внимание, что первое число при вычислении максимума генерируется не в цикле, так как нам его ещё не с чем сравнивать. Оно просто присваивается вспомогательной переменной Max, с которой потом будут сравниваться все остальные числа. Диапазон чисел задается в момент инициализации формы.

Dim A1 As Integer

Dim A2 As Integer

Private Sub CommandButton1_Click()

'Вычисление суммы

TextBox2.Text = ""

S = 0

For i = 1 To TextBox1.Text

X = Int((A2 - A1 + 1) * Rnd + A1)

TextBox2.Text = TextBox2.Text & " " & X

S = S + X

Next

TextBox3.Text = S

End Sub

Private Sub CommandButton3_Click()

'Вычисление максимума

Max = Int((A2 - A1 + 1) * Rnd + A1)

TextBox2.Text = Max

For i = 2 To TextBox1.Text

X = Int((A2 - A1 + 1) * Rnd + A1)

TextBox2.Text = TextBox2.Text & " " & X

If X > Max Then Max = X

Next

TextBox3.Text = Max

End Sub

Private Sub UserForm_Initialize()

A1 = -10

A2 = 10

Randomize

End Sub

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