Функция - подпрограмма которую вызывают чтобы выполнить какие либо расчеты. Когда она завершает работу то возвращает управление вызывающей программе и передает ее результат расчета.
Процедура - подпрограмма, которую вызывают для выполнения каких либо действий, но от которой не требуется возвращать основной программе какие либо значения. Другими словами процедура это любая подпрограмма которая не является функцией.
Объявление процедуры и функции
Синтаксис объявления процедуры:
[Private | Public] [Static] Sub Имя [(параметры)]
[Операторы]
End Sub
Синтаксис объявления функции:
[Private | Public] [Static] Function Имя [(параметры)] [As Тип]
[Операторы]
[Имя=Выражение]
End Function
Пример описание процедуры вычисления суммы
одномерного массива:
Public Sub sum(n As Integer, x() As Single, s As Single)
Dim i As Integer
s = 0
For 0 = 1 To n-1
s = s + x(i)
Next i
End Sub
Параметры
Private Процедуры объявленные как Private, можно вызывать только в текущем модуле.
Public Процедуры объявленные как Public, можно вызывать в любом модуле приложения.
Static Все переменные объявление в процедуре будут статическими т.е. их значения сохраняются между вызовами.
Имя Имя процедуры, удовлетворяющее стандартным правилам описания переменных. Этот идентификатор не может быть использован нигде, кроме обращения к процедуре.
Параметры Список формальных параметров, значения которых передаются в процедуру. Разделителем в списке параметров является запятая (,).
Операторы Любая группа операторов, выполняемых в процедуре или функции.
Тип Тип возвращаемого значения функции.
Выражение Возвращаемое значение функции.
Обращение к процедуре
Call Имя [(Список фактических параметров)]
Имя – это имя вызываемой процедуры, определенной в программе при помощи оператора Sub.
Список фактических параметров – это список фактических параметров, разделенных запятыми.
В качестве фактических параметров можно использовать константы, переменные, выражения и массивы.
Если фактическим параметром является массив, то в списке параметров пишется имя массива, а затем ().
Фактические параметры должны соответствовать формальным по количеству, порядку следования и типу.
Порядок обращения к процедуре
Вызов процедуры при помощи оператора Call.
Формальные параметры в процедуре заменяются на фактические.
Вычисление при помощи данной процедуры с фактическими параметрами.
Возврат в основную программу к оператору, следующему после обращения.
Пример обращения к процедуре:
Private Sub button1_Click()
Dim a() As Single, s As Single, i As Integer, n As Integer
n = CSng(InputBox("n"))
Redim a(0 to n-1)
For i = 0 To n-1
a(i) = CSng(InputBox("a(i)"))
Next i
Call sum(n, a, s)
ТextBox1.Text=TextBox1.Text + “s="+CStr(s)
End Sub
Формальные и фактические параметры
Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к этой подпрограмме (количество параметров, их последовательность, типы). Формальные параметры - это искусственные переменные, они показывают, что должно быть проделано с теми реальными переменными, которые будут указаны как фактические параметры.
Формальные параметры используются в операторе описания процедуры или функции.
Фактические параметры – это реальные переменные, с которыми происходит обращение к процедуре или функции.
VB требует строгого соответствия типа между формальными и фактическими параметрами, т.е. например, Integer - Integer , Single – Single.