كيف يحل برنامج بلغة ++C عندما يطلب من المستخدم إدخال رقمين ويقوم البرنامج بقسمة الرقمين على بعض بدون عملية قسمة بل باستخدام جمل الدوران؟

1 إجابات
profile/ميمونة-الخصاونة
ميمونة الخصاونة
مهندسة حاسوب، خبرة في جودة اجهزة المختبرات
.
٢٠ مايو ٢٠٢١
قبل ٤ سنوات
سأشرح لك المبدأ العام الذي يعتمد عليه كتابة كود القسمة باستخدام For Loop:

مبدأ القسمة باستخدام For Loop يعتمد على استخدام الطرح المُتكرّر؛ حيث سأعرض لك مثال على قسمة بدون باقي لإيضاح الفكرة العامّة.

لنفترض أن لديك المقسوم هو 20 والمقسوم عليه هو 5، فستكون القسمة كالتالي:

  • تطرح المقسوم عليه من المقسوم وتأخذ ناتج الطرح؛ (نطرح 5 من 20، والناتج سيكون 15)
  • ستقوم بمقارنة قيمة الناتج بقيمة المقسوم عليه؛ (هل 15 أقل من 5).
  • إذا كان الجواب لا سنكمل طرح (الناتج) من المقسوم عليه.
  • إذا كان الجواب نعم فذلك يعني أن عملية الطرح انتهت.
  • في المثال هذا سنكمل عملية الطرح: حيث (نطرح 5 من 15 والناتج سيكون 10).
  • ولأن 10 ليست أقل من 5، سنستمر في الطرح، (سنطرح 5 من 10 وسيكون الناتج 5).
  • هل (5 أقل من 5)؛ الجواب لا، إذن سنكل عملية الطرح، (ناتج طرح 5 من 5 سيكون 0).
  • والنتيجة (0 أقل من 5)، وبالتالي ستنتهي عملية الطرح، وذلك يعني أيضاً أن عملية القسمة قد انتهت أيضاً.  
  • ونتيجة عملية القسمة سيكون مساوياً لعدد المرّات التي قُمت بها بإجراء عملية الطرح. والتي ستكون هنا 4 وهي ناتج قسمة (20 على 5).

هذا هو المبدأ العام، إذا استطعت أن تفهمه تماماَ، ستستطيع أن تكتب أي كود بأي لغة.


ستحتاج عدّة متغيرات:

  • مُتغيّر يُمثل قيمة المقسوم.
  • مُتغيّر يمثل قيمة المقسوم عليه.
  • مُتغيّر يتم فيه حفظ ناتج طرح المقسوم من المقسوم عليه، وستتغير قيمته في كل عملية طرح.
  • مُتغيّر يتم تعريفه، ووضع قيمة 0 بداخله كقيمة مبدئية، وسيتم إضافة 1 إليه في كل مرة تقوم فيها بإجراء عملية الطرح، وهو المتغير الذي ستقوم بإرجاع قيمته في نهاية العملية والذي يُمثّل نتيجة عملية القسمة النهائية.