30 - سلسلة تبسيط البرمجة – برنامج المتغيرات المصفوفية أو المصفوفات
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
بالعودة للمثال :
14 - سلسلة تبسيط البرمجة – آلية المتغيرات المصفوفية
https://arabia.io/go/5830والذي تحدثنا فيه عن المتغيرات المصفوفية
و ارتأيت أن أرجيء المثال الذي سبقه أي المجال والنطاق لدروس قادمة حتى تكون أوضح
كما قلنا أن المتغير المصفوفي هو متغير ولكن يحمل رقم حجرة
ولننظر إلى المثال التالي :
Module Module1
Sub Main()
Const ArraySize = 30
Dim X(ArraySize), Square(ArraySize) As Integer
For i As Integer = 0 To ArraySize
X(i) = i
Square(i) = X(i) * X(i)
Console.WriteLine(String.Format("The square of {0,5} is : {1,5}", X(i), Square(i)))
Next
Console.WriteLine()
If ArraySize >= 13 Then
Console.WriteLine(String.Format("The value of X(13) is : {0}", X(13)))
Console.WriteLine(String.Format("The value of Square(9) is : {0}", Square(9)))
End If
Console.ReadLine()
End Sub
End Module
نلاحظ أننا عرفنا ثابت يمثل حجم المصفوفة وفي مثالنا جعلناه 30 وذلك لأننا استخدمناه في أكثر من موضع فعندما نرغب بتغيير الحجم يكفي فقط تغيير العدد في تعريف الثابت بدلا من تعديله في كل الأماكن
ثم بعد ذلك عرفنا متغيرين مصفوفيين بسعة ArraySize أي 30
الأول X لنضع فيه العدد
الثاني Square لنضع فيه نتيجة مربع العدد
ثم استخدمنا تعليمة الحلقة التكرارية For تبدأ من 0 وتنتهي بطول المصفوفة وذلك لنمر على كل الحجرات
نضع في الحجرة الحالية قيمة المتغير I للدورة الحالية
بمعنى أنه عندما نكون في التكرار الرابع فنضع في الحجرة الرابعة القيمة 4 ومن ثم نضع في الخانة الرابعة من متغير التربيع ناتج مربع العدد والذي سيكون 16
وهكذا مرورا بكل الأعداد من صفر إلى الحجرة الأخيرة من المصفوفات
ونطبع النواتج
نلاحظ أننا في منهج Format استخدمنا {0,5} بدلا من {0} وكذلك {1,5} بدلا من {1} كما تعودنا سابقا
وهذه خاصية للتنسيق حيث بدلا من وضع قيمة البارمتر الأول بدلا من {0} تقوم بحجز 5 فراغات ثم تضع الرقم أقصى اليمين لهذه الفراغات ونفس الأمر للبارمتر الثاني
والغاية أن نجعل الأعداد فوق بعضها البعض منسقة ومحاذاة نحو اليمين
ويمكن تشبيهها أننا كأنا عرفنا أعمدة لجدول بحيث تكون الأعداد ضمن أعمدة
ولو استخدمنا الأعداد السالبة مثلا {0,-6} فيقوم بحجز ست حجرات ولكن يجعل محاذاة الأعداد نحو اليسار
بعد الحلقة وضعت مثالا كيف نستطيع الوصول لأي حجرة من خلال ترتيب خانتها
حيث طبعنا محتوى الخانة 13 للمتغير X وكذلك محتوى الخانة 9 للمتغير المصفوفي Square
بالطبع وضعنا الشرط لضمان وجود الخانة لأنه لو قمتم بتغيير الثابت أعلاه إلى 10 مثلا وتم تنفيذ البرنامج سيولد خطأ أنه لا يمكن الوصول للخانة 13 لأنها خراج نطاق المصفوفة أي أكبر من حجمها
لهذا وضعنا الشرط للتأكد من إمكانية الوصول وإلا فلن يتم الطباعة
بإمكانكم أن تجربوا أعداد مختلفة لحجم المصفوفة مثلا 100 أو 1000
وستلاحظون كيف أننا نحصل على نتائج كثيرة من خلال عدة أسطر
طبعا ستلاحظون اختفاء قسم من النتائج الأولى في حال كان الرقم أكبر من 300 وذلك لأن شاشة الكونسول مصممة من أجل عدد محدد من الأسطر وهو 300 سطر فقط
ولهذا من أجل إظهار نتائج كبيرة كاملة تحتاج معالجات أخرى ليس مجالها الآن
الواجب :
نريد حجز مصفوفة بحجم ما ثم نضع فيه قيم عشوائية من 0 إلى 50 من خلال الكلاس Random والذي استخدمناه في أمثلة سابقة
ثم بعد ذلك نريد المرور على كل الحجرات ونفحص المحتوى إن كان أكبر من 25 نطبع رقم الحجرة
وبهذا نحصل على الحجرات التي تحتوي قيم أكبر من 25
التعليقات