تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس 6- المصفوفات والتعامل معها وشرح التراكيب Structures
#1
كاتب الموضوع : 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]

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

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

إلى اللقاء في الدرس القادم إن شاء الله....
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس 22- دوال sql server RaggiTech 0 1,049 18-10-12, 04:11 PM
آخر رد: RaggiTech
  الدرس 21- Stored Procedures RaggiTech 0 929 18-10-12, 04:09 PM
آخر رد: RaggiTech
  الدرس 20- تنفيذ جمل الإستعلام insert-update-delete RaggiTech 2 969 18-10-12, 04:08 PM
آخر رد: RaggiTech
  الدرس 19- ربط قاعدة بيانات accessمع c#-vb.net وتنفيذ جمل إستعلام - الوضع المتصل RaggiTech 0 1,317 18-10-12, 03:41 PM
آخر رد: RaggiTech
  الدرس 18- ربط قاعدة بيانات sql مع c#-vb.net وتنفيذ جمل إستعلام - الوضع المتصل RaggiTech 0 2,471 18-10-12, 03:29 PM
آخر رد: RaggiTech
  الدرس 17- مقدمة إلى قواعد البيانات RaggiTech 0 738 18-10-12, 03:21 PM
آخر رد: RaggiTech
  الدرس 16- تصميم الأدوات الخاصة RaggiTech 0 702 18-10-12, 03:20 PM
آخر رد: RaggiTech
  الدرس 15- البداية مع gdi+ RaggiTech 1 752 18-10-12, 03:16 PM
آخر رد: RaggiTech
  الدرس 14- شرح تقنية ال wpf مع بعض الأمثلة RaggiTech 4 1,102 18-10-12, 03:12 PM
آخر رد: RaggiTech
  الدرس 13- Multi-Threading RaggiTech 0 772 18-10-12, 03:03 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم