سلام عليكم
اريد شرح عن موضوع السحب والارساء drag&drop لو سمحتوا
كما اريد معرفة كيف نستطيع اختيار رقم عشوائي من مصفوفة ارقام دون تكرار رقم معين مرتين
سلام عليكم
اريد شرح عن موضوع السحب والارساء drag&drop لو سمحتوا
كما اريد معرفة كيف نستطيع اختيار رقم عشوائي من مصفوفة ارقام دون تكرار رقم معين مرتين
وعليكم السلام ورحمة الله وبركاته.
أنا الحقيقه كنت أبحث عن موضوع أكتب فيه أو أى مقاله أكتبها ومكنتش عارف أكتب في ايه :D ... سأحوال أن أكتب عنها اليوم ان شاء الله.اقتباساريد شرح عن موضوع السحب والارساء drag&drop لو سمحتوا
بالنسبه لتوليد رقم عشوائي فانت تستخدم Random وتمرر للداله Next الـ Range ... أنظر ::
كيفية انشاء رقم عشوائي random وابحث في المنتدى فيوجد أكثر من موضوع.
بالنسبة للطلب الثاني و هو اختيار رقم عشوائي من مصفوفة أرقام بدون اختيار الرقم نفسه مرتين
هناك أكثر من 100000 طريقة سأحاول شرح طريقتين منهم ان شاء الله
الأولى الطريقة السهلة البسيطة المباشرة
class Program
{
static int[] array = new int[] { 2, 4, 6, 3, 7, 19 };
static bool[] tmp = new bool[array.Length];
static void Main(string[] args)
{
for (int i = 0; i < array.Length; i++)
Console.WriteLine(GetRandomNumber());
}
static int GetRandomNumber()
{
Random rand = new Random();
int index;
do
{
index = rand.Next(array.Length);
}
while(IsRepeated(index));
setRepeated(index);
return array[index];
}
static bool IsRepeated(int index)
{
return tmp[index];
}
static void setRepeated(int index)
{
tmp[index] = true;
}
}و هذه الطريقة بسيطة جداً و لكن يعيبها أننا حجزنا Array اخر من نوع bool بنفس حجم الArray الأساسي ....
هناك طريقة أخرى يمكن استخدامها في حالة أن الarray الأساسي لن يتم استخدامه بعد ذلك أي أن الData المخزنة فيه ليست ذات أهمية بعد تنفيذ العملية
class Program
{
static int[] array = new int[] { 2, 4, 6, 3, 7, 19 };
//static bool[] tmp = new bool[array.Length];
static void Main(string[] args)
{
for (int i = 0; i < array.Length; i++)
Console.WriteLine(GetRandomNumber());
}
static int GetRandomNumber()
{
Random rand = new Random();
int index;
do
{
index = rand.Next(array.Length);
}
while(IsRepeated(index));
int value = array[index];
setRepeated(index);
return value;
}
static bool IsRepeated(int index)
{
//return tmp[index];
return (array[index] == int.MinValue);
}
static void setRepeated(int index)
{
array[index] = int.MinValue;
}
}و ستلاحظ هنا أننا لم نستخدم Array اخر و سيتم تنفيذ البرنامج بنفس سرعة تنفيذ البرنامج الأول و لكن خسرنا المعلومات المخزنة في ال Array
Sr. Software Development Engineer
Hulu, LLC
My Blogs
هذا الموضوع مغلق.