Програмування циклічних обчислювальних процесів з використанням оператора Do … Loop

Формулювання задачі. Використовуючи оператор Do While … Loop, скласти підпрограму табулювання функції , якщо аргумент функції xнабуває значень з інтервалу , змінюючись кожен раз на величину кроку

 

Нижче наведені форма та програмний код розв’язування даної задачі.

 

Private Sub CommandButton1_Click()

'Завдання. Дано функцію

'y=sin(3*x);

'інтервал зміни аргумента [1; 3];

'крок зміни аргумента h=0.2;

'Необхідно :

'протабулювати задану функцію на заданому інтервалі;

Dim x, y, xp, xk, h As Single

Dim k As Integer

xp = CSng(TextBox1.Text)

xk = CSng(TextBox2.Text)

h = CSng(TextBox3.Text)

x = xp

 

Do While x <= xk + h / 2

y = Sin(3 * x)

TextBox5.Text = TextBox5.Text + "x=" + _

Format(x, "0000.00") + " y=" + Format(y, "0000.00") + vbCr

x = x + h

Loop

End Sub

 

Private Sub CommandButton2_Click()

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

TextBox5.Text = ""

End Sub

 

Private Sub CommandButton3_Click()

End

End Sub

 

Формулювання задачі. Використовуючи оператор Do … Loop While, скласти підпрограму табулювання функції , якщо аргумент функції xнабуває значень з інтервалу , змінюючись кожен раз на величину кроку

Нижче наведено програмний код розв’язування даної задачі.

Private Sub DoLoopWhile()

Dim x, y, xp, xk, h As Single

Dim k As Integer

xp = 1

xk = 3

h = 0.2

x = xp

Do

y = Sin(3 * x)

MsgBox "x=" & Format(x, "00.00") & " y=" & _

Format(y, "000.000")

x = x + h

Loop While x <= xk + h / 2

End Sub

 

Формулювання задачі. Використовуючи оператор Do Until … Loop, скласти підпрограму табулювання функції , якщо аргумент функції xнабуває значень з інтервалу , змінюючись кожен раз на величину кроку

 

Нижче наведено програмний код розв’язування даної задачі.

 

Private Sub DoUntilLoop()

Dim x, y, xp, xk, h As Single

Dim k As Integer

xp = 1

xk = 3

h = 0.2

x = xp

 

 

Do Until x > xk + h / 2

y = Sin(3 * x)

MsgBox "x=" & Format(x, "00.00") & " y=" & _

Format(y, "000.000")

x = x + h

Loop

End Sub

Формулювання задачі. Використовуючи оператор Do Until … Loop, скласти підпрограму табулювання функції , якщо аргумент функції xнабуває значень з інтервалу , змінюючись кожен раз на величину кроку

Нижче наведено програмний код розв’язування даної задачі.

Private Sub DoLoopUntil()

Dim x, y, xp, xk, h As Single

Dim k As Integer

xp = 1

xk = 3

h = 0.2

x = xp

Do

y = Sin(3 * x)

MsgBox "x=" & Format(x, "00.00") & " y=" & _

Format(y, "000.000")

x = x + h

Loop Until x > xk + h / 2

End Sub

 

11.12. Оператор циклу For … Each

 

Оператор циклу For Eachмає такий формат:

 

For Each<елемент> In<набір>

<блок операторів 1>

[Exit For]

<блок операторів 2>

Next[<елемент > ]

 

де <елемент> - змінна типу Variant, що дозволяє розмістити в ній об’єкт VBA;

<набір> - ім’я колекції об’єктів, одного об’єкту VBAабо масиву, за винятком масивів, елементи яких мають тип, сконструйований розробником проекту.

У процесі виконання оператора For Eachоб’єкт вибирається із конкретного набору і розміщується у змінній типу Variant.Це дозволяє використовувати цю змінну в операторах циклу з метою виконання певних дій з об’єктом. Оператор For Eachзручно використовуватитоді, коли масив або діапазон комірок електронної таблиці передаються функції користувача. У цьому випадку змінна <елемент> може бути того ж типу, що і елементи масиву. На кожному кроці змінна <елемент> містить наступний елемент масиву.

 

Контрольні питання

1. Яке ви знаєте функції перетворення типів даних?

2. Дайте характеристику оператора присвоєння. Наведіть приклади.

3. Складіть таблиці істинності результатів для логічного заперечення, додавання та множення.

4. Наведіть чотири формати для умовного оператора If .

5. Дайте характеристику умовного оператора Select Case.

6. Дайте характеристику оператора циклу For … Next.

7. Наведіть чотири формати для оператора циклу Do … Loop.

8. Дайте характеристику оператора For Each.