Algorithmsالحلقات المتداخلة في الخوارزميات - التمرين السابع

المطلوب

إستخدم الحلقات لطباعة الشكل التالي


النتيجة المطلوبة

طريقة التحليل

الخوارزمية

كود الجافا

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. لذلك تم طباعة * * * * *.

دورات

أدوات