الأحد، 9 يوليو 2017

استخدام المصفوفات فى الفيجوال بيسك دوت نت

تستخدم المصفوفات لتخزين مجموعات بيانات متماثلة لتجميعها كوحدة واحدة. وهو مجموعة ثابتة من نفس نوع البيانات التي يتم تخزينها بشكل متلاصق والتي يمكن الوصول إليها من قبل فهرس نحدد طولها، ونحن يمكن تهيئة المصفوفات مع البيانات.


المصفوفة الرقمية Integer Array
التصريح عن المصفوفة الرقمية من نوع INTEGER
Dim array As Integer() = New Integer(3) {} 
array(0) = 10
array(1) = 20
array(2) = 30
array(3) = 40

فى الكود السابق تم التصريح عن مصفوفة رقمية مكونة من 4 عناصر وقمنا باسناد القيم لها عن طريق الفهرس 
يمكن الولوج الى عناصر المصفوفة عن طريق loop على النحو التالى : - 

<span style="font-size: large;">Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim array As Integer() = New Integer(3) {} array(0) = 10 array(1) = 20 array(2) = 30 array(3) = 40 For i As Integer = 0 To array.Length - 1 MessageBox.Show(array(i)) Next End Sub End Class</span>


يمكن التصريح عن المصفوفة وأسناد العناصر لها بهذه الطريقة

<span style="font-size: large;">Dim array As Integer() = New Integer() {10, 20, 30, 40}</span>

مع ملاحظة ان الكود السابق لن يتم تحديد طول المصفوفة به وسيقوم الفيجوال بيسك بتحديده 

كيف يتم تحديد طول المصفوفة ؟
يتم استخدام الطريقة Array.Length لتحديد طول المصفوفة 

مصفوفة النصوص String Array

التصريح عن وتهيئة المصفوفة النصية 
Dim week(6) As String

ويعنى الكود السابق ان تم التصريح عن مصفوفة اسمها week ولها سبعة عناصر من نوع string

اسناد القيم للمصفوفة 
week(0) = "Sunday"

week(1) = "Monday"
.....
الدخول لعناصر المصفوفة 

Dim weekName as String = week(1)
في البرنامج التالي، نعلن مصفوفة نسميها "week" من سبعة قيم نصية وتعيين القيم السبعة كأيام في الأسبوع. الخطوة التالية هي استرداد عناصر المصفوفة باستخدام حلقة. للعثور على نهاية المصفوفة استخدمنا الدالة length ....

<span style="font-size: large;">Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim week(6) As String week(0) = "Sunday" week(1) = "Monday" week(2) = "Tuesday" week(3) = "Wednesday" week(4) = "Thursday" week(5) = "Friday" week(6) = "Saturday" For i = 0 To week.Length - 1 MsgBox(week(i)) Next End Sub End Class</span>

تغيير حجم المصفوفة 

يتم استخدام الطريقة Array.Resize لزيادة حجم المصفوفة كالتالى :-

<span style="font-size: large;">Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sArray As Char() = New Char(4) {} sArray(0) = "A" sArray(1) = "B" sArray(2) = "C" sArray(3) = "D" sArray(4) = "E" For i As Integer = 0 To sArray.Length - 1 MessageBox.Show(sArray(i).ToString()) Next &lt;b&gt;&lt;u&gt;Array.Resize(sArray, 3)&lt;/u&gt;&lt;/b&gt; For i As Integer = 0 To sArray.Length - 1 MessageBox.Show(sArray(i).ToString()) Next End Sub End Class</span>
Array.Resize(sArray, 3)

الكود السابق يقوم بزيادة حجم المصفوفة بثلاثة عناصر

استخدام Foreach مع المصفوفات

<span style="font-size: large;">Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim array As Integer() = {10, 30, 50} 'array declaration For Each element As Integer In array MsgBox(element) Next End Sub End Class</span>
فرز المصفوفات Array Sort
تستخدم المصفوفات لتخزين مجموعات بيانات مماثلة لتجميعها كوحدة واحدة. بدلا من الإعلان عن متغيرات فردية مثل ar1 و ar2 و ar3 وما إلى ذلك، فإنك تعلن متغير مصفوفة واحد مثل الأرقام واستخدام أر (0)arr و (1)arr و (2)arr وما إلى ذلك لتمثيل المتغيرات الفردية , يتم الوصول إلى عنصر معين في المصفوفة بواسطة فهرس كما تم عرضه سابقاً .

ويتم فرز عناصر المصفوفة الرقمية عن طريق الكود التالى 
Dim arr As Integer() = New Integer() {3, 1, 4, 5, 2}
Array.Sort(arr)
For Each str As Integer In arr
    MsgBox(str) 
          Next 

وفرز عناصر المصفوفة النصية 
Dim ArrStr As String() = New String() {"c", "a", "d", "b"}
Array.Sort(ArrStr)
For Each str As String In ArrStr
    MsgBox(str)
Next
الاكواد السابقة تقوم بترتيب المصفوفة تصاعدياً ولترتيبها تنازلياً نستخدم الطريقة Array.reverse

Dim arr As Integer() = New Integer() {3, 1, 4, 5, 2}
Array.Sort(arr)
Array.Reverse(arr)
For Each str As Integer In arr
    MsgBox(str)
Next
المصفوفات النصية 

Dim ArrStr As String() = New String() {"c", "a", "d", "b"}
Array.Sort(ArrStr)
Array.Reverse(ArrStr)
For Each str As String In ArrStr
    MsgBox(str)
Next

انشاء مصفوفة باكثر من نوع بيانات muliple data type array

يمكنك إنشاء مصفوفة تحتوي على عناصر من أنواع بيانات مختلفة عند تعريف المصفوفة ككائن. بما أن System.Object هو الفئة الأساسية لجميع الأنواع الأخرى، يمكن أن يكون عنصر في مصفوفة من الكائنات مرجع إلى أي نوع آخر من الكائنات.

<span style="font-size: large;">dim mixedArray as </span><span style="font-size: large;">object()</span><span style="font-size: large;"> = new object(4)</span><span style="font-size: large;">mixedArray(0)=10 mixedArray(1)="Jack" mixedArray(2)=true mixedArray(3)=System.DateTime.Now</span>
المصفوفات الديناميكية dynamic array
المصفوفة الديناميكية يمكن زيادة عناصرها اثناء تشغيل البرنامج عندما لا نعرف عدد العناصر الذى سوف يتم انشائها بالمصفوفة 

Dim scores() As Integer

 زيادة عناصر المصفوفة وحذف قيمة جميع عناصرها

ReDim scores(1)
زيادة عناصرالمصفوفة والاحتفاظ بكل قيم عناصرها
ReDim Preserve scores(2)


مثال 

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer
        Dim scores() As Integer

        ReDim scores(1)
        scores(0) = 100
        scores(1) = 200

        For i = 0 To scores.Length - 1
            MsgBox(scores(i))
        Next

        ReDim Preserve scores(2)

        scores(2) = 300

        For i = 0 To scores.Length - 1
            MsgBox(scores(i))
        Next
    End Sub
End Class

ليست هناك تعليقات:

اضافة تعليق

جميع الحقوق محفوظة © 2019 الحقيبة البرمجية لمبرمجى VB.NET