تولید اعداد تصادفی در VB.NET بهتر شده است به صورتی که شما به راحتی می توانید با استفاده از کلاس Random اقدام به تولید اعداد تصادفی کنید .
برای این کار ابتدا شی را از کلاس Random ایجاد کنید تا از طریق آن شی به متدهای کلاس Random دسترسی پیدا کنید برای ایجاد شی می توانید از یکی از دو دستور زیر استفاده کنید:
1- Dim Ran as New Random
2- Dim Ran as Random=New Random
نکته : Ran متغیر است.
حال از طریق شی ایجاد شده می توانید به سه متد این کلاس دسترسی پیدا کنید:
1- متد Next :
از این متد به سه صورت می توان استفاده کرد :
الف : Dim Ran As New Random
Dim Number As Integer
Number = Ran.Next
TextBox1.Text = Number
دستور Ran.Next عددی بین صفر تا 2147483647 ایجاد می کند.
ب : Dim Ran As New Random
Dim Number As Integer
Number = Ran.Next(1, 8)
TextBox1.Text = Number
دستور Ran.Next(1,8) عددی مابین 1 تا 8 ایجاد می کند البته خود عدد 8 را شامل نمی شود
البته این دستور کلی است و شما می توانید هر عددی را به عنوان حداقل در ارگومان اول قرار دهید و در آرگومان دوم عدد حداکثر بعلاوه یک را قرار دهید.
نکته : عددی که در آرگومان دوم قرار می دهید در تولید عدد تصادفی به وجود نمی آید.
برای مثال اگر می خواهید تابع فقط اعداد سه رقمی تولید کند از دستور زیر استفاده کنید :
Number=Ran.Next(100,1000)
ج : Dim Ran As New Random
Dim Number As Integer
Number = Ran.Next(5)
TextBox1.Text = Number
دستور Ran.Next(5) اعدادی ما بین صفر تا 5 تولید می کند البته خود عدد 5 را شامل نمی شود این تابع همانند تابع بالا یک مثال است .
2- متد NextBytes:
این متد اعدادی را مابین 0 تا 255 تولید می کند تعداد اعداد بستگی به سایز آرایه دارد. مثلا در دستورات زیر 5 عدد از نوع Byte تولید شده و در آرایه Number ذخیره شده است .
Dim Ran As New Random
Dim Number(4) As Byte
Dim S As String
Ran.NextBytes(Number)
For i As Byte = 0 To 4
S = S & Number(i) & " "
Next
MessageBox.Show(S)
نکته : آرایه حتما باید از نوع Byte باشد.
3- متد NextDouble :
این متد اعدادی از نوع Double مابین صفر و یک تولید می کند .
Dim Ran As New Random
Dim Number As Double
Number = Ran.NextDouble
TextBox1.Text = Number
با سلام
احتراما بنده به دنبال برنامه ای هستم که بتونه با ویژوال بیسیک 6 کار کنه و فرم برنامه هم بدین صورت می باشه...
یک جدول 3×16 که 3 آن افقی و 16 آن عمودی می باشد و بصورت یک خانه های تو خالی است که با دادن یک دستور بتونه اعداد داخل خانه ها رو در یک سطر یک سطر آن فقط یک خانه رو پر کنه ...
در صورت امکان لطف میکنید بنده رو راهنمایی کنید.
با سپاس
ممنونم خیلی مفید بود ، فقط یه نکته جا موند که حیفم اومد نگم اونم استفاده از تابع Randomize قبل از تابع ساخت عدد تصادفی بود که "در طی اجرای برنامه" هر دفعه یه عدد تصادفی ایجاد کنه نه همیشه یه عدد ! یه تابع دیگم هست که خیلی راحت تر از این توابع که معرفی کردین کار میکنه یه مثال کوچیک میزارم :
Dim Number As Integer = Rnd() * 3
که عدد های 0 تا 3 رو تولید میکنه کاملش اینطوری میشه
randomize()
Dim Number As Integer = Rnd() * 3
ممنون
عالی