اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله،

مرحبا شباب، لدي استشكال في فهم هذه المعادلة قليلا، لقد وجدتها في احدى التحديات على موقع هرموش 

الستشكال هنا:

for (int i = 1; i <= n; i++) {
      for (int k = 1; k <= n - i; k++) {
        System.out.print(" ");
      }
      System.out.print("*");
      for (int j = 1; j < (i * 2) - 1; j++) {
        System.out.print("*");
      }
      System.out.println();
    }

وخاصة 


      for (int j = 1; j < (i * 2) - 1; j++) {
        System.out.print("*");
      }

وشكرا لكم 

Recommended Posts

  • 1
نشر

وعليكم السلام، أهلا بك،

الكود يستخدم لطباعة شكل هرمي باستخدام الرمز * كالآتي:

5f5a5da7c8c41_Annotation2020-09-10190839.png.3a77bbec687558c67f1aae2baeded959.png

لديك ثلاثة حلقات for تستخدم لطباعة الشكل بالترتيب التالي:

  • الحلقة الأولى الأساسية: 
for (int i = 1; i <= n; i++)

وهي تقوم بتكرار مابداخلها عدد n مرة وتستخدم لطباعة طوابق الشكل الهرمي اعتماداً على قيمة n (عدد الطوابق).

  • الحلقة الثانية:
for (int k = 1; k <= n - i; k++){
	System.out.print(" ");
}

وتستخدم لعمل المسافات في البداية قبل طباعة النجوم المستخدمة لعمل الشكل الهرمي، ويلاحظ أنها تتكرر n - i مرة، أي تتم طباعة المسافات اعتماداً على قيمة i (تعداد الطابق الهرمي) بحيث تتم طباعة المسافات بشكل متناقص كل مرة عند طباعة طابق هرمي جديد من الأعلى للأسفل.

  • الحلقة الثالثة:
System.out.print("*");
for (int j = 1; j < (i * 2) - 1; j++) {
    System.out.print("*");
}

بعد إكمال طباعة المسافات، تتم طباعة نجم وحيد أولاً ومن ثم طباعة عدد زوجي من النجوم كل مرة ابتداءً بعدد 2 من النجوم في الطابق الثاني (أسفل العلوي) ومن ثم بشكل متزايد 4، 6، 8 لدى كل طابق جديد. ويمكن كذلك تبسيط الحلقة الثالثة بالشكل التالي:

for (int j = 1; j < (i * 2); j++) {
     System.out.print("*");
}

بحيث يتم الاستغناء عن طباعة النجم المنفرد في البداية ومن ثم طباعة عدد فردي من النجوم في كل طابق بعدد نجم وحيد في الطابق العلوي ومن ثم  3، 5، 7 في الطوابق اللاحقة وهكذا.

وأخيراً بعد إكمال طباعة النجوم يتم عمل سطر جديد في نهاية الحلقة للطابق الجديد في الهرم باستخدام السطر:

System.out.println();

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...