VB 12. Функции пользователя

* Задание: Разработайте приложение для вычисления факториала, используя функцию пользователя.

Выполнение:

  1. Создайте новый проект и самостоятельно разработайте интерфейс новой формы.
  2. Необходимо запрограммировать кнопку Вычислить, создав для этого функцию пользователя:
Private Function Факториал(ByVal n As Integer) As Long
       Тело функции
End Function
  1. Как мы видим из описания функции, ее аргументом будет являться целое число (n), а значение (возвращаемое значение) будет типа Long.
  2. В тело функции необходимо поместить следующий код:
1
2
3
4
5
6
7
8
Private Function Факториал(ByVal n As Integer) As Long
  Dim i As Integer
  Dim p As Long
  p = 2
  For i = 3 To n
    p = p * i
  Next
End Function
  1. Остался последний штрих: необходимо присвоить имени функции значение, а именно:
…
Факториал = p

Присваивание необходимо добавить в конец кода функции. Или написать Return p, что фактически одно и то же.

  1. Теперь, чтобы вычислить значение факториала при нажатии кнопки Вычислить, необходимо запрограммировать ее следующим образом:
1
2
3
Private Sub btnВычислить_Click ...
  txtФакториал.Text = Факториал(txtN.Text)
End Sub
  1. Запустите и отладьте приложение.
  2. Программа работает, но есть недостаток. Так как наша функция описана с помощью оператора Private, то доступна она будет только из модуля данной формы. Для того чтобы сделать ее доступной для любого модуля нашего приложения, необходимо описать ее в стандартном модуле, исправив Private на Public:
  • С помощью меню Project (Проект) и пункта Add Module (Добавить модуль) добавьте в Ваш проект стандартный модуль, изменив ключевое слово Private на Public.
  1. Запустите и отладьте программу.
Дополнительное задание:

  1. Добавьте в стандартный модуль описание следующей функции: xn, n – натуральное число. Измените внешний вид формы.

О работе с пользовательскими функциями в Visual Basic можно просмотреть в видео-фрагменте:
youTube

Вопросы для самоконтроля:

  1. Что такое функция пользователя?
  2. Как сделать функцию пользователя доступной из любого модуля программы?
  3. Где указывается тип данных, возвращаемый функцией?
  4. Как создать функцию от нескольких аргументов?
  5. Как добавить в проект стандартный модуль?
  6. Для каких целей можно использовать стандартный модуль?
  7. В чем разница между ключевыми словами Private и Public?

Об использовании модуля и области видимости переменных можно просмотреть в видео:
youTube

* При использовании материалов обязательна ссылка на источник: Майер С.Ф., «MS Visual Basic 2008» — Учебно-методическое пособие : Южный федеральный университет. – Ростов-на-Дону, 2017. – 92 с.