PDA

View Full Version : حرفه ای: ایجا کد تصادفی بدون تکرار



hossin74
پنج شنبه 03 شهریور 1390, 17:42 عصر
سلام بر مهندسین
کدی در وبی دات نت که عدد تصادفی با تعداد مشخص تولید کنه می خوام.
با randomize نوشتم تکراری می ده
بهترین را ه برای تولید همچین اعدادی چیه؟
لطفا را هنمایی کنید

h_a_m_i_d
پنج شنبه 03 شهریور 1390, 19:58 عصر
سلام دوست عزیز شما میتونین با دو تا تابع این کارو براحتی انجام بدین do while وrnd
یعنی یک rnd در داخل do while بزارین و بگین تا زمانی که تعداد کاراکترها(len)به مققدار مورد نظر شما نرسید یک عدد دیگه بگیره
اگر متوجه نشدین بگین تا برنامشو بزارم

h_a_m_i_d
جمعه 04 شهریور 1390, 01:16 صبح
دوست عزیز روی فرمت یک تایمر بزار و یک دکمه(timer and button) و نام اونا رو تغییر نده(timer1&button1) کد زیر را در timer1 بنویس
Dim h As String
"" = h
h = x
If Len(h) = 4 Then
Timer1.Enabled = False
(MsgBox(h

Else
x = Rnd() * 999999
End If
حالا کد زیر رو در button1 بنویس
timer1.enable=true
x=0
در بخش جنرال(بالای بالا)
dim x as integer
حالا به جای چهار عددی را قرار دهید که میخواهید عدد تصادفی ان تعداد رقم داشته باشه
و به جای 999999 عدد را تا جایی بالا تر قرار دهید که میخواهید تکرار کم تر باشد
حالا برنامه رو اجرا کن و روی button1 کلیک کن نتیجه درست امد نه؟
این روش اول بود

h_a_m_i_d
جمعه 04 شهریور 1390, 01:20 صبح
خوب حالا روش دوم
شما میتونین از چهار متغیر به صورت زیر استفاده کنین
dim x as byte
dim x1 as byte
dim x2 as byte
dim x3 as byte
x=rnd*9
x1=rnd*9
x2=rnd*9
x3=rnd*9
(msgbox(x+x1+x2+x3
این روش دوم
:تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق::تشویق::تشویق::تشویق::تش یق::تشویق::تشویق::تشویق::تشو ق::تشویق::تشویق::تشویق::تشوی ::تشویق::تشویق::تشویق::تشویق: :تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق:

h_a_m_i_d
جمعه 04 شهریور 1390, 01:23 صبح
خوب بالاخره روش سوم که خلاصه شده همون دستور دومه
dim x as byte,sum as integer
for i=1 to 4
x=rnd*9
sum=sum*10+x
next
(msgbox(sum
ولی اگر میخواهید از متغیر sum جای دیگری هم استفاده کنین اونو در جنرال فرم تعریف و اول خط همین جا بزنید (sum=0)
امیدوارم متوجه شده باشین

h_a_m_i_d
جمعه 04 شهریور 1390, 01:28 صبح
اگر مشکل دیگه هم داشتین بگین
راستی وبلاگ من اینه اگر خواستین بیاین توش و به هدف کلیش خیلی توجه کنید


WWW.VGDOWNLOAD.BLOGFA.COM (http://WWW.vgdownload.blogfa.com)]

h_a_m_i_d
جمعه 04 شهریور 1390, 01:36 صبح
البته باید بگم که روش دوم از روش های دیگه بهتره و ایجاد خطا درون این روش کمتره پس بهتره این روشو امتحان کنین

M.KH-SH
جمعه 04 شهریور 1390, 01:36 صبح
حالا اگه اینجوری بنویسه بهتر نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟


Function random() As String
Randomize()
Dim x As Integer
x = CInt(Rnd() * (9999 - 1000) + 1000)
Return (x)
End Function

h_a_m_i_d
جمعه 04 شهریور 1390, 01:41 صبح
عزیزم هزاران راه برای بدست اوردن یک پاسخ وجود داره ولی من چون سطح علمی ایشون رو نمیدونستم جوری نوشتم که متوجه بشن

M.KH-SH
جمعه 04 شهریور 1390, 01:58 صبح
خوب اره اینم حرفیه.
از همه این ها زیبا تر اینه که بعد از بدست آوردن عدد تصادفی اونو وارد یک pictureBox کنین و یک سری خط رو بکشین که ناخوانا بشه.
اینجوری کار تمیز تر میشه.

h_a_m_i_d
جمعه 04 شهریور 1390, 02:01 صبح
کسی به این پروژه نیاز داره که بذارم برای دانلود تو وبلاگ

M.KH-SH
جمعه 04 شهریور 1390, 06:10 صبح
برای کد امنیتی هم می تونین از حروف استفاده کنین.
این یک روش ابتکاری هستش البته:

چند تا عدد رو رندوم بگیرین و از بین اعداد رندوم 64 تا 120 کد chr بگیرید که معلوم بشه کدوم علامت کیبورد هستش (البته قابل تایپ) و می توان چندین عدد را هم به این صورت وارد نمود.
با تابع system.drawing هم می تونین خطوطی رو برای ناخوانا تر شدن رسم کنید این کار هم خودتون نوشتین و هم زیباست.
اگه کسی لازم داشت بگه تا براش پروژه رو آماده کنم.