Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

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

المطلوب

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


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

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

الخوارزمية

كود الجافا

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

نرجو منك الإنتقال لدورة البرمجة للمبتدئين الجديدة التي أنشأنها كبديل أفضل لهذه الدورة ففي تلك الدورة قمنا بتبسيط الشرح أكثر و جعلناك قادر على تجربة الكود بشكل مباشر في موقعنا.


دورة تعلم البرمجة للمبتدئين >