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) {
System.out.print("* \n");
for (int i=2; i<=7; i++)
{
System.out.print("* ");
for (int k=1; k<=i-2; k++)
{
System.out.print("- ");
}
System.out.print("* \n");
}
for (int j=1; j<=8; j++)
{
System.out.print("* ");
}
System.out.print("\n");
}
}
public class Symbols { public static void main (String[] args) { System.out.print("* \n"); for (int i=2; i<=7; i++) { System.out.print("* "); for (int k=1; k<=i-2; k++) { System.out.print("- "); } System.out.print("* \n"); } for (int j=1; j<=8; j++) { System.out.print("* "); } System.out.print("\n"); } }

شرح الكود

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


System.out.print("* \n");
System.out.print("* \n");
  • في السطر الأول من الشكل الذي ننوي رسمه لا داعي لوجود أي حلقة لذلك طبعنا الرمز * مباشرةً.


for (int i=2; i<=7; i++)
{
System.out.print("* ");
for (int k=1; k<=i-2; k++)
{
System.out.print("- ");
}
System.out.print("* \n");
}
for (int i=2; i<=7; i++) { System.out.print("* "); for (int k=1; k<=i-2; k++) { System.out.print("- "); } System.out.print("* \n"); }
  • من السطر الثاني و حتى السطر السابع من الشكل الذي ننوي رسمه. لاحظنا أنه يوجد معادلة ثابتة لرسمه و هي أن عدد الرموز - في كل سطر يساوي قيمة العداد i ناقص 2.
  • لذلك وجدنا أنه للحصول على هذا الشكل يجب أن نفعل التالي:
    • نقوم بطباعة الرمز * في بداية كل سطر.
    • نستخدم الحلقة k لتحديد كل رمز - سيتم طباعته.
    • نقوم بطباعة الرمز * في نهاءة كل سطر.


for (int j=1; j<=8; j++)
{
System.out.print("* ");
}
for (int j=1; j<=8; j++) { System.out.print("* "); }
  • السطر الأخير في الشكل الذي ننوي رسمه, إستخدمنا فيه حلقة واحدة إسمها j لطباعة الرمز * ثمانية مرات.

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


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