CSHARPWINDOWSFORM Telegram 252
بسم الله الرحمن الرحيم



موضوع اليوم : شرح الكلاس Random

الكلاس Random (عشوائي)
يستخدم لتوليد القيم العشوائية (اعداد , نصوص , الوان) وغيرها من القيم
سوف نشرح اليوم كيف تستخدم هذا الكلاس
سوف نبدأ بالامثلة السهله ومن ثم نشرح بعض الأمثلة المتقدمة

يتم انشاء اوبجكت من الكلاس Random
Random rand = new Random();

المثال الأول :
في هذا المثال سنقوم بعمل مصفوفه ارقام ومن ثم نقوم بطباعة عدد غير محدد أي بشكل عشوائي في دالة الحدث Click للButton
private void button1_Click(object sender, EventArgs e)
{
Random rand = new Random();
int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };
MessageBox.Show(rand.Next(0, arr.Length).ToString());

}

شرح المثال :
بعد ان قمنا بإنشاء اوبجكت عشوائي انشئنا مصفوفة تحوي 6 عناصر
ومن ثم قمنا بالطباعة لاحظ اننا استخدمنا الاوبجكت rand لكي نستخدم الدالة التابعة له next هذه الدالة تأخذ وسيطين الأول اصغر قيمه والثاني اكبر قيمه,
أي نقوم بحصر القيم التي سوف يتم اختيارها بشكل عشوائي فمثلاً لو قمنا بتغيير سطر الطباعة بهذا الشكل :
MessageBox.Show(rand.Next(2, arr.Length).ToString());
لاحظ اننا قمنا بتغيير قيمه الوسيط الأول الى 2 في هذه الحالة سوف يتم استبعاد العناصر 0 و 1 أي لن يتم اختيارهن بين القيم التي سوف يتم طباعتها بشكل عشوائي .


ايضاً لو تلاحظ في الأمثلة السابقة سوف يتم استبعاد العنصر الأخير الرقم 6 ,
ولكي تقوم بحصر جميع القيم في مصفوفة .
MessageBox.Show(rand.Next(0, arr.Length+1).ToString());
ايضاً تستطيع ان تقوم بطباعة قيمه من بين عده قيمه بدون ان تقوم بعمل مصفوفة فقط تقوم بإنشاء اوبجكت عشوائي ومن ثم تحدد من اين يبدا توليد القيمة وأين ينتهي .
مثال :
private void button1_Click(object sender, EventArgs e)
{

Random rand = new Random();
MessageBox.Show(rand.Next(0, 100).ToString());

}
• امثله على النصوص
ايضاص يمكنك استخدام الكلاس Random لاختيار قيم عشوائيه من مصفوفة string كما في المثال التالي

private void button1_Click(object sender, EventArgs e)
{
Random rand = new Random();
string[] str = new string[] { "C#", "C++", "Java", "C", "PHP"};
string s = str[rand.Next(0, str.Length)];
MessageBox.Show(s);

}

او كما في الكود التالي
private void button1_Click(object sender, EventArgs e)
{

Random rand = new Random();
string[] str = new string[] { "C#", "C++", "Java", "C", "PHP"};
int index = rand.Next(str.Length);

MessageBox.Show(str[index]);

}

امثلة متقدمة :

في المثال التالي سوف نقوم بعمل دالة تقوم بتوليد نصوص بشكل عشوائي ونقوم بإرسال للدالة طول النص الذي نريد ان تقوم بتوليد

مثال :
private static string RandomString(int length)
{
const string str = "abcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder builder = new StringBuilder();

for (int i = 0; i < length; i++)
{
string c = str[random.Next(0, str.Length)];
builder.Append(c);
}

return builder.ToString();
}
في المثال السابق قمنا بعمل متغير ثابت str يحتوي على جميع الاحرف الإنجليزية وايضاً الاعداد من 0 الى 9
ولكي تجعل الدالة تقوم بتوليد اعداد فقط قم بكتابة الاعداد من 0 الى 9
اما بالنسبة للكلاس StringBuilderسوف نوضحه في نهاية الموضوع وما الفرق بينه وبين الكلاس string

الان نستدعي الدالة من دالة الحدث Click
بهذه الطريقة :
private void button1_Click(object sender, EventArgs e)
{
label1.Text = RandomString(5);
MessageBox.Show(RandomString(5));


}

لاحظ انهو تم إضافة أداة lable كي يتم اسناد القيمة العشوائية لخاصية النص text الخاصة بالاداة lable



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

