Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11 Операт мови VBA та прогр типов обч процес.doc
Скачиваний:
10
Добавлен:
16.02.2016
Размер:
245.76 Кб
Скачать

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

Формулювання задачі. Використовуючи оператор Do WhileLoop, скласти підпрограму табулювання функції , якщо аргумент функції 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

Формулювання задачі. Використовуючи оператор DoLoop 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 UntilLoop, скласти підпрограму табулювання функції , якщо аргумент функції 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 UntilLoop, скласти підпрограму табулювання функції , якщо аргумент функції 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. Оператор циклу ForEach

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

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

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

[Exit For]

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

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

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

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

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

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