Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСПЕКТ ЛЕКЦИЙ_2(Укр).doc
Скачиваний:
34
Добавлен:
09.02.2016
Размер:
5.66 Mб
Скачать

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 (m10, n20). Знайти суми додатних елементів кожного стовпця.

Позначення: 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

End Sub

Приклад 6. Дана матриця З=(сij), i=1,2, . . .n; j=1,2,. . . m (n50, m50). Визначити для кожного рядка максимальний елемент і його індекси. (Передбачається, що в кожному рядку є єдиний максимальний елемент).

Позначення: max - максимальний елемент у рядку, jmax - номер стовпця максимального елемента.

Sub Р6()

Dim c(1 to 50, 1 to 50) As Double, max As Double

Dim i, j, n, m, jmax As Integer

n = Val(InputBox("Введіть кількість рядків n"))

m = Val(InputBox("Введіть кількість стовпців m"))

For i = 1 To n

For j = 1 To m

c(i, j) = Val(InputBox("Введіть масив c"))

Next j

Next i

For i = 1 To n

jmax = 1: max = c(i, 1)

For j = 1 To m

If c(i, j) > max Then max = c(i, j): jmax = j

Next j

Debug.Print "max= " & max & “ imax=” & i & " jmax=" & jmax

Next i

End Sub

2.13. Процедури

Програма може являти собою сукупність окремих блоків-підпрограм (процедур). Використання процедур дозволяє реалізувати один із самих прогресивних методів програмування - структурне програмування.

Процедури доцільно застосовувати у випадках, коли однакову послідовність дій необхідно виконувати в різних частинах програми й при різних вхідних даних. Таку послідовність дій можна виділити в самостійну програмну одиницю - процедуру, що може бути використана багаторазово в міру необхідності.

В VBA є 3 види процедур: процедура Function, процедура Sub і процедура Property. У даній роботі розглядаються тільки процедури Function і Sub.

Процедура Function

VBA містить безліч вбудованих функцій, наприклад, cos, sqr, mid, але користувач може створювати власні функції, використовуючи для цього процедуру Function.

Синтаксис поцедури Function:

[Private Public Static] Function Ім'я(Список аргументів) [As тип]

Блок операторів

End Function

Тут і далі ( означає, що використовується один з варіантів: Private, Public або Static.

Private - означає, що процедура Function доступна для інших процедур тільки того модуля, у якому вона описана.

Public - означає, що процедура Function доступна для інших процедур у всіх модулях.

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

Ім'яідентифікатор функції, що задовольняє стандартним правилам побудови імен;

Тип – тип значення, що повертається Function;

Список аргументів - список змінних, що представляють аргументи, які передаються в процедуру Function при її виклику. Аргументи в списку відділяються комами.

Структура аргументу:

[Optional] [ByVal ByRef] [ ParamАrray] Ім'я [As тип]

Optional - указує, що даний аргумент є необов'язковим. Аргументи, позначені кваліфікатором Optional, повинні перебувати наприкінці списку аргументів.

ByVal - означає, що аргумент передається за значенням. При цьому виключається можливість зміни значення аргументу процедури після її завершення.

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

За замовчуванням установлюється ByRef.

ParamАrray - позначає необов'язковий аргумент, що є масивом довільного числа змінних типу Variant. Цей аргумент може бути тільки останнім у списку аргументів. З ним не можуть використовуватися ключові слова ByVal, ByRef, Optional.

Тип - тип аргументу, може використовуватися будь-який стандартний тип даних. За замовчуванням використовується Variant.

Приклади заголовка процедури-функції: