الخوارزمياتالحلقتين while و do while - التمرين الأول
- المطلوب
- الطريقة الأولى لحل التمرين باستخدام الحلقة for
- الطريقة الثانية لحل التمرين باستخدام الحلقة while
- الطريقة الثالثة لحل التمرين باستخدام الحلقة do while
المطلوب
أكتب برنامج يقوم بجمع جميع الأرقام من 1 إلى 100 و يعرض فقط المجموع النهائي بثلاث طرق.
أكتب كل طريقة في برنامج.
إرشادات
المتغير S
سنستخدمه لتخزين المجموع النهائي.
المتغير i
هو العداد الذي سنستخدمه في كل حلقة و الذي سنجعل قيمته تزيد 1 في كل دورة.
إذاً قيمة المتغير S
تساوي مجموع جميع القيم التي ستعطى للعداد i
في أي حلقة نستخدمها.
الصورة التالية توضح كيف ستزيد قيمة العداد i
و المتغير S
في كل حلقة إستخدمناها.
الطريقة الأولى لحل التمرين باستخدام الحلقة for
النتيجة المطلوبة
الخوارزمية
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
شرح الكود
- البرنامج 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
قبل تعريف الحلقة.
ثم تضع الشرط الذي سيجعل الحلقة تتوقف.
و في نهاية الحلقة عليك زيادة قيمة العداد.
النتيجة المطلوبة
الخوارزمية
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
شرح الكود
- البرنامج 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 مباشرةً.
النتيجة المطلوبة
الخوارزمية
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
شرح الكود
- نفس الشرح السابق تماماً, و لكن الفرق الوحيد هنا أنه في الحلقة do while يقوم البرنامج بتنفيذ الكود الموضوع في الحلقة قبل أن ينظر إلى الشرط الذي سيجعل الحلقة تتكرر من جديد أو تتوقف.
- إذاً في الحلقة do while الكود يتنفذ مرة واحدة على الأقل حتى لو كان الشرط يقضي بتوقيف الحلقة, لأنه ينظر إلى الشرط قبل بداية الدورة الجديدة و ليس قبل بداية أي دورة كما في الحلقتين while و for , لأن الشرط هنا يوضع في آخر الحلقة و ليس في الأول.
- ملاحظة: في حال نسيت وضع فاصلة منقوطة ; بعد الـ while سيظهر لك خطأ.