Теоретичні відомості
Циклом називають групу операторів, що повторюється багаторазово з різними значеннями деякої змінної, яка називається змінною або параметром циклу.
Оператор циклу з лічильником.
Синтаксис:
For параметр = значення1 To значення2 Step h
інструкції тіла циклу
Next
Оператор повторює виконання тіла циклу, змінюючи значення параметру циклу від значення1 до значення2 із кроком h. Якщо крок дорівнює 1, його можна не вказувати.
Задача 23.1. В діапазоні B2: B24 записані числа. Знайти суму і кількість додатнних чисел діапазону.
Використаємо для розв’язку задачі об’єкт Cells – клітинку.
Sub СумаТаКількість()
Dim suma as Single, k as Integer, i as Integer
suma =0: k=0
For i =2 To 24
If Cells(i, 2). Value >0 Then
k = k+1 ‘збільшуємо кількість
suma = suma +Cells(i, 2). Value ‘накопичуємо суму
End if
Next i
MsgBox “Додатних чисел – “ & Str(k) & “, сума – ” & Str(suma)
End Sub
Оператори циклу з умовою.
Такі цикли використовується, якщо невідома заздалегідь кількість повторень. Існують такі різновиди операторів:
Синтаксис:
Do While умова інструкції тіла циклу Loop | Do інструкції тіла циклу Loop While умова |
Оператори з умовою While забезпечують виконання операторів тіла циклу доти, доки умова виконується.
Do Until умова інструкції тіла циклу Loop | Do інструкції тіла циклу Loop Until умова |
Оператори з умовою Until закінчують роботу операторів тіла циклу тоді, коли умова виконається. Тобто цикл повторюється, якщо умова має значення False (хибність).
Достроковий вихід з таких операторів циклу відбувається за допомогою оператору Exit Do.
Об’єкт CheckBox використовують для створення незалежного дво- чи три позиційного прапорця: увімкнено/вимкнено/(недоступний). Для цього об’єкта визначені такі властивості:
Властивість | Опис властивості | Приклади значень |
Value | Стан прапорця | Grayed (недоступний), Unchecked (вимкнений), Checked (увімкнений) |
MousePointer | Вигляд вказівника миші на обєкті | Arrow (стрілка), Cross (хрест) |
Хід роботи
- Виконайте пункти 1-6 попередньої лабораторної роботи.
- Створити шаблон документу, подібний до того, що представлений на рис. 3.1.
Рис. 3.1 – Приклад шаблону
- Щоб викликати вікно властивостей компонентів потрібно натиснути кнопку .
- На кнопку напишіть процедуру:
Private Sub CommandButton1_Click()
x = Sheets(1).Cells(9, 2)
s = 1 'сума
nf = 1 'факторіал
xn = 1 'x в степені
Row = 14
For n = 1 To 16
nf = nf * n
xn = xn * x
s = s + xn / nf
Sheets(1).Cells(Row, 1) = n
Sheets(1).Cells(Row, 2) = s
Row = Row + 1
Next n
'точне значення
ex = Exp(x)
Sheets(1).Cells(11, 2) = ex
End Sub
- Вийдіть з режиму конструктора, натиснувши кнопку та протестуйте роботу програми.
- Розмістіть на листі компонент ScrollBar (рис.3.2.), його властивість Max встановіть рівну 16.
Рис. 3.2 – Приклад шаблону
- На подію Change() напишіть наступну процедуру:
Private Sub ScrollBar1_Change()
x = Sheets(1).Cells(9, 2)
s = 1 'сума
nf = 1 'факторіал
xn = 1 'x в степені
Row = 14
For n = 1 To ScrollBar1.Value
nf = nf * n
xn = xn * x
s = s + xn / nf
Sheets(1).Cells(Row, 1) = n
Sheets(1).Cells(Row, 2) = s
Row = Row + 1
Next n
'точне значення
ex = Exp(x)
Sheets(1).Cells(11, 2) = ex
End Sub
- Вийдіть з режиму конструктора, натиснувши кнопку та протестуйте роботу програми.
- Виконайте подібну задачу згідно Вашого варіанту.
- На Лист2 цієї ж робочої книги створіть шаблон документу, подібний до того, що представлений на рис. 3.3.
Рис. 3.3 – Приклад шаблону
- Властивість Max компоненту ScrollBar (рис.3.3.) встановіть рівну 20.
- На подію Change() напишіть наступну процедуру:
Private Sub ScrollBar1_Change()
TextBox1.Text = ScrollBar1.Value
dx = (ScrollBar1.Value - 1) / 50 ’крок
x = 1
For i = 1 To 51
Sheets(1).Cells(14 + i - 1, 1) = x
If OptionButton1.Value = True Then
y = Sin(Cos(x))
ElseIf OptionButton2.Value = True Then
y = Sin(x)
ElseIf OptionButton3.Value = True Then
y = Cos(x)
ElseIf OptionButton4.Value = True Then
y = 1 / x
Else
MsgBox ("Виберіть функцію")
End If
Sheets(1).Cells(14 + i - 1, 2) = y
x = x + dx
Next i
End Sub
- В даній задачі взято 50 точок розбиття, змініть процедуру так, щоб та ж область розбивалася на 10*В-6 точок.
- Збережіть роботу в свою папку.
№ | Ряд | Функція |
1 – x2 / 2! + x4 / 4! -... + (-1)n x2n /(2n)! | cos(x) | |
x – (1/2) x2 + (1/3)x3 -... + (-1)n+1(1/n) xn | ln(x+1) | |
1+ x ln3 + (x ln3)2/2! +...+(x ln 3)n/n! | 3x | |
sin(x) - sin(2x)/ 2+... +(-1)nsin(nx)/ n | x/2 | |
(x-1)/x + (x-1)2 / 2x2 + (x-1)3/3x3 +...+(x-1)n/nxn | ln(x) | |
x – x3 /3 + x5 /5 +...+ (-1)n x2n-1 /(2n-1) | arctg(x) | |
1 + x2/2! + x4/4! +... + x2n/(2n)! | (ex+e-x)/2 | |
1 - 2x + 3x2 - 4x3 + 5x4 +...+ (-1)n (n+1) xn | 1/(1+x)2 | |
cos(x)+ cos(3x) /3 +...+ cos((2n-1)x)/(2n-1) | 0.5 ln(ctg(x/2)) | |
1 + 2x + 3x2 + 4x3 + 5x4 +...+ (n+1) xn | 1/(1+x)2 | |
x + x3/3! + x5/5! +... + x2n+1/(2n+1)! | (ex-e-x)/2 | |
1 – x2 / 2! + x4 / 4! -... + (-1)n x2n /(2n)! | cos(x) | |
x – (1/2) x2 + (1/3)x3 -... + (-1)n+1(1/n) xn | ln(x+1) | |
1+ x ln3 + (x ln3)2/2! +...+(x ln 3)n/n! | 3x | |
sin(x) - sin(2x)/ 2+... +(-1)nsin(nx)/ n | x/2 | |
(x-1)/x + (x-1)2 / 2x2 + (x-1)3/3x3 +...+(x-1)n/nxn | ln(x) | |
x – x3 /3 + x5 /5 +...+ (-1)n x2n-1 /(2n-1) | arctg(x) | |
1 + x2/2! + x4/4! +... + x2n/(2n)! | (ex+e-x)/2 | |
1 - 2x + 3x2 - 4x3 + 5x4 +...+ (-1)n (n+1) xn | 1/(1+x)2 | |
cos(x)+ cos(3x) /3 +...+ cos((2n-1)x)/(2n-1) | 0.5 ln(ctg(x/2)) | |
1 + 2x + 3x2 + 4x3 + 5x4 +...+ (n+1) xn | 1/(1+x)2 | |
x + x3/3! + x5/5! +... + x2n+1/(2n+1)! | (ex-e-x)/2 | |
1+ x ln3 + (x ln3)2/2! +...+(x ln 3)n/n! | 3x | |
sin(x) - sin(2x)/ 2+... +(-1)nsin(nx)/ n | x/2 | |
(x-1)/x + (x-1)2 / 2x2 + (x-1)3/3x3 +...+(x-1)n/nxn | ln(x) |
Контрольні питання
1. Оператор циклу FOR – NEXT і його робота.
2. Параметр циклу та його використання.
3. Оператори циклу з передумовою і з післяумовою.
4. Що таке вкладені цикли, яка їхня структура?
5. Як здійснюється достроковий вихід з циклу7
6. Алгоритми обчислення суми і кількості.