تعلم البرمجة للمبتدئين الحلقات المتداخلة

مفهوم الحلقات المتداخلة

الحلقات المتداخلة ( Nested Loops ) يقصد بها تعريف حلقات بداخل بعضها البعض.

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


فائدة الحلقات المتداخلة

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

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

طريقة تعريف حلقة بداخل حلقة

بشكل عام, أي شكل هندسي تنوي رسمه بواسطة الرموز يحتاج لحلقتين على الأقل:

  • حلقة خارجية نستخدمها للإنتقال من سطر لآخر يقال لها الحلقة i نسبةً لإسم العداد الذي ننشئه فيها.
  • حلقة داخلية نستخدمها للإنتقال من عمود لآخر يقال لها الحلقة j نسبةً لإسم العداد الذي ننشئه فيها.

ماذا لو كان حجم الرسم مرتبط بما يدخله المستخدم؟

في حال كان حجم الرسم غير ثابت بمعنى أن المستخدم هو من يحدد عدد أسطره و على أساس ذلك يكبر حجم الرسم أو يصغر, فإن عدد الأسطر في هذه الحالة عادةً ما يتم تخزينه في متغير إسمه n.


ملاحظة

لست مجبر على إعتماد هذه الأسماء للعدادات و لكننا ننصحك دائماً باستخدام هذه الأسماء لأنه متعارف عليها بين المبرمجين.


مثال

من فضلك, ركز على أسلوب تعريف الحلقات بداخل بعضها و كيف أن الكود مرتب بحيث يمكن ملاحظة أنه يوجد حلقة معرفة بداخل حلقة.

for (var i=1; i<3; i++)
{
    for (var j=1; j<5; j++)
    {
    
    }
}
   

إذاً هنا في كل دورة من دورات الحلقة i سيتم إنشاء الحلقة j من جديد و تنفيذ الأوامر الموضوعة فيها.

طريقة تحليل الرسومات الهندسية

من أهم الأشياء التي يجب أن تلاحظها عند النظر لأي شكل هندسي هي عدد جميع الأسطر و الأعمدة الموجودة فيها و أن تدونها على ورقة لأنك ستحتاجها لتكتشف العلاقة بين عدد الأسطر و عدد الأعمدة في كل سطر.

الآن إذا إفترضنا أننا نريد رسم مستطيل بالنجوم كالتالي.

لتحليل هذا الرسم نقوم بحساب و تدوين عدد الأسطر و الأعمدة الموجودة في كل سطر كالتالي لأننا سنحتاج هذه المعلومات عند كتابة كود مهمته رسم الشكل بناءاً على المعطيات التي نزوده بها.

إذاً هنا لاحظنا أنه عندنا 3 أسطر و كل سطر يحتوي على 5 أعمدة.
نستنتج أن كل نجمة ظاهرة في الرسم يجب أن تكون موجودة على سطر و عمود محددين.


إختلاف عدد الأعمدة و لكن بشكل متناسق

عندما يكون عدد الأعمدة مختلفاً في كل سطر و لكن بشكل متناسق فهذا يعني مباشرةً أنك يجب أن تعتمد على العداد i في المعادلة التي تحاول إكتشافها, و التي ستوصلك للشكل المطلوب.

فمثلاًَ في حال كان لديك رسم يشبه المثلث كالتالي.

هنا يمكنك مباشرةً حساب عدد الأسطر و الذي في حالتنا يساوي 4 أما عدد الأعمدة فهو غير ثابت!
إذاً السؤال المهم هنا هو كيف سنعرف عدد الأعمدة الموجودة في كل سطر؟

لمعرفة العلاقة بين عدد الأعمدة و عدد الأسطر نقوم بتدوين عدد النجوم في كل سطر على شكل جدول كالتالي.

في النهاية إكتشفنا أن عدد النجوم في كل سطر يساوي رقم السطر نفسه. بمعنى أنه في السطر رقم 1 يوجد نجمة واحدة, في السطر رقم 2 يوجد نجمتين, في السطر رقم 3 يوجد ثلاث نجوم و هكذا..


ملاحظة

في حال لم يكن هناك أي علاقة بين عدد الأعمدة و عدد الأسطر الموجودة في الرسم لا يمكنك الإعتماد على الحلقات لرسمها بشكل تلقائي.

تمارين شاملة حول الحلقات المتداخلة


التمرين الأول

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

الحل و التفسير »


التمرين الثاني

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

الحل و التفسير »


التمرين الثالث

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

الحل و التفسير »


التمرين الرابع

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

الحل و التفسير »


التمرين الخامس

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

الحل و التفسير »


التمرين السادس

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

الحل و التفسير »


التمرين السابع

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

الحل و التفسير »


التمرين الثامن

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

الحل و التفسير »


التمرين التاسع

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

الحل و التفسير »


التمرين العاشر

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

ملاحظة: في حال قام المستخدم بإدخال عدد زوجي قم بإضافة واحد عليه حتى يصبح عدد فردي لأن هذا الرسم يتطلب أن يكون عدد الأسطر فردي.

الحل و التفسير »


التمرين الحادي عشر

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

ملاحظة: في حال قام المستخدم بإدخال عدد زوجي قم بإضافة واحد عليه حتى يصبح عدد فردي لأن هذا الرسم يتطلب أن يكون عدد الأسطر فردي.

الحل و التفسير »


التمرين الثاني عشر

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

ملاحظة: في حال قام المستخدم بإدخال عدد زوجي قم بإضافة واحد عليه حتى يصبح عدد فردي لأن هذا الرسم يتطلب أن يكون عدد الأسطر فردي.

الحل و التفسير »


التمرين الثالث عشر

أكتب برنامج يطلب من المستخدم إدخال عدد بين 1 و 9 يمثل عدد أسطر الشكل الهندسي التالي و من ثم يرسمه له بواسطة الحلقات.

الحل و التفسير »


التمرين الرابع عشر

أكتب برنامج يطلب من المستخدم إدخال عدد بين 1 و 9 يمثل عدد أسطر الشكل الهندسي التالي و من ثم يرسمه له بواسطة الحلقات.

الحل و التفسير »


التمرين الخامس عشر

أكتب برنامج يطلب من المستخدم إدخال عدد بين 1 و 9 يمثل عدد أسطر الشكل الهندسي التالي و من ثم يرسمه له بواسطة الحلقات.

الحل و التفسير »


التمرين السادس عشر

أكتب برنامج يطلب من المستخدم إدخال عدد بين 1 و 9 يمثل عدد أسطر الشكل الهندسي التالي و من ثم يرسمه له بواسطة الحلقات.

الحل و التفسير »


التمرين السابع عشر

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

الحل و التفسير »


التمرين الثامن عشر

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

الحل و التفسير »


التمرين التاسع عشر

أكتب برنامج يطلب من المستخدم إدخال عدد بين 1 و 9 يمثل عدد أسطر الشكل الهندسي التالي و من ثم يرسمه له بواسطة الحلقات.

الحل و التفسير »


التمرين العشرون

أكتب برنامج يطلب من المستخدم إدخال عدد بين 1 و 9 يمثل عدد أسطر الشكل الهندسي التالي و من ثم يرسمه له بواسطة الحلقات.

الحل و التفسير »


التمرين الواحد و العشرون

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

الحل و التفسير »


التمرين الثاني و العشرون

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

الحل و التفسير »


التمرين الثالث و العشرون

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

الحل و التفسير »

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة