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

1) Function Sum(n Аs Integer, a As Single) Аs Integer

Ця функція – Public (за замовчуванням), доступна для всіх модулів. Ім'я функції – Sum, аргументи: n – цілого типу, а – числового, обидва аргументи мають кваліфікатор ByRef (за замовчуванням). Функція повертає значення типу Integer.

2)Private Function f1(a As Single, ParamArray X) As Single

Функція доступна тільки для модуля, у якому вона записана. Аргументи: а - числова змінна типу Single, х - масив довільного числа елементів типу Variant.Функція повертає значення типу Single.

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

Виконання Function починається з першого рядка тіла процедури й триває доти, поки не буде досягнута інструкція End Function або Exit Function (вихід з Function). Далі управління передається в основну процедуру.

Процедура Function повертає в основну процедуру значення, присвоює ім'я Function оператором: ім'я = вираз. Цей оператор може бути записаний у тілі Function кілька разів, при цьому Function повертає останнє присвоєне значення. Якщо тип функції не заданий явно, то функція повертає значення типу Variant.

Формально Function повертає тільки одне значення, однак після виконання Function можна використовувати й модифікації аргументів, переданих в Function по посиланню (ByRef).

Приклад 1. Обчислити, визначення максимуму виконати в процедурі Function

Private Sub pp1()

Dim y As Single, a As Single, x As Single

a = Val(InputBox("Введіть а"))

x = Val(InputBox("Введіть x"))

y = (max(3.5, x + a) + max(x, a)) / max(x ^ 2, 120)

MsgBox "y=" & y

End Sub

Private Function max(b As Single, c As Single) As Single

If b > c Then max = b Else max = c

End Function

Приклад 2. Обчислити C = , де n>m. Визначення факторіала виконати в процедурі Function.

Private Sub pp2()

Dim n As Integer, m As Integer, c As Single

n = Val(InputBox("Введіть n"))

m = Val(InputBox("Введіть m"))

c = fact(n) / (fact(m) * fact(n - m))

MsgBox "c=" & c

End Sub

Private Function fact(n As Integer) As Single

Dim i As Integer, p As Single

p = 1

For i = 1 To n

p =p * i

Next I

fact=p

End Function

Процедура Sub.

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

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

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

End Sub

Загаловок Sub аналогічний заголовку Function, тільки в процедурі Sub не вказується тип процедури.

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

Процедура Sub, на відміну від Function, не може бути викликана по імені функції усередині виразу. Для її виклику використовується окремий оператор. Застосовуються 2 модифікації виклику:

1) Call Ім'я (Список аргументів)