Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

الخوارزمياتالحلقتين while و do while - التمرين الأول

  • المطلوب
  • الطريقة الأولى لحل التمرين باستخدام الحلقة for
  • الطريقة الثانية لحل التمرين باستخدام الحلقة while
  • الطريقة الثالثة لحل التمرين باستخدام الحلقة do while

المطلوب

أكتب برنامج يقوم بجمع جميع الأرقام من 1 إلى 100 و يعرض فقط المجموع النهائي بثلاث طرق.
أكتب كل طريقة في برنامج.


إرشادات

المتغير S سنستخدمه لتخزين المجموع النهائي.
المتغير i هو العداد الذي سنستخدمه في كل حلقة و الذي سنجعل قيمته تزيد 1 في كل دورة.
إذاً قيمة المتغير S تساوي مجموع جميع القيم التي ستعطى للعداد i في أي حلقة نستخدمها.

الصورة التالية توضح كيف ستزيد قيمة العداد i و المتغير S في كل حلقة إستخدمناها.

الطريقة الأولى لحل التمرين باستخدام الحلقة for

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

الخوارزمية

شرح طريقة عمل الخوارزمية بدقة

كود الجافا

public class Sum {
 
    public static void main (String[] args) {
 
        int i;
        int S = 0;
 
        for ( i=1; i <=100; i=i+1)
        {
           S = S + i;
        }
 
        System.out.print("The sum is: " + S + "\n");
 
    }
 
}

شرح الكود

  • البرنامج Sum يحتوي على أربع أوامر و حلقة.
  • هذه المرة قمنا بتعريف المتغير int i; الذي سنستخدمه كعداد في الحلقة قبل تعريف الحلقة for و ليس بداخلها, و هذا لا يؤثر أبداً في الكود.
  • في الحلقة for إستخدمنا العداد i ( لم نقم بتعريفه من جديد ) و جعلناها تبدأ من 1 إلى 100, و جعلنا العداد i يزيد 1 فقط في كل دورة.
  • قمنا بتعريف المتغير int S = 0; لأننا سنستخدمه لتخزين ناتج جميع عمليات الجمع التي سيتم إجراءها في الحلقة.
        وضعنا القيمة 0 كقيمة أولية للمتغير S لأننا مجبرين على إعطائه أي قيمة قبل إستخدامه في عملية الجمع. و القيمة 0 بطبيعة الحال لن تؤثر على عملية الجمع.
  • الكود S = S + i; الذي وضعناه في الحلقة يعني أنه في كل دورة سيتم إضافة قيمة العداد i الحالية على قيمة المتغير S ثم وضع ناتج الجمع من جديد في المتغير S.
  • في الأخير قمنا بعرض قيمة المتغير S التي تمثل ناتج جمع جميع القيم التي أعطيت للعداد i في الحلقة, و جعلنا وقت تنفيذ البرنامج يظهر على سطر جديد من خلال الـ \n.

الطريقة الثانية لحل التمرين باستخدام الحلقة while


إرشادات

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


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

الخوارزمية

شرح طريقة عمل الخوارزمية بدقة

كود الجافا

public class Sum {
 
    public static void main (String[] args) {
 
        int i = 1;
        int S = 0;
 
        while ( i <=100 )
        {
            S = S + i;
            i = i + 1;
        }
 
        System.out.print("The sum is: " + S + "\n");
 
    }
 
}

شرح الكود

  • البرنامج Sum يحتوي على خمس أوامر و حلقة.
  • هنا أنت مجبر على تعريف العداد الذي ستستخدمه في الحلقة و إعطائه قيمة أولية قبل تعريف الحلقة أيضاً.
        لذلك قمنا بتعريف المتغير int i = 1; الذي سنستخدمه كعداد في الحلقة قبل تعريفها.
  • قمنا بتعريف المتغير int S = 0; لأننا سنستخدمه لتخزين ناتج جميع عمليات الجمع التي سيتم إجراءها في الحلقة.
        وضعنا القيمة 0 كقيمة أولية للمتغير S لأننا مجبرين على إعطائه أي قيمة قبل إستخدامه في عملية الجمع. و القيمة 0 بطبيعة الحال لن تؤثر على عملية الجمع.
  • الحلقة while ستستمر في تنفيذ الكود الموجود فيها طالما أن قيمة العداد i أصغر أو تساوي 100. و هكذا نكون جعلناها تبدأ من 1 إلى 100.
  • الكود S = S + i; الذي وضعناه في الحلقة يعني أنه في كل دورة سيتم إضافة قيمة العداد i الحالية على قيمة المتغير S ثم وضع ناتج الجمع من جديد في المتغير S.
  • الكود i = i + 1; الذي وضعناه في الحلقة يعني أنه في نهاية كل دورة سيتم إضافة 1 على قيمة العداد i.
  • في الأخير قمنا بعرض قيمة المتغير S التي تمثل ناتج جمع جميع القيم التي أعطيت للعداد i في الحلقة, و جعلنا وقت تنفيذ البرنامج يظهر على سطر جديد من خلال الـ \n.

الطريقة الثالثة لحل التمرين باستخدام الحلقة do while


إرشادات

هنا سيكون عليك تعريف العداد i قبل تعريف الحلقة.
ثم تضع الكود كله بداخل حدود الـ do مع زيادة قيمة العداد فيها أيضاً.
في الأخير, عليك وضع الشرط الذي سيجعل الحلقة تتوقف بداخل الـ while و تحت الـ do مباشرةً.


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

الخوارزمية

شرح طريقة عمل الخوارزمية بدقة

كود الجافا

public class Sum {
 
    public static void main (String[] args) {
 
        int i = 1;
        int S = 0;
 
        do
        {
           S = S + i;
           i = i + 1;
        }
        while ( i <=100 );
 
        System.out.print("The sum is: " + S + "\n");
 
    }
 
}

شرح الكود

  • نفس الشرح السابق تماماً, و لكن الفرق الوحيد هنا أنه في الحلقة do while يقوم البرنامج بتنفيذ الكود الموضوع في الحلقة قبل أن ينظر إلى الشرط الذي سيجعل الحلقة تتكرر من جديد أو تتوقف.
  • إذاً في الحلقة do while الكود يتنفذ مرة واحدة على الأقل حتى لو كان الشرط يقضي بتوقيف الحلقة, لأنه ينظر إلى الشرط قبل بداية الدورة الجديدة و ليس قبل بداية أي دورة كما في الحلقتين while و for , لأن الشرط هنا يوضع في آخر الحلقة و ليس في الأول.
  • ملاحظة: في حال نسيت وضع فاصلة منقوطة ; بعد الـ while سيظهر لك خطأ.

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


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