نقوم بعمل دالة تقوم بهذا العمل و نرسل لها مسار ملف txt
public string GetRandomLine(ref string file)
{
List<string> lines = new List<string>();
Random rnd = new Random();



tgoop.com/CsharpWindowsForm/252
Create:
Last Update:

بسم الله الرحمن الرحيم



موضوع اليوم : شرح الكلاس Random

الكلاس Random (عشوائي)
يستخدم لتوليد القيم العشوائية (اعداد , نصوص , الوان) وغيرها من القيم
سوف نشرح اليوم كيف تستخدم هذا الكلاس
سوف نبدأ بالامثلة السهله ومن ثم نشرح بعض الأمثلة المتقدمة

يتم انشاء اوبجكت من الكلاس Random
Random rand = new Random();

المثال الأول :
في هذا المثال سنقوم بعمل مصفوفه ارقام ومن ثم نقوم بطباعة عدد غير محدد أي بشكل عشوائي في دالة الحدث Click للButton
private void button1_Click(object sender, EventArgs e)
{
Random rand = new Random();
int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };
MessageBox.Show(rand.Next(0, arr.Length).ToString());

}

شرح المثال :
بعد ان قمنا بإنشاء اوبجكت عشوائي انشئنا مصفوفة تحوي 6 عناصر
ومن ثم قمنا بالطباعة لاحظ اننا استخدمنا الاوبجكت rand لكي نستخدم الدالة التابعة له next هذه الدالة تأخذ وسيطين الأول اصغر قيمه والثاني اكبر قيمه,
أي نقوم بحصر القيم التي سوف يتم اختيارها بشكل عشوائي فمثلاً لو قمنا بتغيير سطر الطباعة بهذا الشكل :
MessageBox.Show(rand.Next(2, arr.Length).ToString());
لاحظ اننا قمنا بتغيير قيمه الوسيط الأول الى 2 في هذه الحالة سوف يتم استبعاد العناصر 0 و 1 أي لن يتم اختيارهن بين القيم التي سوف يتم طباعتها بشكل عشوائي .


ايضاً لو تلاحظ في الأمثلة السابقة سوف يتم استبعاد العنصر الأخير الرقم 6 ,
ولكي تقوم بحصر جميع القيم في مصفوفة .
MessageBox.Show(rand.Next(0, arr.Length+1).ToString());
ايضاً تستطيع ان تقوم بطباعة قيمه من بين عده قيمه بدون ان تقوم بعمل مصفوفة فقط تقوم بإنشاء اوبجكت عشوائي ومن ثم تحدد من اين يبدا توليد القيمة وأين ينتهي .
مثال :
private void button1_Click(object sender, EventArgs e)
{

Random rand = new Random();
MessageBox.Show(rand.Next(0, 100).ToString());

}
• امثله على النصوص
ايضاص يمكنك استخدام الكلاس Random لاختيار قيم عشوائيه من مصفوفة string كما في المثال التالي

private void button1_Click(object sender, EventArgs e)
{
Random rand = new Random();
string[] str = new string[] { "C#", "C++", "Java", "C", "PHP"};
string s = str[rand.Next(0, str.Length)];
MessageBox.Show(s);

}

او كما في الكود التالي
private void button1_Click(object sender, EventArgs e)
{

Random rand = new Random();
string[] str = new string[] { "C#", "C++", "Java", "C", "PHP"};
int index = rand.Next(str.Length);

MessageBox.Show(str[index]);

}

امثلة متقدمة :

في المثال التالي سوف نقوم بعمل دالة تقوم بتوليد نصوص بشكل عشوائي ونقوم بإرسال للدالة طول النص الذي نريد ان تقوم بتوليد

مثال :
private static string RandomString(int length)
{
const string str = "abcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder builder = new StringBuilder();

for (int i = 0; i < length; i++)
{
string c = str[random.Next(0, str.Length)];
builder.Append(c);
}

return builder.ToString();
}
في المثال السابق قمنا بعمل متغير ثابت str يحتوي على جميع الاحرف الإنجليزية وايضاً الاعداد من 0 الى 9
ولكي تجعل الدالة تقوم بتوليد اعداد فقط قم بكتابة الاعداد من 0 الى 9
اما بالنسبة للكلاس StringBuilderسوف نوضحه في نهاية الموضوع وما الفرق بينه وبين الكلاس string

الان نستدعي الدالة من دالة الحدث Click
بهذه الطريقة :
private void button1_Click(object sender, EventArgs e)
{
label1.Text = RandomString(5);
MessageBox.Show(RandomString(5));


}

لاحظ انهو تم إضافة أداة lable كي يتم اسناد القيمة العشوائية لخاصية النص text الخاصة بالاداة lable



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

نقوم بعمل دالة تقوم بهذا العمل و نرسل لها مسار ملف txt
public string GetRandomLine(ref string file)
{
List<string> lines = new List<string>();
Random rnd = new Random();

BY برمجة تطبيقات الويندوز C# Programming


Share with your friend now:
tgoop.com/CsharpWindowsForm/252

View MORE
Open in Telegram


Telegram News

Date: |

Content is editable within two days of publishing It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. More>> Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN.
from us


Telegram برمجة تطبيقات الويندوز C# Programming
FROM American