recent
أخبار ساخنة

حلقات الدوران المتداخلة مع أمثلة متعددة في لغة سي بلس بلس C++ الدرس|23|

الصفحة الرئيسية


حلقة الدوران المتداخلة في C++

في هذا الدرس سوف نتعرف على كيفية إستعمال حلقة for loop بداخل حلقة ثانية for loop, فماذا تتوقعوا إذا كررّنا سطراً برمجياً ثلاثة مرات؟

على سبيل المثال إذا كان لدينا حلقة for تُكرر لنا طباعة النجمة * ثلاثة مرات و كانت هذه الحلقة بداخل حلقة for تكررِّ ثلاث مرات و تقوم بطباعة سطراً جديد بعد إنتهاء حلقة for الداخلية.

for (int i = 0; i < 3; i++ )
{
  for (int j = 0; j < 3; j++)
  {
    cout << "* ";
  }
  count << endl;
}

 

تبدأ أولاً قيمة i بالصفر 0 و سوف تَمُر على for loop الداخلية و سوف تبدأ قيمة المتغير j بالصفر كذلك و ستبدأ حلقة for loop الداخلية بطباعة ما بداخلها و التكرار حتى تنتهي الحلقة الداخلية و تَطبَع سطر جديد ثم تَزيد قيمة i للحلقة الخارجية و تبدأ بالدوران مجدداً و سوف تدخُل للحلقة الداخلية مجدداً و تتعرف j من الصفر مرة أخرى و تقوم بنفس العمل حتى ينتج عندنا مربع بعرض ثلاث نجمات و طول ثلاث نجمات و هذا هو جواب ما يحصل إذا كان عندنا سطراً برمجي يكرر سطراً برمجي ثلاث مرات.

 

مثال 1

قُم ببرمجة برنامج في لغة C++ يقوم بطباعة مربع من النجوم.

#include <iostream>
using namespace std;
int main()
{
    int h;
    cout << "Enter the length of the square:" << endl;
    cin >> h;
    for(int j=0; j<h; j++)
    {
        for(int i=0; i<h; i++)
        {
            cout << "* ";
        }
        cout << endl;
    }
    return 0;
}

 

شرح البرنامج السابق 1

في البداية لقد أنشأنا متغير عددي int و هو بإسم h ووضعنا رسالة تظهر للمستخدم ببداية البرنامج تُطالبه بإدخال طول المربع المطلوب, و دالة cin هي التي سوف تستقبل القيم المٌدخَلة من المستخدم, و دخلنا في حلقة for خارجية و هذه الحلقه سوف تقوم بالدوران بعدد الرقم h الذي سوف يدخله المستخدم و الحلقة الداخلية هي من ستقوم بطباعة سطر من النجوم في كل دورة و في النهاية وضعنا cout<<endl لكي يتم وضع النجوم في الدورة الثانية بسطر جديد, و عند تشغيل البرنامج و كتابة رقم 3 سوف نحصل على النتيجة

 

و إذا ادخلنا رقم 5

كما نلاحظ عندما ادخلنا رقم 3 طبع لنا مربع ثلاثي و عند إدخال الرقم 5 طبع لنا مربع خماسي.


مثال 2

قُم بكتابة برنامج يقوم بطباعة شكل مستطيل من النجوم ( يتم بالطلب من المُستخدِم بإدخال طول المربع ثم عرضه أو العكس).

#include <iostream>
using namespace std;
int main()
{
    int h, w;
    cout << "Enter the width of the box:" << endl;
    cin >> w;
    cout << "Enter the length of the square:" << endl;
    cin >> h;
    for(int j=0; j<h; j++)
    {
        for(int i=0; i<w; i++)
        {
            cout << "* ";
        }
        cout << endl;
    }
    return 0;
}

 

شرح البرنامج السابق 2

في هذا المثال يجب أن يكون لدينا متغيرين من اجل الطول و العرض و المتغيرين هم h و w و قمنا بمطالبة المستخدم أن يدخل طول المربع و عرض المربع عن طريق دالة الإستقبال cin و قمنا بالدخول في حلقة تكرارية و كان بها متغير إسمه j و قيمته هي الصفر 0 ثم قلنا له أن j اصغر من h و قم بزيادة واحد في كل دورة, و أنشأنا حلقة داخلية ايضاً من نوع for و كان بداخلها متغير عددي قيمته 0 و هو i ثم قلنا له i اصغر من w و قم بزيادة واحد بكل دورة, ووضعنا له أن يطبع النجمه و بكل انتهاء سطر يبدأ بسطر آخر جديد.


بحال ادخَلت عرض 10 و طول 6 ستكون النتيجة

 

و إذا أدخلنا عرض 9 و طول 4 ستكون.


مثال 3

اٌكتب برنامج يطلب من المستخدم رقم ثم يقوم البرنامج ببناء مثلث قائم الزاوية من الرقم المدخل حيث يكرر كل رقم على عدده إنتهاءً بالرقم واحد 1.

#include <iostream>
using namespace std;
int main()
{
    int n;

    cout <<"Enter a number : ";
    cin >> n;

    for(int i = n; i > 0; i--)
    {
        for (int j = 0; j < i; j++)
            cout << i <<" ";
        cout << endl;
    }
    return 0;
}

 

شرح البرنامج السابق 3

في البداية قمنا بتعريف متغير عددي n ثم قمنا بمطالبة المستخدم بإدخال رقم و إستخدمنا الدالة cin للطلب من المستخدم كتابة رقم لإستقباله, و قُمنا بفتح حلقة for خارجية و كان بهذه الحلقة متغير عددي هو i و قيمته هي قيمة المتغير n الذي سيُدخلهُ المستخدم, و قلنا للبرنامج عندما تكون i اكبر من 0 و قم بإنقاص رقم من الحلقة الخارجية بكل دورة أي اذا بدأت من الرقم 5 في الدورة الثانية ستصبح 4 و هكذا إلى ان تصل للرقم 1, و بعدها دخلنا لحلقة for الداخلية و كان بها متغير عددي j و قيمته هي 0 و قلنا له j اصغر من 1 و في كل دورة قم بزيادة العداد واحد و في النهاية عبر دالة الطباعه قلنا له أن يطبع قيمة المتغير i لأن هذا المتغير هو الذي سوف يظبع في كل دورة و ينزل سطر ثاني لأجل عناصر الحلقة التي تليها تكون في سطر جديد.


بحال ادخل المستخدم الرقم 4 سينتج ما يلي

 

بحال ادخل المستخدم رقم 9


google-playkhamsatmostaqltradent