18-10-12, 01:54 PM
كاتب الموضوع : Tarek Aldwire
السلام عليكم ورحمة اللهالمصفوفات:
أولا كيف يتم تعريف المصفوفات:
1- المصفوفات أحادية البعد:
يتم تعريف المصفوفات أحادية البعد على الشكل:
كود :
[color=#000000][COLOR=#0000bb]int[/color][color=#007700][] [/color][color=#0000bb]MyArr [/color][color=#007700]= new [/color][color=#0000bb]int[/color][color=#007700][[/color][color=#0000bb]50[/color][COLOR=#007700]];
[/COLOR][color=#0000bb][/color][/COLOR]
حيث يكون في الكود هذا لدينا مصفوفة بالأسم MyArr تحوي على 50 حقل حيث يمكنك تعبئت حقولها على الشكل:
كود :
[color=#000000][COLOR=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]] = [/color][color=#0000bb]5[/color][COLOR=#007700];
[/COLOR][color=#0000bb][/color][/COLOR]
هنا أصبحت الخانة الأولى للمصفوفة = 5
جرب معي المثال التالي:
أولا عرف المصفوفة كما فعلنا أعلاه وأبقيها على نفس الإسم ولكن حدد خاناتها ب 5 كالتالي:
كود :
[color=#000000][COLOR=#0000bb]int[/color][color=#007700][] [/color][color=#0000bb]MyArr [/color][color=#007700]= new [/color][color=#0000bb]int[/color][color=#007700][[/color][color=#0000bb]5[/color][COLOR=#007700]];
[/COLOR][color=#0000bb][/color][/COLOR]
أنتبه هنا الخانة MyArr[5] خارج مجال المصفوفة وذلك لأن العد يبدأ من الصفر
والان ضع Button وفي الحدث Click الخاص به أكتب:
كود :
[color=#000000][COLOR=#0000bb] int[/color][color=#007700][] [/color][color=#0000bb]MyArr [/color][color=#007700]= new [/color][color=#0000bb]int[/color][color=#007700][[/color][color=#0000bb]5[/color][COLOR=#007700]];
[/COLOR][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]] = [/color][color=#0000bb]1[/color][COLOR=#007700];
[/COLOR][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]] = [/color][color=#0000bb]2[/color][COLOR=#007700];
[/COLOR][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]2[/color][color=#007700]] = [/color][color=#0000bb]3[/color][COLOR=#007700];
[/COLOR][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]3[/color][color=#007700]] = [/color][color=#0000bb]4[/color][COLOR=#007700];
[/COLOR][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]4[/color][color=#007700]] = [/color][color=#0000bb]5[/color][COLOR=#007700];
[/COLOR][color=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]].[/color][color=#0000bb]ToString[/color][color=#007700]() + [/color][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]] + [/color][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]2[/color][color=#007700]] + [/color][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]3[/color][color=#007700]] + [/color][color=#0000bb]MyArr[/color][color=#007700][[/color][color=#0000bb]4[/color][COLOR=#007700]]);
[/COLOR][color=#0000bb][/color][/COLOR]
ولاحظ...
قد ظهرت رسالة كتب بها 12345 وذلك لأننا قمنا باستدعاء كل من خانات المصفوفة على التتالي
بعد تحديد القيمة لكل واحدة منهم...
مثال: ( هنا سوف نستخدم الحلقة التكرارية for إذا كنت لا تعرفها فقد تم شرحها في الدرس 5)
ضع Button و TextBox واكتب في الحدث Click لل Button ما يلي:
كود :
[color=#000000][COLOR=#0000bb] int[/color][color=#007700][] [/color][color=#0000bb]MyArr [/color][color=#007700]= new [/color][color=#0000bb]int[/color][color=#007700][[/color][color=#0000bb]26[/color][COLOR=#007700]];
for ([/COLOR][color=#0000bb]int x [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]x [/color][color=#007700]< [/color][color=#0000bb]26[/color][color=#007700];[/color][color=#0000bb]x[/color][COLOR=#007700]++)
{
[/COLOR][color=#0000bb]MyArr [/color][color=#007700][[/color][color=#0000bb]x[/color][color=#007700]] = [/color][color=#0000bb]x[/color][COLOR=#007700];
}
foreach ([/COLOR][color=#0000bb]int x in Arr[/color][COLOR=#007700])
{
[/COLOR][color=#0000bb]textBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]+= [/color][color=#dd0000]" " [/color][color=#007700]+ [/color][color=#0000bb]x[/color][color=#007700].[/color][color=#0000bb]ToString[/color][COLOR=#007700]();
}
[/COLOR][color=#0000bb][/color][/COLOR]
جرب الكود ولاحظ
سوف تكون النتيجة أن ال textBox1 أصبح بداخله كالتالي:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
شرح الكود:
أولا قمنا بتعريف مصفوفة
ثانيا:
في حلقة التكرار كان المتغير x يزيد 1 في كل مرة ينفذ فيها الكود
وكانت الخانة الموافقة للمتغير x في المصفوفة MyArr تصبح تساوي x
مما سوف يشكل لنا في النهاية أن خانات MyArr سوف تكون من 0 إلى 25
وهذا ما حصل...
_____________________ المصفوفات متعددة الأبعاد _____________________________
يتم تعريف هذا النوع من المصفوفات كالتالي:
كود :
[color=#000000][COLOR=#0000bb]int[/color][color=#007700][,] [/color][color=#0000bb]MyArr [/color][color=#007700]= new [/color][color=#0000bb]int[/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700],[/color][color=#0000bb]5[/color][COLOR=#007700]];
[/COLOR][color=#0000bb][/color][/COLOR]
فمثلا بالمصفوفة التي تم تعريفها في الأعلى ( Arr وليس matrix )
في الواقع هي تحتوي على 25 خانة
يتم القراءة من المصفوفات عن طريق الحلقة التكرارية foreach
على الشكل:
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]foreach ([/color][color=#0000bb]int x in MyArr[/color][COLOR=#007700])
{
[/COLOR][color=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#0000bb]x[/color][color=#007700].[/color][color=#0000bb]ToString[/color][COLOR=#007700]());
}
[/COLOR][color=#0000bb][/color][/COLOR]
خصائص المصفوفات:
Rank : تحدد عدد الأبعاد في المصفوفة
ToString : تحويل المصفوفة إلى متغير من نوع String كما ورد في الدروس السابقة
Reverse : تقوم بعكس العناصر التي في داخل المصفوفة
Sort : ترتيب عناصر المصفوفة
Length : تحديد طول عناصر المصفوفة
أظن أنه قد أصبح لديك معلومات جيدة عن المصفوفات والتعامل معها والان لنبدأ بالقسم الثاني من الدرس وهو :
_____________________________ التراكيب Structures ________________________
إن ال Structures تسهل كثيرا من العمل في حال كنا نود إضافة كائنات جديدة مثل تعريف نوع بإسم
(كتاب)
ملاحظة : لا تكتب ال Structures في داخل أمر ما وإنما تكتب في داخل Classes أو NameSpaces
يعني سوف نكتب ال Structures:
كود :
[COLOR=#000000][COLOR=#0000bb]namespace WindowsFormsApplication6
[/COLOR][COLOR=#007700]{
[/COLOR][COLOR=#0000bb]هنا ممكن
[/COLOR][color=#007700]public [/color][color=#0000bb]partial [/color][color=#007700]class [/color][color=#0000bb]Form1 [/color][color=#007700]: [/color][COLOR=#0000bb]Form
[/COLOR][COLOR=#007700]{
[/COLOR][COLOR=#0000bb]هنا ممكن
[/COLOR][color=#007700]public [/color][color=#0000bb]Form1[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]InitializeComponent[/color][COLOR=#007700]();
[/COLOR][COLOR=#0000bb]هنا لا يمكن
[/COLOR][COLOR=#007700]}
private [/COLOR][color=#0000bb]void button1_Click[/color][color=#007700]([/color][color=#0000bb]object sender[/color][color=#007700], [/color][color=#0000bb]EventArgs e[/color][COLOR=#007700])
{
[/COLOR][COLOR=#0000bb]هنا غير ممكن
[/COLOR][COLOR=#007700]}
[/COLOR][COLOR=#0000bb]هنا ممكن
[/COLOR][COLOR=#007700]}
}
[/COLOR][color=#0000bb][/color][/COLOR]
وحتى لو كتبتها بعد ما تم إستيراد المجالات ممكن ولو كانت خارج ال NameSpace الخاص بالرنامج !!!
مثال :
قم بكتابة struct كالتالي:
كود :
[COLOR=#000000][COLOR=#0000bb] struct Book
[/COLOR][COLOR=#007700]{
public [/COLOR][color=#0000bb]string BookName[/color][COLOR=#007700];
public [/COLOR][color=#0000bb]int BookPrice[/color][COLOR=#007700];
public [/COLOR][color=#0000bb]string BookWriter[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
والان جرب في أمر جديد تعريف متغير ككتاب:
كود :
[color=#000000][COLOR=#0000bb] [/color][color=#007700]private [/color][color=#0000bb]void mybooktest[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]Book Mybook [/color][color=#007700]= new [/color][color=#0000bb]Book[/color][COLOR=#007700]();
[/COLOR][color=#0000bb]Mybook[/color][color=#007700].[/color][color=#0000bb]BookName [/color][color=#007700]= [/color][color=#dd0000]"C# Language"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]Mybook[/color][color=#007700].[/color][color=#0000bb]BookPrice [/color][color=#007700]= [/color][color=#0000bb]200[/color][COLOR=#007700];
[/COLOR][color=#0000bb]Mybook[/color][color=#007700].[/color][color=#0000bb]BookWriter [/color][color=#007700]= [/color][color=#dd0000]"tarek aldwire"[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
والان سوف نرى كيف يمكن إنشاء دوال داخل ال struct
سوف نأخذ المثال السابق بعد التعديل إنظر كيف سوف يصبح:
كود :
[COLOR=#000000][COLOR=#0000bb] struct Book
[/COLOR][COLOR=#007700]{
public [/COLOR][color=#0000bb]string BookName[/color][COLOR=#007700];
public [/COLOR][color=#0000bb]int BookPrice[/color][COLOR=#007700];
public [/COLOR][color=#0000bb]string BookWriter[/color][COLOR=#007700];
public [/COLOR][color=#0000bb]void RenameBook[/color][color=#007700]([/color][color=#0000bb]string NewName[/color][COLOR=#007700])
{
[/COLOR][color=#0000bb]BookName [/color][color=#007700]= [/color][color=#0000bb]NewName[/color][COLOR=#007700];
}
}
[/COLOR][color=#0000bb][/color][/COLOR]
حيث هنا أصبح بإمكاننا إعادة تسمية الكتاب...
قمت بعمل مثال تجده في المرفقات...
إلى اللقاء في الدرس القادم إن شاء الله....