أساسيات البرمجة للمبتدئين بالعربية مع تمارين عملية

الحلقات المتداخلة في البرمجة

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

المسار: أساسيات البرمجة الوحدة: حلقات التكرار

مدخل إلى الدرس: الحلقات المتداخلة في البرمجة

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

طريقة الدراسة: اقرأ التعريف، تتبّع المثال في الشرح، نفّذه بنفسك، ثم اختبر النتيجة والحالات الاستثنائية قبل الانتقال.

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

الحلقات المتداخلة ( 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 يمثل عدد أسطر الشكل الهندسي التالي و من ثم يرسمه له بواسطة الحلقات.

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

مراجعة وتمرين تثبيت المهارة

اختبار سريع: اشرح بعبارتك معنى «الحلقات المتداخلة في البرمجة»، ثم بيّن أين ستستخدمه داخل برنامج صغير لحل مشكلة يومية مع مدخلات ونتائج يمكن التحقق منها، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.

تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.

الدرس التالي: العمليات الحسابية المتسلسلة في البرمجة. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.

دروس نصية

#1

تعلم أساسيات البرمجة

#2

دالة الطباعة في البرمجة

#3

المتغيرات في البرمجة

#4

العوامل في البرمجة

#5

حلقات التكرار في البرمجة

#6

المصفوفات و أنواعها في البرمجة

#7

تعريف دوال جديدة في البرمجة

#8

محرر الكود للمبتدئين في البرمجة

#9

دمج البيانات في أساسيات البرمجة

#10

أنواع البيانات في البرمجة

#11

جمل الشرط في البرمجة

#12

الحلقة for في البرمجة

#13

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

#14

الإستدعاء الذاتي في البرمجة

#15

محلل الكود للمبتدئين في البرمجة

#16

أحرف الهروب في البرمجة

#17

دالة الإدخال في البرمجة

#18

الشروط المتداخلة في البرمجة

#19

الحلقة while في البرمجة

#20

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

#21

كتابة كود أقل في البرمجة

#22

التحقق من أنواع القيم في البرمجة

#23

الحلقة do while في البرمجة

#24

المصفوفات الثلاثية في البرمجة

#25

الخطوة التالية بعد تعلم أساسيات البرمجة

#26

الحلقات المتداخلة في البرمجة

#27

العمليات الحسابية المتسلسلة في البرمجة

#28

حساب قيمة العاملي للعدد في البرمجة

#29

حساب المضاعف للعدد في البرمجة

عرض الدروس كاملة تحقق من صفحة تعلم الدورة
درس نصي 5/29
أنت تشاهد
الحلقات المتداخلة في البرمجة