11

30 - سلسلة تبسيط البرمجة – برنامج المتغيرات المصفوفية أو المصفوفات

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

هذا الدرس آخر درس في السلسلة التي كنت قد نشرتها منذ زمن كما بينت ذلك في المقدمة

وما بعد هذا سأحاول متابعة السلسلة بدروس جديدة بحسب ما يتاح لي الوقت

وسنقوم بالانتقال إلى برامج ذات الواجهات بدلا من مشروع الكونسول الذي كنا نعمل عليه

وسيكون الانتقال إلى نوع WPF وليس WinForm وستكون اللغة هي #C

لأن هدفنا ليس اللغة وابتدأنا بالبيزيك للتسهيل

وحان الوقت لنغير اللغة لكي نتعرف على لغة جديدة و نوع جديد من المشاريع و قد نتطرق لـ OOP أثناء عملنا

وأنوه أن الدروس ليس شرط أن تكون بشكل يومي

وإنما حسب الوقت

وما توفيقي إلا بالله العلي العظيم

مقدمة السلسلة

الدرس السابق 29

الدرس التالي 31