Sub Р1()
Dim x0 As Single, xk As Single, h As Single Dim a As Single, y As Single, x As Single x0 = Val(InputBox("Введіть х0")) xk = Val(InputBox("Введіть хk")) h = Val(InputBox("Введіть h")) a = Val(InputBox("Введіть a")) x = x0 Do While x <= xk y = Sqr(x ^ 2 + 25) / (x ^ 2 + a ^ 2) Debug.Print "y=" & y & " x=" & x x = x + h Loop End Sub Приклад 2. Записати програму для виведення у вікно налагодження натуральних чисел від n до 1, їхні квадрати і куби. Позначення: n - число, n2, n3 - відповідно квадрат і куб числа. Sub Р2() Dim n As Integer, n2 As Integer, n3 As Integer n = Val(InputBox("Введіть n")) Debug.Print "Число" & " Квадрат числа" & " Куб числа" Do n2 = n ^ 2: n3 = n2 * n Debug.Print n & " " & n2 & " " & n3 n = n - 1 Loop Until n = 0 End sub 2) Оператор While...Wend Цей оператор циклу є різновидом оператора Do…Loop... Синтаксис оператора: While умова Блок операторів Wend Якщо умова має значення True, виконуються Блок операторів до Wend. Якщо умова має значення False, виконання відновляється з операторів, що випливають за Wend. Цикли While¼Wend можуть мати будь-яку глибину вкладеності. 3) Оператор For... Next Цей оператор циклу можна зустріти в більшості мов програмування. Він використовується у випадках, коли відомо, скільки разів необхідно повторити виконання серії операторів. Синтаксис оператора: For лічильник = початок To кінець [ step крок ] Блок операторів Next [ лічильник ] Лічильник – числова змінна, котра автоматично змінюється після кожного повтору. Початкове значення лічильника дорівнює параметру початок, а кінцеве - кінець. Крок - крок лічильника циклів. Якщо цей параметр опущений, то значення кроку приймається рівним 1. Щоб лічильник змінювався по убуванню, використовується негативне значення кроку. Приклад 3. Дан масив Х=(12,24,67,38,56,69) щомісячного випуску продукції в 1-му півріччі. Визначити випуски продукції за 1- й і 2 - й квартали. Sub Р3() Dim x As Variant Dim kv1 As Single, kv2 As Single, i As Integer x=Array(12,24,67,38,56,69) kv1 = 0: kv2= 0 For i = 1 To 3 kv1=kv1+x(i) kv2=kv2+x(i+3) Next i MsgBox " випуск продукції за 1-ий квартал =" & kv1 MsgBox " випуск продукції за 2-ий квартал =" & kv2 End Sub 4) Оператор For Each...Next Цей оператор дозволяє робити обробку набору об'єктів (наприклад, елементів масиву даних). У цьому випадку немає необхідності використовувати лічильник циклу, тому що циклічний перегляд і обробка виробляється для певних елементів набору.
Синтаксис оператора: For Each елемент In група Блок операторів Next [ елемент ] Параметр елемент - змінна типу Variant (ця обов'язкова умова), що представляє елемент сімейства або масиву. Група - ім'я масиву або сімейства. Блок операторів виконується тільки один раз для кожного члена групи. Найважливіше в операторі For Each…Next те, що не потрібно заздалегідь знати, скільки елементів утримується в масиві або сімействі. Таким чином, не потрібно підраховувати число елементів або перевіряти досягнення кінця групи. Це дозволяє виключити одну з найбільш загальних помилок при програмуванні: неправильну індексацію елементів масивів. Приклад 4. Дано масив А=(ai), i=1,2,...,10. Знайти добуток позитивних елементів. Позначення: p - добуток позитивних елементів. Sub Р4() Dim a(1 to 10) As Double Dim p As Single, i As Integer, n As Variant For i = 1 To 10 a(i) = Val(InputBox("Введіть "& str(i) & “ елемент масиву а")) Next i p = 1 For Each n In a If n > 0 Then p = p * n Next n MsgBox "p=" & p End Sub Приклад 5. Дана матриця D=(dij), i= 1,2,...,m; j=1,2,...,n (m£10, n£20). Знайти суми додатних елементів кожного стовпця. Позначення: sum[j] - сума додатних елементів j- го стовпця. Sub Р5() Dim d(1 to 10, 1 to 20) As Single, sum(1 to 20) As Single Dim i As Integer, j As Integer, n As Integer, m As Integer n = Val(InputBox("Введіть кількість рядків n")) m = Val(InputBox("Введіть кількість стовпців m")) For i = 1 To n For j = 1 To m d(i, j) = Val(InputBox("Введіть масив d")) Next j Next i For j = 1 To m sum(j) = 0 For i = 1 To n If d(i, j) > 0 Then sum(j) = sum(j) + d(i, j) Next i Debug.Print sum(j) Next j
|