درس في المصفوفات
2 مشترك
صفحة 1 من اصل 1
درس في المصفوفات
السلام عليكم ورحمة الله
المصفوفات:
أولا كيف يتم تعريف المصفوفات:
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;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
وهذا ما حصل...
_____________________ المصفوفات متعددة الأبعاد _____________________________
يتم تعريف هذا النوع من المصفوفات كالتالي:
الرمز 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 sender, EventArgs 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# Language";
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;
}
}
حيث هنا أصبح بإمكاننا إعادة تسمية الكتاب...
إلى اللقاء في الدرس القادم إن شاء الله....
المصفوفات:
أولا كيف يتم تعريف المصفوفات:
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;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
وهذا ما حصل...
_____________________ المصفوفات متعددة الأبعاد _____________________________
يتم تعريف هذا النوع من المصفوفات كالتالي:
الرمز 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 sender, EventArgs 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# Language";
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;
}
}
حيث هنا أصبح بإمكاننا إعادة تسمية الكتاب...
إلى اللقاء في الدرس القادم إن شاء الله....
مس روبن- علم بلادك :
عدد المساهمات : 145
شكر : 1
تاريخ التسجيل : 03/06/2009
العمر : 33
بطاقة الشخصية
sms:
نقاط القوة:
(100/500)
رد: درس في المصفوفات
لو سمحت انا عندى مصفوفتين الاولى بتدخل id والتانى الدرجات ثم رتبت الدرجات وعلى اساس ترتيب الدرجات انا عايزه ارتب id
سهام محمد محمد- علم بلادك :
عدد المساهمات : 1
شكر : 0
تاريخ التسجيل : 15/04/2013
البلد : مصر
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى