ورود

View Full Version : سوال: فاکتوریل



Razor2012
یک شنبه 11 دی 1390, 11:00 صبح
سلام .برنامه فاکتوریل به روش بازگشتی را به زبان VB میخواستم

shahab.f.c
یک شنبه 11 دی 1390, 11:10 صبح
منظورتون از بازگشتی چیه؟

Razor2012
یک شنبه 11 دی 1390, 11:11 صبح
منظورم روش Recursive هست

sr2m72
یک شنبه 11 دی 1390, 11:26 صبح
سلام.

Private Function fact(n As Integer)
If n = 1 Then
fact = 1
Else
fact = n * fact(n - 1)
End If
End Function

Razor2012
یک شنبه 11 دی 1390, 11:31 صبح
این را باید در command بنویسم . چرا قسمت print نداره ؟ ممنون

shahabbasic
یک شنبه 11 دی 1390, 12:24 عصر
سلام


Dim a, f, s As Integer
a = Val(InputBox("Enter Number :"))
f = 1
Do Until s >= a
s = s + 1
f = f * s
Loop
Print f

خط اول که عدد رو میگیره پرانتزاش و علامت دونقطه و کوتیشن اومده سمت چپ خودت ببر آخر خط یا نه خطا میده

sr2m72
یک شنبه 11 دی 1390, 13:03 عصر
این را باید در command بنویسم . چرا قسمت print نداره ؟ ممنون


Private Function fact(n As Integer)
If n = 1 Then
fact = 1
Else
fact = n * fact(n - 1)
End If
End Function



این تابع فاکتوریل به روش بازگشتی هستش که شما میتونید یه command بزارید و این تابع رو فراخوانی کنید.مانند زیر:

Private Sub Command1_Click()
Print fact(x)
End Sub

شما باید به جای x عددی که می خواهید فاکتوریلش رو حساب کنید قرار بدین.

Razor2012
یک شنبه 11 دی 1390, 20:29 عصر
کد اولی رو یاید کجا بنویسم ؟؟

sr2m72
یک شنبه 11 دی 1390, 21:43 عصر
کد اولی رو یاید کجا بنویسم ؟؟

توی قسمت کد برنامه باید بزارید.
80002

king ag
چهارشنبه 21 دی 1390, 11:33 صبح
سلام
قصدم ایراد گرفتن نیستا
همینطوری گفتم اینم بگم
درستش اینه:
Private Function fact(n As Integer)
If n = 1 Then
fact = 1
Elseif n = 0 Then
fact = 1
Else
fact = n * fact(n - 1)
End If
End Function

sr2m72
چهارشنبه 21 دی 1390, 12:43 عصر
سلام
قصدم ایراد گرفتن نیستا
همینطوری گفتم اینم بگم
درستش اینه:
Private Function fact(n As Integer)
If n = 1 Then
fact = 1
Elseif n = 0 Then
fact = 1
Else
fact = n * fact(n - 1)
End If
End Function



حرف شما درسته ولي معمولا كسي فاكتوريل صفر رو حساب نمي كنه.
ولي اگه خواستيد فاكتوريل صفر رو هم حساب كنيد مي تونيد اين طور بنويسيد:
Private Function fact(n As Integer)
If n = 1 Or n = 0 Then
fact = 1
Else
fact = n * fact(n - 1)
End If
End Function