Урок из серии: «Программирование на Visual Basic.NET для школьников»
Различают две разновидности функций:
- Встроенные функции. Определенный набор команд, имеющихся в языке Visual Basic.NET и предназначенных для вычисления тех или иных значений на основании исходных данных. Встроенными являются, в частности , как математические, так и строковые функции.
- Пользовательские функции. Группы операторов, аналогичные пользовательским процедурам. Однако между ними есть ряд отличий, которые будут рассмотрены ниже.
На этом уроке вы научитесь создавать и использовать свои собственные функции.
Основные отличия функции от процедуры:
- Функция имеет тип (аналогично переменной) и вычисляет некоторое значение, которое возвращается в место вызова функции.
- Функция имеет только входные параметры, может возвращать только одно значение.
- Вызов функции осуществляется посредством указания ее имени правой части оператора присваивания. В отличие от функции, процедура вызывается при помощи отдельного оператора
Объявление (создание) функции
Функцию, как и процедуру, можно объявить как локальную (Private) так и глобальную (Public).
Пользовательские функции объявляются с помощью ключевого слова Function:
[Private] Function <имя функции> (<список формальных параметров>) As <тип> <операторы функции> <Return значение> End Function |
Здесь:
<список аргументов> — список входных формальных параметров (выходных параметров в этом списке нет).
Return — это новый оператор Visual Basic .NET. Он позволяет указать, когда нужно выйти из блока кода функции, чтобы возвратить значение в вызывающую программу, и каково это возвращаемое значение.
Когда выполняется оператор Return, происходит выход из функции, так что если после оператора Return стоят другие операторы, они не будут выполнены. (В качестве альтернативы можно использовать синтаксис Visual Basic 6 и возвращать значение в вызывающий код, присвоив значение имени функции.)
Функция, как и процедура, должна быть описана в верхней части программного кода, до ее использования
Вызов функции
Введите в операторе программы имя функции и все необходимые аргументы и присвойте ее переменной или свойству, имеющим соответствующий тип:
<имя переменной или свойства> = <имя функции> (<фактические параметры>)
Фактические параметры должны совпадать с описанными (формальными) параметрами по типу, по количеству и по последовательности расположения.
На этом уроке мы напишем функцию для вычисления факториала для заданного числа. В отличие от процедуры, в списке параметров функции указывается только входной параметр. Вычисленное значение передается в точку вызова функции.
Проект «Подпрограмма функция»
Технология выполнения
- Создайте новое приложение Windows и назовите его «Подпрограмма-функция».
- Расположите на форме кнопку, настройте свойство Text для объектов Form1 и Button1, присвоив им значения соответственно «Подпрограмма-функция» и «Вычислить факториал».
- Откройте окно редактора кода. Найдите строку: «Код, автоматически созданный конструктором форм Windows».
В следующую за ней строку добавьте исходный текст функции:Private Function Fact(ByVal a As Byte) as Integer Dim i As Byte p = 1 For i = 1 To a p = p * i Next
Return p End Sub
- Выполните двойной щелчок на кнопке Вычислить факториал, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик Button1_Click программный код:
Private Sub Button1_Click ( . . . Dim n As Byte Dim f As Integer n = Val(InputBox("Введите заданное число:", "Ввод")) f = fact(5) MsgBox(Str(n) & "!= " & Str(f), , "Вывод") End Sub
- Запустите приложение. Нажмите на кнопку с надписью Вычислить факториал. Обработчик Button1_Click выводит окно сообщения с просьбой ввести заданное число. Вызывается функция Fact и передает ей в качестве параметра введенное число. С помощью программного кода функции вычисляется факториал. Вычисленное значение возвращается в точку вызова и присваивается переменной f. Затем значение переменной f выводится в окне сообщений.
Теперь вы можете писать собственные функции, вызывать их и передавать им информацию.