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

المطلوب

أكتب برنامج لحساب قيمة المتغير 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");
     
        }
    	
    }
    				

دورات

أدوات