Програмування циклічних обчислювальних процесів з використанням оператора For … Next
Формулювання задачі. Скласти підпрограму розв’язування такої задачі. Дано вираз для загального члена та кількість n членів числової послідовності. Обчислити її суму
Нижче наведено програмний код розв’язування даної задачі.
Private Sub Sum()
'Завдання. Дано кількість членів n числової
'послідовності -1/12; 2/26; ... ; (-1)^i (i^2/(3*i^2+5*i+4)
'Обчислити суму n членів числової послідовності.
Dim і, n As Integer
Dim f, s As Single
n = Val(InputBox("Введіть кількість членів n!"))
For i = 1 To n
a = ((-1) ^ i) * ((i ^ 2) / (3 * i ^ 2 + 5 * i + 4))
s = s + a
MsgBox "i=" & Format(i, "00") & " a=" & _
Format(a, "000.000")
Next i
MsgBox "n=" & Format(n, "00") & " s=" & _
Format(s, "000.000")
End Sub
11.10. Оператор циклу Do … Loop
Оператор циклу Do While … Loop має такий формат:
Do While<умова>
<блок операторів 1>
[Exit Do]
<блок операторів 2>
Loop
де <умова> - логічний вираз або логічна константа, яка може приймати одне із двох значень: TrueабоFalse;
<блок операторів 1>, <блок операторів 2> - один або більше допустимих у мові VBAоператорів.
Робота оператора Do While … Loopполягає в наступному. Перед входженням в оператор Do параметру циклу надають певного початкового значення. Від того, яким є значення параметра циклу, повністю залежить і значення елемента <умова>: воно може бути TrueабоFalse.Якщо <умова> прийме значення True, то виконуються оператори тіла циклу, тобто оператори, які входять в <блок операторів 1> та <блок операторів 2>. Останнім із цих операторів має бути оператор, який змінює значення параметру циклу на величину кроку. Далі знову перевіряють істинність умови. Якщо <умова> вдруге прийме значення True,то вдруге виконуються оператори тіла циклу і т.д. Це повторюватиметься доти, поки <умова> не стане хибною. У цьому випадку відбувається вихід із циклу. Зазначимо, що вихід із циклу може відбутися і передчасно, якщо спрацює необов’язковий елемент [Exit Do], наприклад, у випадку ділення на нуль. Даний оператор Do While … Loop кожного разу спочатку перевіряє умову, а тоді виконує оператори тіла циклу. Тому його називають ще оператор циклу з передумовою.
Оператор циклу Do … Loop While має такий формат:
Do
<блок операторів 1>
[Exit Do]
<блок операторів 2>
Loop While<умова>
Робота цього оператора відбувається аналогічно з попереднім за одним винятком. Даний оператор Do … Loop While кожного разу спочатку виконає оператори тіла циклу, а вже тоді перевірить умову. Тому його називають ще оператор циклу з післяумовою.
Оператор циклу Do Until … Loop має такий формат:
Do Until<умова>
<блок операторів 1>
[Exit Do]
<блок операторів 2>
Loop
Робота оператора Do Until … Loopполягає в наступному. Перед входженням в оператор Do параметру циклу надають певного початкового значення. Якщо <умова> прийме значення False, то виконуються оператори тіла циклу, тобто оператори, які входять в <блок операторів 1> та <блок операторів 2>. Останнім із цих операторів має бути оператор, який змінює значення параметру циклу на величину кроку і знову перевіряють істинність умови. Якщо <умова> вдруге прийме значення False,то вдруге виконуються оператори тіла циклу і т.д. Це повторюватиметься доти, поки <умова> не стане істинною. У цьому випадку відбувається вихід із циклу. Зазначимо, що вихід із циклу може відбутися і передчасно, якщо спрацює елемент [Exit Do], наприклад, у випадку ділення на нуль. Даний оператор є оператором циклу з передумовою.
Оператор циклу Do … Loop Until має такий формат:
Do Until
<блок операторів 1>
[Exit Do]
<блок операторів 2>
Loop Until<умова>
Робота цього оператора відбувається аналогічно з попереднім за одним винятком – це . оператор циклу з післяумовою.