المصفوفات arrays في الفيجول بيسك

 اليوم درسنه عن المصفوفات في فيجوال بيسك دوت نت نعلن عن المصفوفة بالشكل التالي :

Dim Array(n) As Type

بحيث أن عدد عناصر المصفوفة يساوي n+1 والآن هل لاحظت أن أول عنصر تبدأ فهرسته من صفر لعلك عرفت أن n ترمز إلى فهرس المصفوفة فإذا أردنا استخراج أو اسناد قيمة للعنصر(النوني n ) في المصفوفة فنرمز له باسم المصفوفة وبداخل القوسين العدد n-1 باختصار: كما رأينا المصفوفة عبارة عن (متغير أو ثابت) يحمل عدة قيم بسحب المحجوز من البداية... الآن فلنتعمق أكثر(لكن لن نغرق باذن الله) المصفوفات لا تقتصر على ما شرحناه فهي اكبر من ذلك ... والآن سندخل في أنواع المصفوفات

أنواع المصفوفات  في الفيجول بيسك دون نت

الآن تقسم المصفوفات الى أكثر من نوع:

  • مصفوفات أحادية الرتبة
  • مصفوفات ثنائية الرتبة
  • مصفوفات متعددة الرتبة

أولا : المصفوفات أحادية الرتبة 

اعلم عزيزي أن المثال بالأعلى هو عبارة عن مصفوفة أحادية الرتبة المصفوفة أحادية الرتبة تتكون من صف واحد وعدة أعمدة أو عمود واحد وعدة صفوف

 طريقة الإعلان عن المصفوفه احادية الابعاد

Dim Array(n) As Type

  

مثال  :

Dim MyLovers(3) As String
"MyLovers(0) ="MOHAMMED
"MyLovers(1) = "Lo2i
"MyLovers(2) = "7hoooda
"MyLovers(3) = "The Rest]

    

الآن كما رأينا قمنا بحجز مصفوفة من 4 عناصر(3+1) وقمنا باسناد قيمة لكل عنصر حسب فهرسته في المصفوفة( مش قلنالك هينة..!)

ثانيا : المصفوفات ثنائية الرتبة

الآن دعنا نرتفع بالسلم درجة للأعلى ,  المصفوفة ثنائية الرتبة :هي المصفوفة التي تكون رتبتها مقيدة برقمين (كتشبيه ثنائية الأبعاد) وعدد عناصر المصفوفة تساوي عدد الصفوف مضروبا بعدد الأعمدة 

طريقة الإعلان عن المصفوفه ثنائية الابعاد :

Dim Array(m,n) As Type

مثال :

Dim ages(2, 2) As Integer 
ages(0, 0) = 1 
ages(0, 1) = 2 
ages(0, 2) = 3 
ages(1, 0) = 4 
ages(1, 1) = 5 
ages(1, 2) = 6 
ages(2, 0) = 7 
ages(2, 1) = 8 
ages(2, 2) = 9

لكن ما الذي حدث؟ عدد عناصر المصفوفة تساوي عدد الصفوف مضروبا بعدد الأعمدة ___ لكن عدد عناصر المصفوفة 9 والمفروض 2*2 =4 احذر عزيزي من الوقوع في هذا الخطأ الفادح....كما قلنا بالأعلى فان رتبة المصفوفة (فهرستها) تبدأ من الصفر أي أن عدد عناصر المصفوفة أعلاه لا يساوي 2*2 بل يساوي (2+1)*(2+1) = 3*3 =9(مش قلنا هونها بتهون.!)

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

وتكون ثلاثية الأبعاد وطريقة الحجز كالتالي :

طريقة الإعلان عن المصفوفه متعدده الابعاد

كود :

Dim Array(x,y,z) As Type

ولكن لا أظنك تحتاج اليها في حياتك البرمجية لذلك حبذت عدم الحديث عنها..

طرق حجز المصفوفات في الذاكرة

الطريقة الأولى:طريقة الحجز باعطاء الرتبة ثم إسناد القيم....كما جميع الأمثلة السابقة.. الطريقة الثانية: الحجز بدون اعطاء الرتبة مع الاسناد المباشر للقيم مثال: كود :

Dim *() as string ={“mohammed”,”7hoooda”,hitmaker”,”lo2i”}

وبالتالي يقوم المترجم تلقائيا بحجز مصفوفة بعدد عناصر المصفوفة المعطاة 

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

البرنامج عباره عن مصفوفة متكونه من 9 عناصر تم تعريفها في الكود عند تنفيذ البرنامج يتم ادخال عشره ارقام مختلفه لان المصفوفه تبدا من الرقم 0 ونحن عرفنا بالكود 9 اي المجموع 10 

