Нахождение факториала
Думаю что среди посетителей и читателей блога много учащихся, студентов и школьников, поэтому считаю, что многим будет интересно узнать, как возможно реализовать то или иное математическое действие.
В свое время мне понадобилось написать программу для расчета факториала числа, что я собственно и сделал.
Для реализации нам понадобиться всего лишь 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 Если Вы хотите показать свои варианты решения данного вопроса, оставляйте комментарии, мне, так же как и остальным читателям будет интересно посмотреть и Ваш код.