السلام عليكم
وضعت كود لاختيار رقم عشوائي بين رقمين ولكن الكود احيانا لا يعمل بشكل سليم ( مثلا يختار رقم اكبر من الحد الاعلى للاختيار ) فارجو تصحيح الكود اذا كان خاطئ
f = Int((40 * Rnd) + 1)
السلام عليكم
وضعت كود لاختيار رقم عشوائي بين رقمين ولكن الكود احيانا لا يعمل بشكل سليم ( مثلا يختار رقم اكبر من الحد الاعلى للاختيار ) فارجو تصحيح الكود اذا كان خاطئ
f = Int((40 * Rnd) + 1)
أظن ان الكود صحيح فهو يختار رقم عشوائي ما بين 1 و 40 !!!
السلام عليكم
المشكلة يا اخي الكريم اني وضعت كومبو بوكس فيها قائمة ( خمس اختيارات ) ، لكل صف رقم معين مثلا
الصف الاول يبدا من رقم 1 حتى 16
الصف الثاني يبدأ من 17 وحتى 33
سأرفق المثال وجربه .
هذا أمر طبيعي لماذا ؟
دعنا نرى الكود و بالخصوص عند الاختيار الثاني /// الصف الثاني يبدأ من 17 وحتى 33 ////
تقو اولا بتحدد المتغيرين Last و First هكذا
last = 35 first = 17
و في دالة اختيار الرقم العشوائي كتبت :
f = Int((last * Rnd) + first)
اذا لنرى ما يحدث داخل هذه الدالة
يتم أولا تنفيذ ما بين القوسين لأن الاسبقية كما هو الحال في الرياضيات لما بين القوسين و يتم اختيار رقم عشوائي ما بين 0 و 34
بعد ذلك تقوم باضافة first الى الرقم العشوائي المنتج علما بأن first =17
اذا اذا كان الرقم العشوائي يساوي 0
ف f ستستوي 0+17
و هكذا ...
لكن المشكل اذا كان الرقم العشوائي يساوي او اكبر من 19
لأن f ستساوي
f=int((19)+17)=36
و بهذا فقد تجاوزت الحد المسموح
اذا ما الحل ... الحل الذي يحضرني الآن هو التالي :
طبعا الاختيار الأول الا و هو اختيار رقم ما بين 1 و16 امره محلول
الحل سيكون على مستوى دالة الرقم العشوائي حيث يمكنك مراقبة الرقم first فاذا كان يساوي 1 تبقى الدالة على ما عليه
اما في حالة العكس فتكون الدالة على شكل :
f = Int((last * Rnd) +1) if f<19 then f=f+first
هذا ح ترقيعي هههههه
لكن اذا لم يرقك فقل لي و سأحاول أن اعمل دالة تمكنك من تحديد رقمين لاختيار رقم عشوائي بينهما
و السلام عليكم
هذا الموضوع مغلق.