الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

المناهج السعودية

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

الحلقات المتداخلة في الخوارزميات – التمرين الثامن

المطلوب

أكتب نفس البرنامج السابق بطريقة ثانية, الشكل المطلوب رسمه هو التالي

 

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

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

الخوارزمية

كود الجافا

  1. package symbols;
  2. public class Symbols {
  3.     public static void main (String[] args) {
  4.         for (int i=5; i>=1; i–)
  5.         {
  6.             for (int k=1; k<=i-1; k++)
  7.             {
  8.                 System.out.print(“- “);
  9.             }
  10.             for (int j=1; j<=5-i+1; j++)
  11.             {
  12.                 System.out.print(“* “);
  13.             }
  14.             System.out.print(“\n”);
  15.         }
  16.     }
  17. }

شرح الكود

    • بشكل عام, في كل دورة من دورات الحلقة i  سيحدث التالي:
      • تنفيذ الحلقة k لطباعة الرموز -
      • تنفيذ الحلقة j لطباعة الرموز *
      • تنفيذ أمر الطباعة الموضوع بعد الحلقة j للنزول على سطر جديد بعد طباعة جميع الرموز الموجودة في كل سطر.
  1.         for (int i=5; i>=1; i–)
    • الحلقة i تعني أنه عندنا 5 أسطر.
    • لاحظ أننا جعلنا قيمة العداد i تقل في كل دورة هذه المرة.
  1.             for (int k=1; k<=i-1; k++)
  2.             {
  3.                 System.out.print(“- “);
  4.             }
    • الحلقة k مرتبطة بالعداد i
      هنا كلما نقصت قيمة العداد i كلما نقص معها عدد دورات الحلقة k
      أي كلما إنتقلنا إلى سطر كلما نقص عدد الرموز - واحداً. لذلك كانت النتيجة كالتالي:

      • في دورة الحلقة i الأولى, كانت قيمة العداد i تساوي 5 فكان عدد دورات الحلقة k يساوي 4. لذلك تم طباعة - - - -  
      • في دورة الحلقة i الثانية, كانت قيمة العداد i تساوي 4 فكان عدد دورات الحلقة k يساوي 3. لذلك تم طباعة - - -    
      • في دورة الحلقة i الثالثة, كانت قيمة العداد i تساوي 3 فكان عدد دورات الحلقة k يساوي 2. لذلك تم طباعة - -      
      • في دورة الحلقة i الرابعة, كانت قيمة العداد i تساوي 2 فكان عدد دورات الحلقة k يساوي 1. لذلك تم طباعة -        
  1.             for (int j=1; j<=5-i+1; j++)
  2.             {
  3.                 System.out.print(“* “);
  4.             }
  • الحلقة 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. لذلك تم طباعة * * * * *

 

اترك رد