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