Нахождение факториала
Думаю что среди посетителей и читателей блога много учащихся, студентов и школьников, поэтому считаю, что многим будет интересно узнать, как возможно реализовать то или иное математическое действие.
В свое время мне понадобилось написать программу для расчета факториала числа, что я собственно и сделал.
Для реализации нам понадобиться всего лишь 1 кнопка и 1 метка для вывода результата.
Очень просто нажали на кнопку, ввели число, для которого необходимо рассчитать факториал и программа уже вывела результат.
Option Explicit
Очень важно чтобы каждый программный код, написанный Вами начинался инструкцией Option Explicit. Это поможет избежать различных ошибок при работе с переменными.
Что она делает?
Она заставляет Вас обязательно перед работой объявить переменную, т.е. рассказать компилятору, что Вы резервируете переменную и присваиваете ей какой либо тип, выделяя при этом память.
Работать без объявления переменных можно, но в разы увеличивается вероятность простейшей ошибки, которая отнимет у Вас гораздо больше времени, чем сам момент объявления.
Так что это полезно делать, и мы это будем делать.
Объявим две переменные:
Dim Buffer As String Dim bytN As Double
А вот сама функция для нахождения факториала:
Function Fact(bytA As Double) As Double Dim bytI As Double Dim intFact As Double intFact = 1 For bytI = 1 To bytA intFact = intFact * bytI Next Fact = intFact End Function
Здесь, внутри функции тоже объявлены переменные необходимые для работы самой функции.
С помощью функции InputBox мы получаем от пользователя данные
strInput = InputBox("Ввод значения:", "Ввод")
И наша функция Fact выводит результат в метку Label1.
Максимальное число для ввода – 170, иначе произойдет переполнение.
Полный код программы:
Option Explicit
Dim Buffer As String
Dim bytN As Double
Private Sub Form_Load()
Label1.Caption = "Факториал = "
End Sub
Function Fact(bytA As Double) As Double
Dim bytI As Double
Dim intFact As Double
intFact = 1
For bytI = 1 To bytA
intFact = intFact * bytI
Next
Fact = intFact
End Function
Private Sub Command1_Click()
On Error GoTo Error
Dim strInput As String
strInput = InputBox("Ввод значения:", "Ввод")
bytN = CDbl(strInput)
Label1.Caption = "Факториал = " & Fact(bytN)
Exit Sub
Error:
Label1.Caption = "Ошибка!"
End Sub
PS Если Вы хотите показать свои варианты решения данного вопроса, оставляйте комментарии, мне, так же как и остальным читателям будет интересно посмотреть и Ваш код.