يستعرض هذا المقال حلين برمجين بلغة بايثون لتحدي رسم شكل محدد باستخدام الحلقات التكرارية، مع التركيز على التعامل مع مدخلات المستخدم والتحقق من صحتها.
يتناول هذا التحدي البرمجي مهمة رسم شكل معين باستخدام الحلقات التكرارية. يتطلب البرنامج إدخال عدد أسطر الشكل من المستخدم، مع التأكيد على أن يكون العدد فردياً وأكبر من صفر، إذ لا يمكن أن يكون عدد الأسطر زوجياً أو مساوياً للصفر أو أقل منه.
الحل الأول بلغة بايثون
توضح هذه الطريقة الأولى كيفية تحقيق الرسم المطلوب:
n = 0
while n <= 0 or n % 2 == 0 : n = int ( input ( "Enter and odd number as the number of lines: " )) for i in range ( 1 , n + 1 ): for j in range ( 1 , n + 1 ): if i <= int (n / 2 ) and j <= int (n / 2 ) or i > int (n / 2 ) + 1 and j > int (n / 2 ) + 1 : print ( ' ' , end= '' ) else : print ( '*' , end= '' ) print ()الحل الثاني بلغة بايثون
يقدم هذا الحل البديل نفس النتيجة النهائية:
n = 0
while n <= 0 or n % 2 == 0 : n = int ( input ( "Enter and odd number as the number of lines: " )) for i in range ( 1 , n + 1 ): if i <= n / 2 : print ( ' ' * int (n / 2 ), end= '' ) print ( '*' * ( int (n / 2 ) + 1 ), end= '' ) elif i == int (n / 2 ) + 1 : print ( '*' * n, end= '' ) else : print ( '*' * ( int (n / 2 ) + 1 ), end= '' ) print ()نتائج التنفيذ والتحقق
عند إدخال المستخدم للرقم 9، ستظهر النتيجة التالية:
Enter an odd number as the number of lines: 9
*****
*****
*****
*****
*********
*****
*****
*****
*****يتطابق الشكل الناتج مع التصميم المطلوب تماماً. قد لا يظهر مشابهاً بنسبة 100% بصرياً نتيجة الهامش الافتراضي الذي تضعه الأنظمة بين الأسطر. للتحقق الدقيق من صحة النتيجة، ينبغي عد النجوم والمسافات الفارغة في كل سطر.