رسم الأشكال (المثلثات)

وقت القراءة: 6 دقائق 124 مشاهدة

يمكنك استخدام منطق الحلقات المتداخلة لإنشاء أشكال مختلفة، على سبيل المثال يمكنك رسم مثلث.

هذا البرنامج يحتوي على حلقة for متداخلة تطبع مثلثًا من النجوم إلى شاشة المخرجات. تتكرر الحلقة الخارجية 5 مرات، وتتكرر الحلقة الداخلية لكل تكرار للحلقة الخارجية.

#include <iostream>

using namespace std;

int main()
{
    for ( size_t i = 1; i <= 5; i++)
    {
        for ( size_t j = 1; j <= i; j++)
        {
            cout << "*";
        }
        cout << endl;
    }

    return 0;
}

فيما يلي شرح خطوة بخطوة لما يحدث عند تشغيل هذا البرنامج:

  1. يعرّف البرنامج متغيرين إثنين i و jويعطيهما قيمة بدائية تساوي 1.
  2. يبدأ البرنامج بحلقة الدوران الخارجية for.
  3. الشرط في الحلقة الخارجية يتحقق إذا كانت قيمة المتغير i أقل أو يساوي 5. إذا كانت كذلك، يتم الإنتقال إلى حلقة الدوران الداخلية.
  4. الشرط في الحلقة الداخلية يتأكد ما إذا كانت قيمة المتغير j أقل أو تساوي قيمة المتغير i.إذا كانت كذلك، يقوم البرنامج بطباعة نجمة إلى شاشة المخرجات.
  5. الحلقة الداخلية تقوم بزيادة قيمة المتغير j بمقدار 1.
  6. تقوم الحلقة الداخلية بتكرار الخطوات 4 إلى 5 حتى تصبح قيمة المتغير j أكبر من قيمة المتغير i.
  7. بعد انتهاء حلقة for الداخلية، يقوم البرنامج بطباعة حرف السطر الجديد إلى شاشة المخرجات.
  8. حلقة for الخارجية تقوم بزيادة قيمة المتغير i بمقدار 1.
  9. تقوم الحلقة الخارجية بتكرار الخطوات 3 إلى 8 حتى تصبح قيمة المتغير i أكبر من 5:

مخرجات البرنامج تكون كالتالي:

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

ماذا لو أردنا رسم المثلث السابق بشكل مقلوب؟

نغير الشرط الموجود في حلقة for الخارجية.

هذا البرنامج يحتوي على حلقة متداخلة تطبع مثلثًا مقلوبًا من النجوم إلى شاشة المخرجات. تتكرر الحلقة الخارجية تنازليًّا من 5 إلى 1، وتتكرر الحلقة الداخلية لكل تكرار للحلقة الخارجية.

#include <iostream>

using namespace std;

int main()
{
    for ( size_t i = 5; i >= 1; i--)
    {
        for ( size_t j = 1; j <= i; j++)
        {
            cout << "*";
        }
        cout << endl;
    }

    return 0;
}

فيما يلي شرح خطوة بخطوة لما يحدث عند تشغيل هذا البرنامج:

  1. يعرّف البرنامج متغيرين إثنين i و jويعطيهما قيمًا بدائية 5 و 1 على التوالي.
  2. يبدأ البرنامج بحلقة الدوران الخارجية for.
  3. الشرط في الحلقة الخارجية يتحقق إذا كانت قيمة المتغير i أكبر أو تساوي 1. إذا كانت كذلك، ينتقل إلى حلقة for الداخلية.
  4. الشرط في الحلقة الداخلية يتأكد ما إذا كانت قيمة المتغير j أقل أو تساوي قيمة المتغير i.إذا كانت كذلك، يقوم البرنامج بطباعة نجمة إلى شاشة المخرجات.
  5. الحلقة الداخلية تقوم بزيادة قيمة المتغير j بمقدار 1.
  6. تقوم الحلقة الداخلية بتكرار الخطوات 4 إلى 5 حتى تصبح قيمة المتغير j أكبر من قيمة المتغير i.
  7. بعد انتهاء حلقة for الداخلية، يقوم البرنامج بطباعة حرف السطر الجديد إلى شاشة المخرجات.
  8. حلقة for الخارجية تنقّص من قيمة المتغير i بمقدار 1.
  9. تقوم الحلقة الخارجية بتكرار الخطوات 3 إلى 8 حتى تصبح قيمة المتغير i أقل من 1.

مخرجات البرنامج تكون كالتالي:

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

هل نستطيع جعل الرسمة أكثر صعوبة؟

يطبع هذا الرمز مثلثًا قائمًا من النجوم إلى شاشة المخرجات. تتكرر الحلقة الخارجية من 1 إلى 5، وتتكرر الحلقة الداخلية من 4 إلى قيمة المتغير iحيث يكون i هو رقم التكرار الحالي في حلقة الدوران الخارجية.

#include <iostream>

using namespace std;

