اذهب الي المحتوي
أوفيسنا

ابحث عن فكرة للحصول علي رقم عشوائي بدون تكرار


الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

الفكرة: وضع سؤال بشكل عشوائي - وكذلك اعادة ترتيب الاجابات بشكل عشوائي حتي لا يحفظ المستخدم اماكن الاجابات

الأكواد المستخدمة:

Function GetRandNo()
    Randomize (28)

    GetRandNo = Int((28 * Rnd) + 1)
End Function

هذه الدالة تقوم باعطائي رقم عشوائي بين 1 - الي 28

المشكلة: انها تكرر الأرقام مما يخفي بعض الاجابات والتي تكون احيانا الاجابة الصحيحة علي السؤال العشوائي 

المحاولات التي قمت بها: 

قمت بوضع متغير مصفوفة لتخزين قيمة الرقم العشوائي لاعادة البحث عنه وتغيره في حالة وجوده بالقائمة ولكن وجاهتني مشكلة في تخزين القيمة بشكل متسلسل بالقائمة

Function GetRandNo()
Dim n As Integer

Recall:
    Randomize (28)

    GetRandNo = Int((28 * Rnd) + 1)

    
    For n = 0 To UBound(RndNo) - 1
        If GetRandNo = RndNo(n) Then
            GoTo Recall
            Exit For
        Else
            GoTo contnue
        End If
    Next
Exit Function

contnue:

For n = 0 To UBound(RndNo) - 1
    If RndNo(n) = 0 Then
        RndNo(n) = GetRandNo
'        Debug.Print "Inex: " & n
'        Debug.Print "Element index:" & RndNo(n)
        Exit For
    End If
'Debug.Print RndNo(n)
Next

    

End Function

وهذا الكود بعد تنفيذ الفكرة ولكن لم يتم تخزين القيمة بالمصفوفة بشكل صحح 

وجزاكم الله خيرا

رابط هذا التعليق
شارك

جرب هذا :::::::

Dim RanNo() As Long
Private Sub RandomizeNumbers(ByVal iFrom As Integer, ByVal iTo As Integer)
ReDim RanNo(iFrom To iTo)
For i = iFrom To iTo
RanNo(i) = i
Next i
Randomize (Timer)
For i = iFrom To iTo
j = CInt((iTo - iFrom) * Rnd + iFrom)
tmp = RanNo(i)
RanNo(i) = RanNo(j)
RanNo(j) = tmp
Next i
End Sub
Private Sub أمر0_Click()
RandomizeNumbers 0, 28
For i = 1 To 28
List1.AddItem RanNo(i)
Next i

End Sub

 

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

وعليكم السلام استاذ ابو عبد الله ..

لدي كود random لايكرر الارقام ...لا اعلم ان كان يفيدك فقد جربته على 28 سجل

 

 

random.rar

تم تعديل بواسطه Eng.Qassim
  • Thanks 1
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information