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