Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vba_3365el.doc
Скачиваний:
15
Добавлен:
07.02.2016
Размер:
1.21 Mб
Скачать

4.1.2 Оператори циклу з умовою.

Такі цикли використовується, якщо невідома заздалегідь кіль­кість повторень. Існують такі різновиди операторів:

Синтаксис:

Do While умова

інструкції тіла циклу

Loop

Do

інструкції тіла циклу

Loop While умова

Оператори з умовою While забезпечують виконання операторів тіла циклу доти, доки умова виконується.

Do Until умова

інструкції тіла циклу

Loop

Do

інструкції тіла циклу

Loop Until умова

Оператори з умовою Until закінчують роботу операторів тіла циклу тоді, коли умова виконається. Тобто цикл повторюється, якщо умова має значення False (хибність).

Достроковий вихід з таких операторів циклу відбувається за допомогою оператору Exit Do.

Задача 4.2. З клітині А1 починається список. Написати програ­му, яка підраховує кількість заповнених рядків і записує результат в першому вільному рядку.

Sub Кількість ( )

Dim k As Integer

k = 1 ' k – номер рядка

Do

k = k + 1

Loop While Cells(k , 1) .Value <> ""

Cells(k , 1) .Value = " Номер першого вільного рядка – " & Str(k)

End Sub

Деякі задачі можна розв’язувати як з використанням операторів циклу, так і за допомогою методів та вла­стивостей об’єктів Excel.

Приклади виконання лабораторної роботи

Приклад 4.3. Протабулювати функціїю

y=,

Для значень х, що змінюються від -2 до 2 із кроком h=0.2. Таблицю розмістити на робочому листі.

Sub Таблиця()

Dim x as Single, z as Single, i as Integer

Dim xn as Single, xk as Single, h as Single

xn=InputBox(“Введіть початкове значення аргументу x”)

xk= InputBox(“Введіть кінцеве значення аргументу x”)

h= InputBox(“Введіть крок для аргументу x”)

Worksheets(“Лист1”) . Activate

Range(“A1”). Value=”x”

Range(“B1”). Value=”y” ‘ Записуємо заголовки колонок таблиці

i=2 ‘ Номер рядка, починаючи з якого записуємо значення

For x=xn To xk Step h

If x<=0 Then

y = 3*sin(x)-cos(x)^2

Else

y = 3*sqr(1+x^2)

End if

Cells(i,1). Value = x Записуємо обчислені значення

Cells(i,2). Value = y

i = i + 1 збільшуємо номер рядка на 1

Next x

End sub

Приклад 4.4

Знаходження суми ряду з визначеною точністю ε

Sub сума_ряда()

Dim s As Double, zn As Integer, i As Integer

Dim y As Double, eps As Single, f As Single

eps = 0.1Е-06 'точність обчислення

i = 1 ' номер члена ряду

f = 1 'факторіал

zn = -1 'знак члена ряду

s = 0: f = 1

Do

f = f * i 'обчислення факторіалу

y = zn * (i + 3) / f 'обчислення члена ряду

s = s + y 'обчислення суми ряду

zn = -zn 'зміна знаку

i = i + 1 'слідуючий член ряду

Loop While Abs(y) > eps

MsgBox "сума=" & CStr(s) & " y= " & CStr(y)

End Sub

Результат роботи програми:

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