تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثامن : المصفوفات
#1
منقول من المنتدى القديم
كاتب المقال احمد جمال المشرف العام
تاريخ كتابة المقال
بسم الله الرحمن الرحيم .

في هذا الدرس سوف نتعرف على المصفوفات وكيفية استخدامها وتعريفها .

ما هي المصفوفات Arrays :

المصفوفة هي عبارة عن سلسلة من البيانات من نفس النوع ، لتعريف Array من الارقام طولها 5 عناصر نكتب الكود التالي :

C#:
كود :
int [] intarray = new int[5];

VB.net:

كود :
Dim intarray As Integer() = New Integer(4)

يبدأ الترقيم في المصفوفات من الصفر وحتى 4 ، لقراءة احد عناصر المصفوفة نكتب كود مثل التالي :

C#:
كود :
Console.WriteLine(intarray[3]);

Vb.net:

كود :
Console.WriteLine(intarray(3))

ولقراءة جميع العناصر يمكن استخدام حلقات التكرار بالشكل التالي :

C#:
كود :
for (int i=0;i<5;i++)
Console.WriteLine(intarray[i]);

VB.net:

كود :
For i As Integer = 0 To 4
    Console.WriteLine(intarray(i))
Next
الرد }}}
تم الشكر بواسطة:
#2
منقول من المنتدى القديم
كاتب المقال احمد جمال المشرف العام

تكوين المصفوفات :

الطريقة الاسهل لادخال البيانات إلى المصفوفة بالشكل التالي مثلاً :

C#:
كود :
array[0]=15;
array[1]=20;
array[2]=13;

VB.net:

كود :
array(0) = 15
array(1) = 20
array(2) = 13

أو عن طريق حلقة تكرار ايضاً ، إلا ان هناك طريقة أخرى لادخال البيانات إلى المصفوفة بالشكل التالي مثلاً :

C#:
كود :
int[] intarray = new int[] { 15, 20, 13 };

VB.net:
كود :
Dim intarray As Integer() = New Integer() {15, 20, 13}
الرد }}}
تم الشكر بواسطة:
#3
منقول من المنتدى القديم
كاتب المقال احمد جمال المشرف العام

المصفوفات متعددة الابعاد :

جميع المصفوفات السابقة هي مصفوفات احادية البعد one dimensional ، هناك انواع اخرى من المصفوفات ثنائية او متعددة الابعاد Multi dimensional ، هذا مثال على مصفوفة ثنائية الابعاد - تسمى باسم Matrix - :

C#:
كود :
int matrix = new int[3,3];

VB.net:

كود :
Dim matrix As Integer = New Integer(2, 2)

سيكون شكل المصفوفة بالشكل التالي (افتراضي) :

0 0 0
0 0 0
0 0 0

ويمكن ادخال البيانات إلى نقطة من المصفوفة بالشكل التالي :

C#:
كود :
matrix[1,2]=20;

VB.net:

كود :
matrix(1, 2) = 20

يمكن عمل حلقة تكرار لادخال البيانات ، وليكن عن طريق المستخدم بالشكل التالي مثلاً :

C#:

كود :
int matrix = new int[3, 3];
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
matrix[i,j]=Console.ReadLine();

VB.net:

كود :
Dim matrix As Integer = New Integer(2, 2) {}
For i As Integer = 0 To 2
    For j As Integer = 0 To 2
        matrix(i, j) = Console.ReadLine()
    Next
Next

والطباعة بنفس الشكل ايضاً .


عمل مصفوفة من المصفوفات :

يمكن عمل مصفوفة يحتوي كل عنصر منها على مصفوفة بالشكل التالي :

C#:
كود :
int[][] complexarray = new int[5][];

VB.net:

كود :
Dim complexarray As Integer()() = New Integer(4)()

ويمكن الوصول لأي عنصر فيها عن طريق الكود التالي مثلاً :

C#:
كود :
Console.WriteLine(complexarray[1][4]);

VB.net:
كود :
Console.WriteLine(complexarray(1)(4))

وهذا ما يعني العنصر رقم 4 من المصفوفة الأولى في المصفوفة complexarray .
الرد }}}
تم الشكر بواسطة:
#4
منقول من المنتدى القديم
كاتب المقال احمد جمال المشرف العام
ارسال واستقبال المصفوفات من وإلى الدوال :

بعد مراجعتك للدرس التالي الخاص بالدوال واستقبال البارميترس :

http://vb4arb.com/vb/showthread.php?1313...1%D8%D1%DE

يمكنك عمل دالة لطباعة محتويات مصفوفة بالشكل التالي :
C#:
كود :
static void print(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
Console.WriteLine(arr[0]);
}

VB.net:

كود :
Private Shared Sub print(ByVal arr As Integer())
    For i As Integer = 0 To arr.Length - 1
        Console.WriteLine(arr(0))
    Next
End Sub

لا تنسى طبعاً انه يتم التعامل معها byref افتراضياً ، لذا أي تعديل في الدالة سيؤثر على المصفوفة الأساسية .

في حالة كون ال array هي ما نود اعادته من الدالة return ، نكتب الكود بالشكل التالي :

C#:
كود :
static int [] read()
{
int []arr=new int[3];
for (int i=0;i<3;i++)
arr[i]=Console.Read();
}

VB.net:
كود :
Private Shared Function read() As Integer()
  
    Dim arr As Integer() = New Integer(2) {}
    For i As Integer = 0 To 2
        arr(i) = Console.Read()
    Next
End Function
الرد }}}
تم الشكر بواسطة:
#5
خصائص المصفوفات الرئيسية :

تحتوي المصفوفات على بعض خصائص ودوال قد تساعدك في العمل عليها ، اشهرها واكثرها استخداماً هي الخاصية Lenght والتي تحدد طول عناصر المصفوفة ، الخاصية Rank تحدد عدد الابعاد في المصفوفة .

الدالة Sort تقوم بترتيب عناصر المصفوفة Reverse تقوم بعكس ترتيب عناصر المصفوفة ، وأخيراً الدالة ToString لتحويل المصفوفة إلى متغير نصي .

إلى هنا نكون قد انتهينا من درس المصفوفات ، نواصل مع دروس أخرى قادمة .

والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .
الرد }}}
تم الشكر بواسطة:



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


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