المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس 6: المصفوفات Arrays والتعامل معها وشرح التراكيب Structures


khaledbelal
12-28-2009, 07:59 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

الدرس 6: المصفوفات Arrays والتعامل معها وشرح التراكيب Structures

المصفوفات:
أولا كيف يتم تعريف المصفوفات:

1- المصفوفات أحادية البعد:
يتم تعريف المصفوفات أحادية البعد على الشكل:

int[] MyArr = new int[50];

حيث يكون في الكود هذا لدينا مصفوفة بالأسم MyArr تحوي على 50 حقل حيث يمكنك تعبئت حقولها على الشكل:

MyArr[0] = 5;

هنا أصبحت الخانة الأولى للمصفوفة = 5

جرب معي المثال التالي:
أولا عرف المصفوفة كما فعلنا أعلاه وأبقيها على نفس الإسم ولكن حدد خاناتها ب 5 كالتالي:

int[] MyArr = new int[5];

أنتبه هنا الخانة MyArr[5] خارج مجال المصفوفة وذلك لأن العد يبدأ من الصفر
والان ضع Button وفي الحدث Click الخاص به أكتب:

int[] MyArr = new int[5];
MyArr[0] = 1;
MyArr[1] = 2;
MyArr[2] = 3;
MyArr[3] = 4;
MyArr[4] = 5;
MessageBox.Show(MyArr[0].ToString() + MyArr[1] + MyArr[2] + MyArr[3] + MyArr[4]);

ولاحظ...
قد ظهرت رسالة كتب بها 12345 وذلك لأننا قمنا باستدعاء كل من خانات المصفوفة على التتالي
بعد تحديد القيمة لكل واحدة منهم...

مثال: ( هنا سوف نستخدم الحلقة التكرارية for إذا كنت لا تعرفها فقد تم شرحها في الدرس 5)

ضع Button و TextBox واكتب في الحدث Click لل Button ما يلي:

int[] MyArr = new int[26];
for (int x = 0;x < 26;x++)
{
MyArr [x] = x;
}
foreach (int x in Arr)
{
textBox1.Text += " " + x.ToString();
}

جرب الكود ولاحظ
سوف تكون النتيجة أن ال 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
وهذا ما حصل...

2- المصفوفات متعددة الأبعاد

يتم تعريف هذا النوع من المصفوفات كالتالي:

int[,] MyArr = new int[5,5];

فمثلا بالمصفوفة التي تم تعريفها في الأعلى ( Arr وليس matrix )
في الواقع هي تحتوي على 25 خانة

يتم القراءة من المصفوفات عن طريق الحلقة التكرارية foreach
على الشكل:

foreach (int x in MyArr)
{
MessageBox.Show(x.ToString());
}

خصائص المصفوفات:
Rank : تحدد عدد الأبعاد في المصفوفة
ToString : تحويل المصفوفة إلى متغير من نوع String كما ورد في الدروس السابقة
Reverse : تقوم بعكس العناصر التي في داخل المصفوفة
Sort : ترتيب عناصر المصفوفة
Length : تحديد طول عناصر المصفوفة


أظن أنه قد أصبح لديك معلومات جيدة عن المصفوفات والتعامل معها والان لنبدأ بالقسم الثاني من الدرس وهو :
ثانيا : التراكيب Structures

إن ال Structures تسهل كثيرا من العمل في حال كنا نود إضافة كائنات جديدة مثل تعريف نوع بإسم
(كتاب)
ملاحظة : لا تكتب ال Structures في داخل أمر ما وإنما تكتب في داخل Classes أو NameSpaces
يعني سوف نكتب ال Structures:

namespace WindowsFormsApplication6
{
هنا ممكن
public partial class Form1 : Form
{
هنا ممكن
public Form1()
{
InitializeComponent();
هنا لا يمكن
}

private void button1_Click(object sender, EventArgs e)
{
هنا غير ممكن
}
هنا ممكن
}
}

وحتى لو كتبتها بعد ما تم إستيراد المجالات ممكن ولو كانت خارج ال NameSpace الخاص بالرنامج !!!

مثال :

قم بكتابة struct كالتالي:

struct Book
{
public string BookName;
public int BookPrice;
public string BookWriter;
}

والان جرب في أمر جديد تعريف متغير ككتاب:

private void mybooktest()
{
Book Mybook = new Book();
Mybook.BookName = "C# ********";
Mybook.BookPrice = 200;
Mybook.BookWriter = "tarek aldwire";
}

والان سوف نرى كيف يمكن إنشاء دوال داخل ال struct

سوف نأخذ المثال السابق بعد التعديل إنظر كيف سوف يصبح:

struct Book
{
public string BookName;
public int BookPrice;
public string BookWriter;
public void RenameBook(string NewName)
{
BookName = NewName;
}
}

حيث هنا أصبح بإمكاننا إعادة تسمية الكتاب...

قمت بعمل مثال تجده في المرفقات...

إلى اللقاء في الدرس القادم إن شاء الله....

منقووووووول

ماريا إسلام
10-29-2010, 07:32 PM
وعليكم السلام ورحمة الله

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

بالتوفيق ،،

//