رسم الأشكال باستخدام الحلقات التكرارية في C++


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


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

الحل باستخدام لغة C++: الطريقة الأولى.

# include <iostream>

int main () {
    int n;
    do {
        std::cout << "Enter an odd number as the number of lines: " ;
        std::cin >> n;
    } while (n <= 0 || n % 2 == 0 );

    for ( int i = 1 ; i <= n; i++) {
        for ( int j = 1 ; j <= n; j++) {
            if ((i <= n / 2 + 1 && j <= n / 2 + 1 ) || (i > n / 2 && j > n / 2 )) {
                std::cout << "*" ;
            } else {
                std::cout << " " ;
            }
        }
        std::cout << "\n" ;
    }

    char end;
    std::cin >> end;
    return 0 ;
}
الطريقة الثانية لحل التمرين وتحقيق نفس النتيجة.

# include <iostream>

int main () {
    int n;
    do {
        std::cout << "Enter an odd number as the number of lines: " ;
        std::cin >> n;
    } while (n <= 0 || n % 2 == 0 );

    for ( int i = 1 ; i <= n; i++) {
        if (i <= n / 2 ) {
            for ( int j = 1 ; j <= n / 2 + 1 ; j++) {
                std::cout << "*" ;
            }
        } else if (i == n / 2 + 1 ) {
            for ( int j = 1 ; j <= n; j++) {
                std::cout << "*" ;
            }
        } else {
            for ( int k = 1 ; k <= n / 2 ; k++) {
                std::cout << " " ;
            }
            for ( int j = 1 ; j <= n / 2 + 1 ; j++) {
                std::cout << "*" ;
            }
        }
        std::cout << "\n" ;
    }

    char end;
    std::cin >> end;
    return 0 ;
}
عند إدخال المستخدم للرقم 9 أثناء التشغيل، ستظهر النتيجة التالية:

Enter an odd number as the number of lines: 9
*****
*****
*****
*****
*********
*****
*****
*****
*****
الشكل الظاهر في النتيجة النهائية يطابق الشكل المطلوب تماماً، على الرغم من أنه قد لا يبدو متطابقاً بنسبة 100% بصرياً بسبب الهوامش الافتراضية التي يضيفها النظام بين الأسطر. للتحقق من دقة النتيجة، يُنصح بعد النجوم والمسافات الفارغة في كل سطر.