العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > روضة دورات لغة الـ CSharp > دورة CSharp 2008 من منتدى فيجوال بيسك للعرب

دورة CSharp 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : الأخ طارق الدويري . حالة الدورة : متوقفة مؤقتاً . عدد الدروس حتى الآن : 23 درس

إضافة رد

  #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}).
سورة الأعراف.

رد مع اقتباس
  #2  
قديم 10-29-2010, 07:32 PM
الصورة الرمزية ماريا إسلام
ماريا إسلام ماريا إسلام غير متواجد حالياً

عضو متألق

 
تاريخ التسجيل: Oct 2010
العمر: 35
المشاركات: 268
افتراضي

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

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

بالتوفيق ،،

//


توقيع : ماريا إسلام

ربي هذا العهد لك ... عزم القلب الوفا

تستطيع أن ترى الصورة بحجمها الطبيعي بعد الضغط عليها

تستطيع أن ترى الصورة بحجمها الطبيعي بعد الضغط عليها

صفحتي على الفيسبوك!

رد مع اقتباس
إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

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

استضافة الحياة

الساعة الآن 02:25 PM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz