الخوارزمياتالحلقات المتداخلة - التمرين السابع
المطلوب
إستخدم الحلقات لطباعة الشكل التالي.
النتيجة المطلوبة
طريقة التحليل
الخوارزمية
كود الجافا
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 لذلك تم طباعة* * * * *