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