Приложение -процедура и функция max.rar
Занятие 27.1. Создание и вызов пользовательских функций
Различают две разновидности функций:
- Встроенные функции. Определенный набор команд, имеющихся в языке Visual Basic.NET и предназначенных для вычисления тех или иных значений на основании исходных данных. Встроенными являются, в частности, как математические, так и строковые функции.
- Пользовательские функции. Группы операторов, аналогичные пользовательским процедурам. Однако между ними есть ряд отличий, которые будут рассмотрены ниже.
Основные отличия функции от процедуры:
- Функция имеет тип (аналогично переменной) и вычисляет некоторое значение, которое возвращается в место вызова функции.
- Функция имеет только входные параметры, может возвращать только одно значение.
- Вызов функции осуществляется посредством указания ее имени правой части оператора присваивания. (В отличие от функции, процедура вызывается при помощи отдельного оператора)
Объявление (создание) функции
Функцию, как и процедуру, можно объявить как локальную (Private) так и глобальную (Public).
Пользовательские функции объявляются с помощью ключевого слова Function:
[Private] Function <имя функции> (<список формальных параметров>) As <тип> <операторы функции> |
Здесь:
- <список аргументов> - список входных формальных параметров (выходных параметров в этом списке нет).
- Return - это новый оператор Visual Basic .NET. Он позволяет указать, когда нужно выйти из блока кода функции, чтобы возвратить значение в вызывающую программу, и каково это возвращаемое значение.
Когда выполняется оператор Return, происходит выход из функции, так что если после оператора Return стоят другие операторы, они не будут выполнены.
Функция, как и процедура, должна быть описана в верхней части программного кода, до ее использования
Вызов функции
Введите в операторе программы имя функции и все необходимые аргументы и присвойте ее переменной или свойству, имеющим соответствующий тип:
<имя переменной или свойства> = <имя функции> (<фактические параметры>) |
Фактические параметры должны совпадать с описанными (формальными) параметрами по типу, по количеству и по последовательности расположения.
Пример 1.
Интерфейс проекта
Программный код проекта
Private Sub smax(ByVal a As Integer, ByVal b As Integer, ByRef z As Integer)
If a > b Then
z = a
MessageBox.Show("max = " & Str(a))
Else
z = b
MessageBox.Show("max = " & Str(b))
End If
End Sub
Private Function fmax(ByVal a As Integer, ByVal b As Integer) As Integer
If a > b Then fmax = a Else fmax = b
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, y, max As Integer
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
smax(x, y, max)
Label3.Text = Str(max)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x, y As Integer
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
Label4.Text = fmax(x, y)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TextBox1.Text = ""
TextBox2.Text = ""
Label4.Text = ""
Label3.Text = ""
TextBox1.Focus()
End Sub