الخوارزمياتالحلقات المتداخلة - التمرين الخامس
المطلوب
إستخدم الحلقات لطباعة الشكل التالي.
بما أن هذا الشكل يشبه تماماً الشكل السابق, يمكننا إعتماد نفس مبدأ التحليل و إستخدام نفس المعادلة السابقة التي وضعناها للحلقة j
.
و في التمرين التالي أيضاً سنثبت لك أنه بإمكانك أن تكتب كود آخر و تحصل على نفس هذا الشكل أيضاً.
النتيجة المطلوبة
طريقة التحليل الأولى
بما أن عدد النجوم غير ثابت في كل سطر, لا يمكننا تحليل طريقة إستخدام الحلقات لرسم الشكل كالتالي.
طريقة التحليل الثانية
الأسلوب التالي في التحليل يتيح لنا رسم أي شكل هندسي مهما كان معقداً.
هنا نقوم بحساب عدد النجوم في كل سطر لمعرفة كيف سنكتب الحلقتين i
و j
لرسم الشكل المطلوب منك.
الخوارزمية
كود الجافا
public class Stars { public static void main (String[] args) { for (int i=1; i<=5; i++) { for (int j=1; j<=5-i+1; j++) { System.out.print("* "); } System.out.print("\n"); } } }
شرح الكود
- هذا التمرين هو نفسه التمرين السابق من حيث الشكل, الفرق الوحيد أننا هنا قمنا بعرض نجوم و ليس قيم العداد
j
.
for (int i=1; i<=5; i++)
- الحلقة
i
تعني أنه عندنا 5 أسطر.
for (int j=1; j<=5-i+1; j++) { System.out.print("* "); }
- عدد دورات الحلقة
j
مرتبط بعدد الأسطر الإجمالي و بقيمة العدادi
في كل سطر.
فعلياً, في كل سطر عدد دورات الحلقةj
يساوي عدد جميع الأسطر, ناقص رقم السطر الحالي, زائد واحد.
و هكذا سيبدو أنه كلما زادت قيمة العدادi
واحداً, سيقل عدد دورات الحلقةj
واحداً أيضاُ.
أي كلما إنتقلنا إلى سطر كلما نقص عدد الأعمدة واحد.