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

Тема роботи: Оператори циклу

Мета роботи: Вивчити оператори циклу та навчитися програмувати циклічні алгоритми

4.1 Теоретичні відомості

Циклом називають групу операторів, що повторюється багато­разово з різними значеннями деякої змінної, яка називається змінною або параметром циклу.

4.1.1 Оператор циклу з лічильником.

Синтаксис:

For параметр = значення1 To значення2 Step h

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

Next

Оператор повторює виконання тіла циклу, змінюючи значення параметру циклу від значення1 до значення2 із кроком h. Якщо крок дорівнює 1, його можна не вказувати.

Задача 4.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

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

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

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