int main()
{
    for ( size_t i = 1; i <= 5; i++)
    {
        for ( size_t j = 4; j >= i; j--)
        {
            cout << " ";
        }
        for (size_t k = 1; k <= i; k++)
        {
            cout << "*";
        }
        cout << endl;
    }

    return 0;
}

فيما يلي شرح خطوة بخطوة لما يحدث عند تشغيل هذا البرنامج:

  1. هذا البرنامج يُعرّف 3 متغيرات ij، و kويعطيهم القيم البدائية 1، 4 و 1، على التوالي.
  2. يبدأ البرنامج بحلقة الدوران الخارجية for.
  3. الشرط في الحلقة الخارجية يتحقق إذا كانت قيمة المتغير i أقل أو يساوي 5. إذا كانت كذلك، يتم الإنتقال إلى حلقة الدوران الداخلية.
  4. الشرط في الحلقة الداخلية يتأكد ما إذا كانت قيمة المتغير j أكبر أو تساوي i، يقوم البرنامج بطباعة مساحة إلى شاشة المخرجات.
  5. ثم تتناقص قيمة المتغير في الحلقة الداخلية j بمقدار 1.
  6. تقوم الحلقة الداخلية بتكرار الخطوات 4 إلى 5 حتى تصبح قيمة المتغير j أقل من i.
  7. بعد انتهاء حلقة for الداخلية، يقوم البرنامج بطباعة نجمة على شاشة المخرجات لكل تكرار للحلقة الداخلية.
  8. يقوم البرنامج بعد ذلك بطباعة حرف السطر الجديد إلى شاشة المخرجات.
  9. حلقة for الخارجية تقوم بزيادة قيمة المتغير i بمقدار 1.
  10. تقوم الحلقة الخارجية بتكرار الخطوات 3 إلى 9 حتى تصبح قيمة المتغير i أكبر من 5:

مخرجات البرنامج تكون كالتالي:

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

دعونا نطبعه رأسًا على عقب!

#include <iostream>

using namespace std;

int main()
{
    for ( size_t i = 5; i >= 1; i--)
    {
        for ( size_t j = 4; j >= i; j--)
        {
            cout << " ";
        }
        for (size_t k = 1; k <= i; k++)
        {
            cout << "*";
        }
        cout << endl;
    }

    return 0;
}

انظروا إلى ما لدينا هنا!

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

لنرسم مثلثًا مختلفًا

#include <iostream>

using namespace std;

int main()
{
    int e = 1;
    for (int a = 1; a <= 5; a++)
    {
        for (int b = 4; b >= a; b--)
        {
            cout << " ";
        }
        for (int c = 0; c < e; c++)
        {
            cout << "*";
        }
        cout << endl;
        e = e + 2;
    }

    return 0;
}

فيما يلي شرح خطوة بخطوة لما يحدث عند تشغيل هذا البرنامج:

  1. يقوم البرنامج بتعريف 4 متغيرات ea, c، و bويعطيهم القيم البدائية 1، 1، 0 و 4، على التوالي.
  2. يبدأ البرنامج بحلقة الدوران الخارجية for.
  3. الشرط في الحلقة الخارجية يتحقق إذا كانت قيمة المتغير a أقل أو يساوي 5. إذا كانت كذلك، يتم الإنتقال إلى حلقة الدوران الداخلية.
  4. الشرط في الحلقة الداخلية يتأكد ما إذا كانت قيمة المتغير b أكبر أو تساوي a، يقوم البرنامج بطباعة مساحة إلى شاشة المخرجات.
  5. ثم تتناقص قيمة المتغير في الحلقة الداخلية b بمقدار 1.
  6. تقوم الحلقة الداخلية بتكرار الخطوات 4 إلى 5 حتى تصبح قيمة المتغير b أقل من a.
  7. بعد انتهاء حلقة for الداخلية، يقوم البرنامج بطباعة نجمة على شاشة المخرجات لكل تكرار للحلقة الداخلية.
  8. يقوم البرنامج بعد ذلك بطباعة حرف السطر الجديد إلى شاشة المخرجات.
  9. حلقة for الخارجية تقوم بزيادة قيمة المتغير a بمقدار 1.
  10. تقوم الحلقة الخارجية بتكرار الخطوات 3 إلى 9 حتى تصبح قيمة المتغير a أكبر من 5:

مخرجات البرنامج تكون كالتالي:

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

دعونا نطبعه رأسًا على عقب!

#include <iostream>

using namespace std;

int main()
{
    int e = 9;
    for (int r = 1; r <= 5; r++)
    {
        for (int c = 0; c < e; c++)
        {
            cout << "*";
        }
        cout << endl;
        e = e - 2;
        for (int s = 0; s < r; s++)
        {
            cout << " ";
        }
    }

    return 0;
}

المخرجات:

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

يمكنك أيضًا استخدام الحلقات المتداخلة لرسم أشكال أخرى، مثل المربعات والمستطيلات والمعينات.

مشاركة هذا

رسم الأشكال (المثلثات)

Or copy link

المحتوى
Arabic