الاثنين، 15 يوليو 2013

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


دورة السي شارب
الدرس 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;
       }
    } 

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


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

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

إرسال تعليق