إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

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

    المطلوب

    أكتب برنامج لحساب قيمة المتغير S النهائية.


    إرشادات

    إذا ركزت قليلاً في عمليات القسمة الظاهرة في الصورة فستجد أن ناتج عمليات القسمة سيكون في كل مرة على الأغلب يحتوي على فاصلة عشرية كالتالي:
    1, -0.5, 0.33, -0.25, 0.2.

    • لذلك بما أننا ننوي تخزين ناتج عمليات قسمة في المتغير S فهذا يعني أنه يجب أن يكون معرف كـ double حتى لا نخسر أي رقم يحتوي على فاصلة عشرية يضاف عليه أو يطرح منه.
    • و بما أن قيمة العداد i ستدخل في كل عملية قسمة يتم إجراءها فهذا يعني أنه يجب أن يكون أيضاً معرف كـ double حتى لا نخسر أي رقم يحتوي على فاصلة عشرية ينتج عن عملية القسمة.

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

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

    • الرقم الموجود في الأعلى هو دائماً الرقم 1.
    • الرقم الموجود في الأسفل يبدأ من 1 وصولاً إلى 100 و هو عبارة عن قيمة العداد المستخدم في الحلقة في كل دورة.

    الخوارزمية

    كود الجافا

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

    شرح الكود


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


    		for (double i=1; i <=100; i++)
    		{
    			if ( i%2 == 1)
    			{
    				S = S + (1/i);
    			}
    			else if ( i%2 == 0)
    			{
    				S = S - (1/i);
    			}
    		}
    			
    • هنا قمنا بإنشاء حلقة من 1 إلى 100 و في كل دورة تزيد قيمة العداد 1.
    • في كل دورة يقوم البرنامج بفحص قيمة العداد i كالتالي:

      • يبدأ بالشرط الأول فيسأل نفسه, هل هي عدد مفرد؟
        إذا كان الجواب نعم, سيتم زيادة (الناتج من قسمة 1 على i) على قيمة S القديمة, ثم تخزين الناتج النهائي في S من جديد.
      • إذا لم تكن عدد مفرد ينتقل إلى الشرط الثاني, فيسأل نفسه: هل هي عدد مزدوج؟
        إذا كان الجواب نعم, سيتم إنقاص (الناتج من قسمة 1 على i) من قيمة S القديمة, ثم تخزين الناتج النهائي في S من جديد.


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

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

    الدورات

    أدوات مساعدة

    الأقسام

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