يستعرض هذا المقال منهجيات برمجية مختلفة لرسم نمط محدد باستخدام الحلقات التكرارية في لغة C، مع التأكيد على التحقق من صحة مدخلات المستخدم.
يتناول هذا المقال مهمة برمجية تتمثل في رسم نمط بصري محدد باستخدام الحلقات التكرارية. يتطلب البرنامج من المستخدم إدخال عدد الأسطر التي سيتألف منها الشكل. من الضروري أن يكون هذا العدد فرديًا وأكبر من الصفر لضمان سلامة مخرجات البرنامج وتناسق الشكل المطلوب.
الحل الأول المقترح بلغة C لإنشاء النمط المطلوب:
# include <stdio.h>
void main () {
int n;
do {
printf ( "Enter an odd number as the number of lines: " );
scanf ( "%d" , &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 ) ) {
printf ( "*" );
} else {
printf ( " " );
}
}
printf ( "\n" );
}
}
توضح الطريقة الثانية أدناه نهجًا بديلاً لتحقيق نفس النتيجة:
# include <stdio.h>
void main () {
int n;
do {
printf ( "Enter an odd number as the number of lines: " );
scanf ( "%d" , &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++) {
printf ( "*" );
}
} else if (i == n / 2 + 1 ) {
for ( int j = 1 ; j <= n; j++) {
printf ( "*" );
}
} else {
for ( int k = 1 ; k <= n / 2 ; k++) {
printf ( " " );
}
for ( int j = 1 ; j <= n / 2 + 1 ; j++) {
printf ( "*" );
}
}
printf ( "\n" );
}
}
عند تشغيل البرنامج وإدخال الرقم 9 كعدد للأسطر، ستكون المخرجات كما يلي:
Enter an odd number as the number of lines: 9
*****
*****
*****
*****
*********
*****
*****
*****
*****
الشكل النهائي الناتج يطابق النمط المطلوب بدقة. قد يظهر اختلاف طفيف في العرض البصري بسبب الهوامش الافتراضية التي تطبقها بعض بيئات التشغيل بين الأسطر. للتحقق من صحة النتيجة، يُنصح بالتدقيق في عدد النجوم والمسافات الفارغة في كل سطر.