Програмування циклічних обчислювальних процесів з використанням оператора 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<умова>

Робота цього оператора відбувається аналогічно з попереднім за одним винятком – це . оператор циклу з післяумовою.