* Задание: Разработайте приложение для вычисления факториала, используя функцию пользователя.
Выполнение:
- Создайте новый проект и самостоятельно разработайте интерфейс новой формы.
- Необходимо запрограммировать кнопку Вычислить, создав для этого функцию пользователя:
Private Function Факториал(ByVal n As Integer) As Long Тело функции End Function |
- Как мы видим из описания функции, ее аргументом будет являться целое число (n), а значение (возвращаемое значение) будет типа Long.
- В тело функции необходимо поместить следующий код:
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 |
- Остался последний штрих: необходимо присвоить имени функции значение, а именно:
… Факториал = p |
Присваивание необходимо добавить в конец кода функции. Или написать Return p, что фактически одно и то же.
- Теперь, чтобы вычислить значение факториала при нажатии кнопки Вычислить, необходимо запрограммировать ее следующим образом:
1 2 3 | Private Sub btnВычислить_Click ... txtФакториал.Text = Факториал(txtN.Text) End Sub |
- Запустите и отладьте приложение.
- Программа работает, но есть недостаток. Так как наша функция описана с помощью оператора Private, то доступна она будет только из модуля данной формы. Для того чтобы сделать ее доступной для любого модуля нашего приложения, необходимо описать ее в стандартном модуле, исправив Private на Public:
- С помощью меню Project (Проект) и пункта Add Module (Добавить модуль) добавьте в Ваш проект стандартный модуль, изменив ключевое слово Private на Public.
- Запустите и отладьте программу.
Дополнительное задание:
- Добавьте в стандартный модуль описание следующей функции: xn, n – натуральное число. Измените внешний вид формы.
О работе с пользовательскими функциями в Visual Basic можно просмотреть в видео-фрагменте:
youTube
Вопросы для самоконтроля:
- Что такое функция пользователя?
- Как сделать функцию пользователя доступной из любого модуля программы?
- Где указывается тип данных, возвращаемый функцией?
- Как создать функцию от нескольких аргументов?
- Как добавить в проект стандартный модуль?
- Для каких целей можно использовать стандартный модуль?
- В чем разница между ключевыми словами Private и Public?
Об использовании модуля и области видимости переменных можно просмотреть в видео:
youTube
* При использовании материалов обязательна ссылка на источник: Майер С.Ф., «MS Visual Basic 2008» — Учебно-методическое пособие : Южный федеральный университет. – Ростов-на-Дону, 2017. – 92 с.