عرض مشاركة واحدة
  #1  
قديم 12-28-2009, 07:59 AM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
Icon13 الدرس 6: المصفوفات Arrays والتعامل معها وشرح التراكيب Structures

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

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


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

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

كود PHP:
int[] MyArr = new int[50]; 
حيث يكون في الكود هذا لدينا مصفوفة بالأسم MyArr تحوي على 50 حقل حيث يمكنك تعبئت حقولها على الشكل:

كود PHP:
MyArr[0] = 5
هنا أصبحت الخانة الأولى للمصفوفة = 5

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

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

كود PHP:
     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 ما يلي:

كود PHP:
      int[] MyArr = new int[26];
            for (
int x 0;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- المصفوفات متعددة الأبعاد

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

كود PHP:
int[,] MyArr = new int[5,5]; 
فمثلا بالمصفوفة التي تم تعريفها في الأعلى ( Arr وليس matrix )
في الواقع هي تحتوي على 25 خانة

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

كود PHP:
foreach (int x in MyArr)
{
MessageBox.Show(x.ToString());

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


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

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

كود PHP:
namespace WindowsFormsApplication6
{
هنا ممكن
    
public partial class Form1 Form
    
{
  
هنا ممكن
        
public Form1()
        {
            
InitializeComponent();
            
هنا لا يمكن
        
}
 
        private 
void button1_Click(object senderEventArgs e)
        {
هنا غير ممكن
        
}
هنا ممكن
    
}

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

مثال :

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

كود PHP:
   struct Book
    
{
       public 
string BookName;
       public 
int BookPrice;
       public 
string BookWriter;
    } 
والان جرب في أمر جديد تعريف متغير ككتاب:

كود PHP:
  private void mybooktest()
        {
            
Book Mybook = new Book();
            
Mybook.BookName "C# ********";
            
Mybook.BookPrice 200;
            
Mybook.BookWriter "tarek aldwire";
        } 
والان سوف نرى كيف يمكن إنشاء دوال داخل ال struct

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

كود PHP:
 struct Book
    
{
       public 
string BookName;
       public 
int BookPrice;
       public 
string BookWriter;
       public 
void RenameBook(string NewName)
       {
           
BookName NewName;
       }
    } 

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

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

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

منقووووووول


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس