Теоретичний матеріал. Цикли
Для багаторазового виконання одного чи декількох операторів призначені цикли. Visual Basic пропонує двох конструкцій: цикл For... Next, який використовується для виконання визначеної кількості ітерацій, та цикл Do... Loop, що завершується при виконанні заданої умови.
Цикл For.. .Next є найстарішою і найпростішою конструкцією:
For Лічильник = Початкове значення То Кінцеве значення Крок
Оператори
Next Лічильник
На початку виконання циклу значення Лічильник встановлюється рівним Початковому значенню. При кожній ітерації змінна Лічильник збільшується на 1 чи на величину Крок. Якщо вона досягає або стає більше (менше, при від’ємному кроці) Кінцевого значення, то цикл завершується і виконуються наступні оператори. Різниця між початковим і кінцевим значенням, ділена на величину кроку, складає число ітерацій.
Приклад: Роздрукуємо всі числа від 1 до 10.
Private Sub Command1_Click()
For i = 1 To 10
Print i
Next i
End Sub
Для безумовного виходу з циклу використовується оператор Exit For.
Оператор Do...Loop
Якщо кількість ітерацій повинна залежати від умови, використовують цикл Do... Loop. У залежності від позиції умови розрізняють два варіанти циклу Do.. .Loop.
Цикл, з умовою на початку
Dо {While | Until} Умова
Оператори
Loop
Цикл, з умовою наприкінці
Do
Оператори
Loop {While | Until} Умова
Якщо умова перевіряється на початку циклу, то він ніколи не виконується у випадку невиконання умови. Якщо ж перевірка відбувається наприкінці, цикл виконується як мінімум один раз, незалежно від того, виконана умова чи ні. Розглянуті варіанти циклів Do... Loop надають програмісту великі можливості організації повторюваних обчислень.
Оператор While...Wend
У циклі While... Wend послідовність команд виконується доти доки залишається істиною назначена умова.
While Умова
Оператори
Wend
Принцип дії такий, як і циклу Do While.. Loop. Тому замість нього простіше використовувати Do... Loop. Крім того, для циклу While.. .Wend немає оператора дострокового виходу типу Exit.
Private Sub Command1_Click()
While x = True
Print Time
Wend
End Sub
Приклад: Роздрукувати всі тризначні числа сума яких дорівнює 20.
Private Sub Command1_Click()
For i = 1 To 9
For j = 1 To 9
For k = 1 To 9
s = i + j + k
If s = 20 Then Print i; j; k
Next k
Next j
Next i
End Sub
Приклад: Знайти значення інтегралу
Private Sub Command1_Click()
h = (1 - 0) / 20
For x = 0 To 1 Step h
s = s + Exp(x)
Next x
Label2.Caption = Str(s * h)
End Sub
Приклад. Знайти суму членів ряду
Private Sub Command1_Click()
s = 1: x = 1
n = 1: y = 0.1
f = 1
e = 0.001 ‘задана точність
While y >= e
For i = 1 To n
f = f * i
Next i
y = x ^ n / f
s = s + y
n = n + 1
f = 1
Wend
Label2.Caption = Str(s)
End Sub
Контрольні запитання.
1. Які типи циклів ви знаєте?
2. Що таке вкладені цикли?
Завдання для самостійного розв’язку.
1. Знайти суму чисел від 1 до 10.
2. Знайти добуток чисел від 1 до 10.
3. Знайти значення інтеграла
.
4. Обчислити і вивести на друк позитивні значення функції
y = sin(nx) - cos(n/x) при n = 1,2,...,50.
5. Визначити з точністю до 0.1 точку перетину функції
Y = X – arctgХ – n
з віссю Х, змінюючи значення Х від 2 до 5 з кроком 0,1. При перетині осі Х функція змінює знак.
6. Обчислити значення функції:
ae Sin x +Cosx , при х < -5;
y = Cos2x+Sin2x, при -5 < х < 5;
ab lg(bx), при х > 5,
x змінюється в інтервалі [-10; 10] з кроком 1.
7. Обчислити значення функції:
lg3 a2 + / e x при x < 3;
y = + 1/x при 3 < x < 7
a Cos2 (аeх) + a Sin2(aex ) при x > 7.
x змінюється в інтервалі [0; 10] з кроком 0.5.
8. Скласти програму табуляції значень функції у = Сos(x) для аргументу х, який змінюється від 0 до 1800 з кроком 50.
9. Підрахувати суму цифр в числі N.
10. Знайти суму членів ряду
s=1+x/5+x/7+x/9+ …..
11. Обчислити значення суми нескінченого ряду із заданою точністю e згідно із заданим варіантом.
1. S = - + - + . . . ; x = 0.2; e =
2. S = x - + - + . . . ; x = 0.1; e =
ПРАКТИЧНА РОБОТА 5