khaledbelal
02-18-2010, 04:01 PM
بسم الله الرحمن الرحيم .
في هذا الدرس سوف نتعرف على المصفوفات وكيفية استخدامها وتعريفها .
ما هي المصفوفات 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
تكوين المصفوفات :
الطريقة الاسهل لادخال البيانات إلى المصفوفة بالشكل التالي مثلاً :
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}
المصفوفات متعددة الابعاد :
جميع المصفوفات السابقة هي مصفوفات احادية البعد 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
ارسال واستقبال المصفوفات من وإلى الدوال :
بعد مراجعتك للدرس التالي الخاص بالدوال واستقبال البارميترس :
http://vb4arab.com/vb/showthread.php?t=10165
يمكنك عمل دالة لطباعة محتويات مصفوفة بالشكل التالي :
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
خصائص المصفوفات الرئيسية :
تحتوي المصفوفات على بعض خصائص ودوال قد تساعدك في العمل عليها ، اشهرها واكثرها استخداماً هي الخاصية Lenght والتي تحدد طول عناصر المصفوفة ، الخاصية Rank تحدد عدد الابعاد في المصفوفة .
الدالة Sort تقوم بترتيب عناصر المصفوفة Reverse تقوم بعكس ترتيب عناصر المصفوفة ، وأخيراً الدالة ToString لتحويل المصفوفة إلى متغير نصي .
إلى هنا نكون قد انتهينا من درس المصفوفات ، نواصل مع دروس أخرى قادمة .
والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .
في هذا الدرس سوف نتعرف على المصفوفات وكيفية استخدامها وتعريفها .
ما هي المصفوفات 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
تكوين المصفوفات :
الطريقة الاسهل لادخال البيانات إلى المصفوفة بالشكل التالي مثلاً :
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}
المصفوفات متعددة الابعاد :
جميع المصفوفات السابقة هي مصفوفات احادية البعد 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
ارسال واستقبال المصفوفات من وإلى الدوال :
بعد مراجعتك للدرس التالي الخاص بالدوال واستقبال البارميترس :
http://vb4arab.com/vb/showthread.php?t=10165
يمكنك عمل دالة لطباعة محتويات مصفوفة بالشكل التالي :
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
خصائص المصفوفات الرئيسية :
تحتوي المصفوفات على بعض خصائص ودوال قد تساعدك في العمل عليها ، اشهرها واكثرها استخداماً هي الخاصية Lenght والتي تحدد طول عناصر المصفوفة ، الخاصية Rank تحدد عدد الابعاد في المصفوفة .
الدالة Sort تقوم بترتيب عناصر المصفوفة Reverse تقوم بعكس ترتيب عناصر المصفوفة ، وأخيراً الدالة ToString لتحويل المصفوفة إلى متغير نصي .
إلى هنا نكون قد انتهينا من درس المصفوفات ، نواصل مع دروس أخرى قادمة .
والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .