الحلقات المتداخلة
جزء من قسم Fundamentals في رحلة C++ على Coddy — الدرس 48 من 74.
الحلقة المتداخلة هي ببساطة حلقة داخل حلقة أخرى. ستكمل الحلقة الداخلية جميع تكراراتها لكل تكرار واحد للحلقة الخارجية.
التشبيه الجيد لهذا هو الساعة: فلكل ساعة (الحلقة الخارجية)، يجب أن يكمل عقرب الدقائق (الحلقة الداخلية) دورته الكاملة المكونة من 60 دقيقة.
مثال على حلقة متداخلة:
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
std::cout << x << " " << y << std::endl;
}
}
// سيقوم هذا بطباعة:
// 0 0
// 0 1
// 1 0
// 1 1تعمل الحلقة الخارجية (x) مرتين، وفي كل مرة من تلك المرات، تعمل الحلقة الداخلية (y) مرتين.
التحدي
مبتدئاكتب برنامجاً يجد جميع أزواج الأرقام التي مجموعها يساوي n باستخدام أرقام من 1 إلى n - 1.
يجب أن يعرض البرنامج جميع التوليفات الممكنة، بما في ذلك الأزواج المكررة بترتيب عكسي. على سبيل المثال، يجب عرض كل من "1 5" و "5 1"، حيث يتم اعتبارهما ترتيبين مختلفين لنفس الزوج. يمكن أيضاً إقران الأرقام مع نفسها إذا كان مجموعها يساوي n.
على سبيل المثال إذا كان n = 6، يجب أن يكون المخرج:
1 5
2 4
3 3
4 2
5 1لأن:
1 + 5 = 6
2 + 4 = 6
3 + 3 = 6
4 + 2 = 6
5 + 1 = 6ورقة مرجعية
الحلقة المتداخلة هي حلقة داخل حلقة أخرى. تكمل الحلقة الداخلية جميع تكراراتها لكل تكرار واحد للحلقة الخارجية.
هيكل الحلقة المتداخلة الأساسي:
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
std::cout << x << " " << y << std::endl;
}
}
// المخرجات:
// 0 0
// 0 1
// 1 0
// 1 1تعمل الحلقة الخارجية بالكامل، ومع كل تكرار للحلقة الخارجية، تمر الحلقة الداخلية عبر جميع تكراراتها.
جرّب بنفسك
#include <iostream>
int main() {
int n;
std::cin >> n;
// اكتب الكود الخاص بك أدناه
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص