Menu
CoddyTech

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

جزء من قسم الأساسيات في رحلة C على Coddy. الدرس 43 من 63.

الحلقات المتداخلة هي حلقات توضع داخل حلقة أخرى. في كل تكرار للحلقة الخارجية، تُنفَّذ الحلقة الداخلية بالكامل.

أنشئ حلقة خارجية تتكرر 3 مرات:

for (int i = 0; i < 2; i++) {
    // كود الحلقة الخارجية هنا
}

أضف حلقة داخلية تتكرر 3 مرات في كل تكرار للحلقة الخارجية:

int rows = 2;
int cols = 3;
for (int i = 0; i < rows; i++) {
    for (int j = 0; j < cols; j++) {
        printf("%d,%d ", i, j);
    }
    printf("\n");
}

سيكون الناتج:

0,0 0,1 0,2 
1,0 1,1 1,2 

لاحظ كيف تُكمل الحلقة الداخلية تكراراتها قبل أن تنتقل الحلقة الخارجية إلى تكرارها التالي. لكل حلقة عدّادها الخاص: يبدأ j من جديد من 0 في كل مرة تعمل فيها الحلقة الخارجية، بينما تظل rows وcols كما هما، ولا تخبران الحلقتين إلا بموعد التوقف.

challenge icon

التحدي

سهل

أنشئ برنامجًا يطبع نمطًا مستطيلًا من النجوم (*) بناءً على عدد الصفوف والأعمدة الذي يقدمه المستخدم.

ينبغي أن يقوم برنامجك بما يلي:

  1. قراءة عددين صحيحين من المستخدم: الصفوف والأعمدة.
  2. استخدام حلقات متداخلة لطباعة نمط مستطيل من النجوم، بحيث تتعامل الحلقة الخارجية مع الصفوف والحلقة الداخلية مع الأعمدة.
  3. طباعة سطر جديد بعد كل صف.

على سبيل المثال، إذا كان الإدخال 3 صفوف و4 أعمدة، فينبغي أن يكون الناتج:

**** 
**** 
****

استخدم عدّادًا جديدًا لكل حلقة (على سبيل المثال، i للصفوف وj للنجوم في الصف) وقارنه بـ rows أو columns. لا تغيّر rows وcolumns نفسيهما: يحتاج كل صف إلى columns من جديد.

جرّب بنفسك

#include <stdio.h>

int main() {
    int rows, columns;
    scanf("%d", &rows);
    scanf("%d", &columns);
    
    // اكتب الكود هنا لطباعة النمط
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم C عبر الإنترنت