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

Теоретична довідка до пр №28-29 Оператори циклів

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

Ітераційний цикл

 Оператор циклу без лічильника Do … Loop використовується в одному з чотирьох варіантів:

Do While <умова продовження циклу> … Loop

Do Until <умова закінчення циклу > … Loop

Do … Loop While <умова продовження циклу>

Do … Loop Until <умова закінчення циклу>

Нехай, наприклад, треба розрахувати значення Y за­лежно від введеного значення X. Тоді фрагмент програ­ми матиме такий вигляд:

  1. У даному прикладі цикл виконується, якщо введені значення Х задовольняють умову Х>0:

X = Input ("Значення X", Х)

Do While Х> 0

Y=sqr(3*Х+7)

Debug.Print X;Y

Loop

2) У наведеному нижче прикладі цикл виконується, якщо X <5:

X = InputBox ("Значення X")

Do Until X>5

Y=sqr(15-3*Х)

Debug.Print X;Y

Loop

Арифметичний цикл

Якщо необхідно виконати одні і ті ж дії задану кількість разів, але з різними значення деякої змінної, то використовують оператор циклу з лічильником ForNext.

For <змінна циклу = початкове значення> То <кінцеве значення> [Step<крок циклу>]

Тіло циклу

Next [змінна циклу]

Приклад:

Private Sub Prog2()

Dim add As String, n As Integer

add = ""

For n = 1 To 21 Step 2

add = add & n & " "

Next n

MsgBox "Це послідовність непарних чисел:" & " " & add

End Sub

Приклади програм з використанням об’єктів ms Excel у циклічних обчислювальних процесах:

1. Програма переписує вміст стовпчика «B2:B7» на аркуші «Лист1» у стовпчик «E2:E7», виконуючи операції з клітинками аркуша:

Sub example3 ()

        Dim j as integer

        Worksheets("Лист1").Activate   ‘ Аркуш «Лист1» стає поточним активним аркушем

        For j=2 To 7

                    Cells(j,5).Value = Cells(j,2).Value

        Next j

End Sub

2. Програма для копіювання вмісту цілого діапазону. Початковий діапазон після копіювання буде стиратися.

Sub example4 ()

        Dim R1 as Range, R2 as Range, j as integer, k as integer, m as integer, n as integer

        Set R1 = Worksheets("Лист1").Range ("B2:C7")

        Set R2 = Worksheets("Лист1").Range ("E4:F9")

        m = R1.Rows.Count

        n = R1.Columns.Count

        For j=1 to m

                For k=1 to n

                        R2(j,k).Value = R1(j,k).Value

                        R1(j,k).Value = “ ”

                Next k

        Next j

End Sub

3. Цей приклад демонструє функцію, що обчислює суму вмісту всіх клітинок заданого діапазону:

Function summ (adr as string) as single

        Dim j as integer, k as integer, m as integer, n as integer

        Dim s as single

        Dim RN as Range

        Set RN = Range (adr)         

     Rem Встановити діапазон із заданою в параметрі функції адресою

        m = RN.Rows.Count             ‘Кількість рядків діапазону

        n = RN.Columns.Count          ‘Кількість стовпців діапазону   

        s = 0

        For j = 1 to m

                For k = 1 to n

                        s = s + RN(j, k).Value

                Next k

        Next j

        summ = s

End Function

4. Наступний приклад демонструє функцію, що обчислює клітинку в заданому діапазоні, що містить мінімальне число в цьому діапазоні.

Function minm (adr as string) as Range

        Dim j as integer, k as integer, m as integer, n as integer

        Dim s as single

        Dim RN as Range, RC as Range

        Set RN = Worksheets ("Лист1").Range (adr)

        m = RN.Rows.Count

        n = RN.Columns.Count

        Set RC = RN (1, 1)

        For j = 1 to m

                    For k = 1 to n

                                IF RN (j, k).Value < RC.Value Then

                                            Set RC = RN (j, k)

                                End IF

                    Next k

        Next j

        Set minm = RC

End Function

5. В наступному прикладі мінімум в діапазоні запишеться, наприклад, в клітинку B13.

Sub example5 ()

        Cells (13, 2) = minm ("B2:C11").Value

End Sub

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