بعد ادخال عشره ارقام عبر زر ادخال العناصر نستطيع الان اجراء عليها العمليات مثل فرز العناصر تصاعديا وتنازليا وايجاد الحد الأدنى والاعلئ وايجاد اكبر قيمه واصغر قيمه وكذالك ايجاد الوسط الحسابي وايظا ايجاد مجموع المصفوفة… .

نبدا الان على بركه الله بتصميم النموذج

خطوات تصميم وبرمجة برنامج المصفوفات

خطوات تصميم وبرمجة برنامج على المصفوفات في الفيجول بيسك 

ـ  افتح مشروع جديد وسمي بما يحلو لك 

ـ  ادرج الادوات التاليه الى form 

ـ listBox عدد 3 

ـ  Button 

ـ TextBox عدد 6

ـ  Labe عدد 3

ـ ProgressBar عدد 1

بعد ادراج الادوات قم بتسميه الازرار Button  كما في الصورة الموضحه لديك 

ادخال عناصر 

فرز العناصر تنازليا 

فرز العناصر تصاعديا 

الحد الأدنى 

الحد الاعلى

مجموع المصفوفه

اكبر قيمه 

اصغر قيمه 

الوسط الحسابي 

اعد تسميه ازرار Labe كما يلي 

عناصر المصفوفه 

العناصر بعد الفرز

معكوس المصفوفة

قم بتغير حجم خط لكل الادوات وذلك من خلال تحديد الاداة وبعد ذلك اذهب للخصائص ومنها اختار Font وختر حجم خط 14 

قم بتغير الوان الازرار بما يحلو لك عزيزي

  مرحله كتابة الكود برنامج المصفوفات

 انقر نقرتين على الفورم واكتب كود تالي

ProgressBar1.Minimum = 0 
ProgressBar1.Maximum = UBound(a) 

انقر على الفورم ولكن هل مره تحت كلمه

Public Class Form1

مباشرة واكتب كود تالي

Dim a(9), i As Integer

 انقر نقرتين علئ زر ادخال العناصر وكتب كود تالي

For i = 0 To 9 
a(i) = InputBox("Enter " & i + 1) 
ListBox1.Items.Add(a(i)) 
Next 

 انقر نقرتين علئ زر فرز عناصر تصاعديا واكتب كود تالي

Array.Sort(a) 
For i = 0 To 9 
ListBox2.Items.Add(a(i)) 
Next  

 انقر نقرتين علئ زر فرز عناصر تنازليا واكتب كود تالي

Array.Reverse(a) 
For i = 0 To 9 
ListBox3.Items.Add(a(i)) 
Next 

 انقر نقرتين علئ زر الحد الأدنى واكتب كود تالي

TextBox1.Text = UBound(a)

انقر نقرتين علئ زر الحد الأدنى واكتب كود تالي

TextBox2.Text = LBound(a)

انقر نقرتين على زر مجموع مصفوفة واكتب كود تالي

Dim sum As Integer 
For i = 0 To 9 
sum = sum + a(i) 
Next 
TextBox3.Text = sum

انقر نقرتين على زر اكبر قيمة واكتب كود تالي

  Dim max As Integer 
  max = a(0) 
  For i = 1 To 9 
  If max < a(i) Then max = a(i) 
  Next 
  TextBox4.Text = max

 انقر نقرتين علئ زر اصغر قيمه واكتب كود تالي

  Dim min As Integer 
  min = a(0) 
  For i = 1 To 9 
  If min > a(i) Then min = a(i) 
  Next 
  TextBox5.Text = min

  

 انقر نقرتين على زر الوسط الحسابي واكتب كود تالي

Dim sum As Integer 
Dim average As Single 
For i = 0 To 9 
sum = sum + a(i) 
Next 
average = sum / 10 
TextBox6.Text = average

 انقر نقرتين علئ اداة progressBar واكتب كود تالي

ProgressBar1.Value = i 
Label4.Text = i + 1 

 الى هنا تنتهي مرحله برمجه جميع الازرار الان قم بتنفيذ البرنامج بالضغط على F5 من الكيبورد سوف يضهر لك البرنامج قم بالضغط على زر ادخال العناصر وادخل عشره ارقام مختلفه ثم اجري عليها العمليات بالضغط على كل زر سوف يعطيك نتيجه مثل اكبر قيمه واقل ومجموع مصفوفة .

هذه صور البرنامج عزيزي المبرمج 

برنامج على المصفوفات arrays  في الفيجول بيسك

سورس برنامج على المصفوفات arrays  في الفيجول بيسك

طريقة تصميم وبرمجة  برنامج على المصفوفات arrays  في الفيجول بيسك

المصفوفات arrays  في الفيجول بيسك


تعليقات