تعلم البرمجة للمبتدئين الحلقات المتداخلة - التمرين الحادي عشر

المطلوب

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

ملاحظة: في حال قام المستخدم بإدخال عدد زوجي قم بإضافة واحد عليه حتى يصبح عدد فردي لأن هذا الرسم يتطلب أن يكون عدد الأسطر فردي.


إرشادات

  • العدد الذي يدخله المستخدم قم بتخزينه في متغير إسمه n.
  • إستخدم الحلقة do while لإجبار المستخدم على إدخال قيمة أكبر من صفر.
  • فيما يلي طريقة تحليل الرسم كجدول.


الحل

var n;

do 
{
    write("Enter number of lines: ");
    n = read();
}
while (n<=0 || isNaN(n));

if (n%2 == 0)
{
    n++;
}

for (var i=1; i<=n; i++)
{
    if (i<n/2)
	{
		for (var k=1; k<=(n/2)-i+1; k++)
		{
			write(" ");
		}
        for (var j=1; j<=i; j++)
		{
			write("*");
		}
	}
    else
	{
        for (var k=1; k<i-(n/2); k++)
		{
			write(" ");
		}
		for (var j=1; j<=n-i+1; j++)
		{
			write("*");
		}
	}
    
    write("\n");
}
        

سنحصل على النتيجة التالية في حال أدخلنا العدد 4 أو 5 عند التشغيل.

Enter number of lines: 5
  *
 **
***
 **
  *

جرب الكود


شرح الكود

الفيديو التالي يشرح طريقة عمل الكود خطوة خطوة.

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة