ايران ويج

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

من میخواستم بدونم میشه که برنامه با یه دکمه 100 عدد تصادفی غیر تکراری درست کنه و هر بار که دکمه رو بزنیم اعداد فرق کنه؟

ممنون میشم اگه جوابمو بدین
سلام
داداش من خواب خواب بودم امیدوارم که دقیقا همون چیزی که میخوای باشه
کاری نداره که یه textbox فقط رو فرمت بزار منم برم بخوابم....
کد:
'Write By Amin Tatu
'setare_Aseman_Tanhaye@yahoo.com
Private Sub Form_Load()
For i = 1 To 100
Text1.Text = AminTatu1990(100) + (" ") & (Text1.Text)
Next i
End Sub

Function AminTatu1990(MaxNumberForRendomiz As Integer)
Dim intFirstNumber As String
intFirstNumber = Int((MaxNumberForRendomiz * Rnd) + 1)
AminTatu1990 = intFirstNumber
End Function
برای توليد اعداد تصادفی ميتونيد از تابع Rnd استفاده کنيد
برای اينکه اعداد تصادفی بر پايه زمان ايجاد بشن قبل از تابع Rnd بايد دستور Randomize Timer قرار بديد

توی اين مثال ساده اعداد از بين 1 تا 1000 ايجاد ميشه:

کد:
Private Sub Command1_Click()
Dim lngAdad As Long
Randomize Timer
lngAdad = Int(Rnd * 1000) + 1
Call MsgBox(lngAdad)
End Sub
سلام

برای تکراری نبودن اعداد باید تو آرایه ثبت بشن :
کد:
Dim a(100) As Integer
Private Sub Command1_Click()
Dim s As Integer
For i = 1 To 100
    Do
        s = Int(Rnd() * 1001) + 1
    Loop While (InArray(s))
    a(i) = s
    Next
End Sub
Private Function InArray(X As Integer) As Boolean
Dim res As Boolean: res = False
For i = 1 To UBound(a)
    If a(i) = X Then
        res = True
    End If
Next
InArray = res
End Function
(۰۲-مرداد-۱۳۸۹, ۱۹:۱۵:۴۸)hamed_Arfaee نوشته است: [ -> ]
کد:
If a(i) = X Then
res = True
End If
Next

سلام
براي افزايش سرعت روال بالا بهتره به محض برقراري شرط مقدار true رو بر گردونيم.
کد:
If a(i) = X Then InArray = true

موفق باشيد.
(۰۲-مرداد-۱۳۸۹, ۲۰:۲۷:۵۲)dreamvbfox نوشته است: [ -> ]سلام
براي افزايش سرعت روال بالا بهتره به محض برقراري شرط مقدار true رو بر گردونيم.
کد:
If a(i) = X Then InArray = true
سلام
نکته خوبیه .
ولی این به تنهایی خواسته شما رو انجام نمیده
اگه با سی بود با Return کردن تابع تموم میشه ولی در بیسیک تا رسیدن به End function تابع تموم نشده و حلقه ادامه داره

پس در تکمیل همین حرف :
کد:
If a(i) = X Then
        res = True
        Exit For
    End If
و یا Exit function
(۰۳-مرداد-۱۳۸۹, ۱۸:۴۶:۱۱)hamed_Arfaee نوشته است: [ -> ]سلام
نکته خوبیه .
ولی این به تنهایی خواسته شما رو انجام نمیده
اگه با سی بود با Return کردن تابع تموم میشه ولی در بیسیک تا رسیدن به End function تابع تموم نشده و حلقه ادامه داره
و یا Exit function

سلام حامد جان
ويبي ديگه يادم رفته !! Biggrin

ممنون