الخوارزميات العوامل - التمرين الخامس

المطلوب

أكتب برنامج لحساب قيمة المتغير S النهائية.
إجعل البرنامج يظهر لك قيمة العداد و قيمة المتغير S في كل دورة.


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

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

الخوارزمية

كود الجافا

public class Sum_Odd_And_Even_Numbers {
 
    public static void main (String[] args) {
 
        int S=0;
 
        for (int i=1; i <=10; i++)
        {
            if ( i%2 == 1)
            {
                System.out.print("S = " +S+ " + " +i+ " = " +(S+i)+ "\n");
                S = S + i;
            }
            else if ( i%2 == 0)
            {
                System.out.print("S = " +S+ " - " +i+ " = " +(S-i)+ "\n");
                S = S - i;
            }
        }
 
        System.out.print("\n");
 
    }
	
}
		

شرح الكود


		int S=0;
			
  • هنا قمنا بتعريف المتغير S لتخزين المجموع لذلك أعطيناه القيمة 0 كقيمة أولية.


		for (int i=1; i <=10; i++)
		{
			if ( i%2 == 1)
			{
				System.out.print("S = " +S+ " + " +i+ " = " +(S+i)+ "\n");
				S = S + i;
			}
			else if ( i%2 == 0)
			{
				System.out.print("S = " +S+ " - " +i+ " = " +(S-i)+ "\n");
				S = S - i;
			}
		}
			
  • هنا قمنا بإنشاء حلقة من 1 إلى 10 و في كل دورة تزيد قيمة العداد 1.
  • في كل دورة يقوم البرنامج بفحص قيمة العداد i.
    يسأل نفسه: هل هي عدد مفرد؟
    إذا لم تكن عدد مفرد ينتقل إلى الشرط الثاني, فيسأل نفسه: هل هي عدد مزدوج؟
    - إذا كانت قيمة العداد i مفردة سيقوم بزيادتها على قيمة المتغير S.
    - إذا كانت قيمة العداد i مزدوجة سيقوم بإنقاصها من قيمة المتغير S.


  • ملاحظة: بالمنطق إذا لم يكن العدد مفرداً فإنه حتماً مزدوج. إذاً كان بإمكاننا وضع جملة else بدل الجملة else if.
    في الواقع هنا يفضّل وضع else لكي لا تجعل الكمبيوتر يقوم بتحليل قيمة العداد ليعرف إذا كانت مزدوجة أم لا لأنها حتماً ستكون مزدوجة إذا قام بفحصها أولاً و لم يجدها مفردة.

  • إذا أردت أن يكون الكود ممتازاً فعليك كتابة البرنامج بهذه الطريقة:
public class Sum_Odd_And_Even_Numbers {
 
    public static void main (String[] args) {
 
        int S=0;
 
        for (int i=1; i <=10; i++)
        {
            if ( i%2 == 1)
            {
                System.out.print("S = " +S+ " + " +i+ " = " +(S+i)+ "\n");
                S = S + i;
            }
            else
            {
                System.out.print("S = " +S+ " - " +i+ " = " +(S-i)+ "\n");
                S = S - i;
            }
        }
 
        System.out.print("\n");
 
    }
	
}
			

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

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

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة