Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals 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");
}
}
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");
}
}
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");
}
}
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 سيظهر لك خطأ.

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


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