Теоретичний матеріал. Цикли

Для багаторазового виконання одного чи декількох операторів призначені цикли. 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