منتدى رياض الجنة - Riad Al-Ganah

منتدى رياض الجنة - Riad Al-Ganah (https://montada.khaledbelal.com/index.php)
-   دورة .NET 2008 من منتدى فيجوال بيسك للعرب (https://montada.khaledbelal.com/forumdisplay.php?f=57)
-   -   الدرس الثامن : المصفوفات .net 2008 (https://montada.khaledbelal.com/showthread.php?t=521)

khaledbelal 02-18-2010 04:01 PM

الدرس الثامن : المصفوفات .net 2008
 
بسم الله الرحمن الرحيم .

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

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

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

C#:
كود PHP:

int [] intarray = new int[5]; 

VB.net:
كود PHP:

Dim intarray As Integer() = New Integer(4

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

C#:
كود PHP:

Console.WriteLine(intarray[3]); 

Vb.net:
كود PHP:

Console.WriteLine(intarray(3)) 

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

C#:
كود PHP:

for (int i=0;i<5;i++)
Console.WriteLine(intarray[i]); 

VB.net:
كود PHP:

 
For As Integer 0 To 4 
    Console
.WriteLine(intarray(i)) 
Next 

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

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

C#:
كود PHP:

array[0]=15;
array[
1]=20;
array[
2]=13

VB.net:
كود PHP:

array(0) = 15 
array(1) = 20 
array(2) = 13 

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

C#:
كود PHP:

 
int
[] intarray = new int[] { 152013 }; 

VB.net:
كود PHP:

Dim intarray As Integer() = New Integer() {152013

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

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

C#:
كود PHP:

int matrix = new int[3,3]; 

VB.net:
كود PHP:

Dim matrix As Integer = New Integer(22

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

0 0 0
0 0 0
0 0 0

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

C#:
كود PHP:

matrix[1,2]=20

VB.net:
كود PHP:

matrix(12) = 20 

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

C#:
كود PHP:

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

VB.net:
كود PHP:

Dim matrix As Integer = New Integer(22) {} 
For 
As Integer 0 To 2 
    
For As Integer 0 To 2 
        matrix
(ij) = Console.ReadLine() 
    
Next 
Next 

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


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

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

C#:
كود PHP:

int[][] complexarray = new int[5][];
VB.net

كود PHP:

Dim complexarray As Integer()() = New Integer(4)() 

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

C#:
كود PHP:

Console.WriteLine(complexarray[1][4]); 

VB.net:
كود PHP:

Console.WriteLine(complexarray(1)(4)) 

وهذا ما يعني العنصر رقم 4 من المصفوفة الأولى في المصفوفة complexarray

ارسال واستقبال المصفوفات من وإلى الدوال :

بعد مراجعتك للدرس التالي الخاص بالدوال واستقبال البارميترس :
http://vb4arab.com/vb/showthread.php?t=10165

يمكنك عمل دالة لطباعة محتويات مصفوفة بالشكل التالي :
C#:
كود PHP:

static void print(int[] arr)
{
for (
int i 0arr.Lengthi++)
Console.WriteLine(arr[0]);


VB.net:
كود PHP:

Private Shared Sub print(ByVal arr As Integer()) 
    For 
As Integer 0 To arr.Length 
        Console
.WriteLine(arr(0)) 
    
Next 
End Sub 

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

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

C#:
كود PHP:

static int [] read()
{
int []arr=new int[3];
for (
int i=0;i<3;i++)
arr[i]=Console.Read();


VB.net:
كود PHP:

Private Shared Function read() As Integer() 
  
    
Dim arr As Integer() = New Integer(2) {} 
    For 
As Integer 0 To 2 
        arr
(i) = Console.Read() 
    
Next 
End 
Function 

خصائص المصفوفات الرئيسية :

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

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

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

والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .


الساعة الآن 10:29 AM.

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

a.d - i.s.s.w