Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методика по Информатике / VBA / Усольцева Л.А.- Программир.на VBA.doc
Скачиваний:
110
Добавлен:
10.04.2015
Размер:
1.71 Mб
Скачать

2.5.2. Оператор цикла While – Wend

Оператор цикла While – Wend используется для организации цикла с неизвестным заранее числом повторений тела цикла. Общий вид цикла While – Wend выглядит следующим образом:

While Условие

Блок операторов

Wend

Цикл While – Wend обеспечивает многократное выполнение блока операторов, пока условие принимает значение True (истина).

Пример 11.

Вывести результат табулирования функции Y при X, изменяющемся от –10 до 10 с шагом 2, если

.

Программный код

Option Explicit

Sub PR11 ( )

Dim X As Integer

Dim Y As Double

X = –10 ‘ начальное значение аргумента

While X <= 10 ‘цикл выполняется до конечного значения х

If X <> 2 Then

Y = 1 / (X – 2) + X

MsgBox ("Y=" & Y & “ при x =” & x)

Else

MsgBox ("функция не определена")

End If

X = X + 2

Wend

End Sub

Пример 12.

Вкладчик положил на счет 1000 рублей. Через сколько дней вклад достигнет 20000 рублей, если начисляемый процент 0,6 % в день.

Ответ: 500 дней.

Программный код

Option Explicit

Sub PR12 ( )

Dim V As Double ‘первоначальный взнос

Dim Pr As Double ‘начисляемый процент

Dim Kol As Integer ‘количество дней

V = Val(InputBox("Введите начальный взнос"))

Kol = 0

While V <= 20000

Pr = V * 0.6 / 100

V = V + Pr

Kol = Kol + 1

Wend

MsgBox ("20000 руб. вклад достигнет за " & Kol & " дней")

End Sub

2.5.3. Оператор цикла Do – Loop

В VBA для организации циклов с неизвестным заранее числом повторений используется оператор цикла Do. Оператор имеет так много опций и является настолько гибким, что, в действительности, он представляет четыре различных конструкции цикла в двух базовых категориях: циклы, которые тестируют условие детерминанта до выполнения тела цикла, и циклы, которые тестируют условие детерминанта после выполнения тела цикла.

Do While Условие

Блок операторов

Loop

Do Until Условие

Блок операторов

Loop

Do

Блок операторов

Loop While Условие

4.

Do

Блок операторов

Loop Until Условие

Оператор Do WhileLoop обеспечивает многократное выполнение блока операторов до тех пор, пока условие истинно, а оператор Do UntilLoop – пока условие ложно.

Операторы DoLoop While и DoLoop Until отличаются от первых двух операторов тем, что сначала выполняется блок операторов, а затем проверяется условие. Таким образом, в этих циклах блок операторов, составляющих тело цикла, выполнится, по крайней мере, один раз.

Примером использования цикла DoLoop Until может служить программа нахождения корня уравнения f(x) = 0 методом деления отрезка пополам.

Пример 13.

Вычислим корень уравнения x2 = 2 с точностью до e = 0,00001. За отрезок начальной локализации корня берется отрезок [0; 2].

Ответ: х = 1,414207.

Программный код

Option Explicit

Sub PR13 ( )

Dim c, f As Double

Dim fa As Double, fb As Double, fc As Double

Dim a, b As Double, eps As Double, bh As Double

a = 0: b = 2: eps = 0.00001

fa = a ^ 2 - 2

fb = b ^ 2 - 2

If fa * fb >= 0 Then

MsgBox ("Функция не меняет знак на концах отрезка")

Exit Sub ‘ выход из процедуры

End If

Do

c = (a + b) / 2

fc = c ^ 2 - 2

fa = a ^ 2 - 2

f = fc * fa

If f < 0 Then b = c Else a = c

Loop Until b - a < eps

bh = c

MsgBox ("значение корня=" & bh)

End Sub