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

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.

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