الخميس، 15 أغسطس 2013


الدرس 6- المصفوفات والتعامل معها وشرح التراكيب 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

 وهذا ما حصل...

 

 _____________________ المصفوفات متعددة الأبعاد _____________________________

 

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

 

 

كود:

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# Language";

            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;

       }

    } 

 

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

 

 

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

ليست هناك تعليقات:

إرسال تعليق