الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]كيف نستخدم Modulo% ?

بدأه طالبة علوم في 26 ديسمبر 2012 · 1 رد · 956 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أحبتي عندي سؤال في العمليات الحسابيه

الا وهي

( 3 % 4 ) * 6 = ( 3 ) * 6 = 18

السؤال

لماذا اصبح الناتج ( 3 % 4 ) =3

ماهي الطريقته

وايضاً سؤال الاخر

cout << a/static_cast<double>(b) + 2*c << endl;

علماً بأن ..........a = 13, b = 5, and c = 17.5.

الناتج

= 13 / 5.0 + 2*17.5 = 2.6 + 35 = 37.6

أتمنى الاجابه على سؤالي لمن يعرف الطريقه

وشكراً

تم تعديل هذه المشاركة بواسطة محمد عودة في 27 ديسمبر 2012 في 08:30 — السبب: استخدام كود تنسيق ltr لضبط لكي تتناسب اﻻكوا

#2

يرجى أستخدام التنسيق المناسب خصوصا مع الأرقام و الأكواد لأن قرائة الكود و الأرقام بهذه الطريقه ستجعل النتائج خاطئة.

أولا:

اقتباس
لماذا اصبح الناتج ( 3 % 4 ) =3

الإجابة بالتعليق خاطئة حيث ان mimetex.cgi?4%3 = 1 أما mimetex.cgi?3%4 = 3 و الفرق بينهم كبير.

المعامل modulo يستخدم لحساب باقي القسمه و الذى إذا تم إضافته على ناتج قسمة الرقمين مضروبا فى المقام يصبح الناتج هو قيمة البسط، مثلا:

a div b = c
a mod b = d
b * c + d = a

17 div 3 = 5
17 mod 3 = 2
3 * 5 + 2 = 17

و بالتالي إجابة التعليق خاطئة لأن الناتج سيكون 1 و ليس 3:

4 div 3 = 1
4 mod 3 = 1
3 * 1 + 1 = 4

أما الإجابة الصحيحه هي:

3 div 4 = 0
3 mod 4 = 3
4 * 0 + 3 = 3

للمزيد من المعلومات عن باقي القسمه.

ثانيا:

 cout << a/static_cast<double>(b) + 2*c << endl;

ملحوظة: لم يتم وضع نوع المتغيرات a, b and c و تم اعتبار انهم من نوع int

تنفيذ العملية الحسابية يتم حسب أولوية تنفيذ العمليات الحسابية حيث الأقواس ثم الضرب و القسمة ثم الجمع و الطرح، و حيث فى الكود تم استخدام conversion operator للتحويل لـ double فالناتج النهائي سيكون من double و لهذا تم احتساب الكسر.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة C++er في 26 ديسمبر 2012 في 23:17

1

مدونتي: C++ Tips and Tricks

مواضيع مشابهة