اليوم درسنه عن المصفوفات في فيجوال بيسك دوت نت نعلن عن المصفوفة بالشكل التالي :
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 من الكيبورد سوف يضهر لك البرنامج قم بالضغط على زر ادخال العناصر وادخل عشره ارقام مختلفه ثم اجري عليها العمليات بالضغط على كل زر سوف يعطيك نتيجه مثل اكبر قيمه واقل ومجموع مصفوفة .
هذه صور البرنامج عزيزي المبرمج