اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

عامل modulo هو عامل رياضي يُستخدم لإيجاد بقية قسمة عدد صحيح على آخر.

مثال:
12 ÷ 10 = 1 (باقي 2)
في هذا المثال، نريد إيجاد آخر رقم في 12. نقوم بقسمة 12 على 10. ناتج القسمة هو 1، والباقي هو 2.

كيف يعمل %10:
 %10 هو نفس كتابة  10.
عندما نقوم بقسمة عدد صحيح على 10، فإن الباقي هو آخر رقم في العدد.
مثال بسيط يمكنك الفهم منه

int N = 12;
int M = 13;

cout << N%10 + M%10;
  • N%10 تعطي آخر رقم في N (2).
  • M%10 تعطي آخر رقم في M (3).
  • N%10 + M%10 تعطي مجموع آخر رقم هو (5).
     
  • 0
نشر

يجب التفرقة بين الـ modulo والـ remainder فكلاهما يستخدمان نفس العلامة، وكل لغة تقوم بشكل إفتراضي بتطبيق سواء modulo أو remainder.

وفي C++، يُستخدم العامل % كعامل modulo، والذي يُعيد الباقي من القسمة عند قسمة عدد على عدد آخر.

ولكن، نستطيع استخدامه أيضًا كعامل remainder في حالة الأعداد السالبة، حيث يختلف الناتج عن عملية القسمة في حالة الاستخدام مع الأعداد السالبة.

حيث أنّ الـ Modulo:

  • في العمليات الحسابية العادية، يُعتبر الـ Modulo عملية تُعيد الباقي من القسمة العددية أي 10 Mod 3 يُعيد قيمة 1، لأن 10 ÷ 3 تساوي 3 مع باقي 1.
  • في البرمجة، خصوصاً في لغة C/C++، الـ Modulo تُعيد قيمة سالبة إذا كان أحد العددين سالبًا. مثل -10 Mod 3 يُعيد -1، لكن ذلك السلوك يختلف بين اللغات.

بينما الـ Remainder:

  • الـ Remainder هو الباقي الإيجابي بعد القسمة  ففي الرياضيات، يكون الـ Remainder دائمًا إيجابيًا.
  • في بعض اللغات البرمجية مثل Python وJava، عملية الـ Remainder تعتبر عملية للحصول على الباقي الإيجابي من القسمة، مثل -10 % 3 في Python يُعيد 2، وهو باقي القسمة الإيجابي.

وإليك مثال شامل يوضح الفرق بين الـ Modulo والـ Remainder في C++:

#include <iostream>
using namespace std;

int main() {
    // Modulo
    cout << "Modulo Examples:" << endl;
    cout << "10 % 3 = " << 10 % 3 << endl;  // يُعيد 1، لأن الباقي من قسمة 10 على 3 هو 1
    cout << "-10 % 3 = " << -10 % 3 << endl;  // يُعيد -1، لأن الباقي من قسمة -10 على 3 هو -1
    cout << "10 % -3 = " << 10 % -3 << endl;  // يُعيد 1، لأن الباقي من قسمة 10 على -3 هو 1
    cout << "-10 % -3 = " << -10 % -3 << endl;  // يُعيد -1، لأن الباقي من قسمة -10 على -3 هو -1

    // Remainder
    cout << "\nRemainder Examples:" << endl;
    cout << "10 % 3 = " << (10 % 3 + 3) % 3 << endl;  // يُعيد 1، لأن الباقي من قسمة 10 على 3 هو 1
    cout << "-10 % 3 = " << (-10 % 3 + 3) % 3 << endl;  // يُعيد 2، لأن الباقي من قسمة -10 على 3 هو -1، ولكن بعد إضافة 3 يصبح 2
    cout << "10 % -3 = " << (10 % -3 + -3) % -3 << endl;  // يُعيد -2، لأن الباقي من قسمة 10 على -3 هو 1، ولكن بعد إضافة -3 يصبح -2
    cout << "-10 % -3 = " << (-10 % -3 + -3) % -3 << endl;  // يُعيد -1، لأن الباقي من قسمة -10 على -3 هو -1

    return 0;
}

 

  • 0
نشر

بشكل عام ومبسط ال % في البرمجة تعني باقي القسمة 

لنشرح ذلك بطريقة الرياضيات والحسابات بناءا على المثال الذي قمت بتقديمه 

   cout << N%10 + M%10;
اقتباس

N = 12 && M = 13

result = 5 

عندما نقوم ب تقسيم ال 12 على 10 فأن العملية تجري بهذه الطريقة (اظهرت لك طريقة الدرج والشجرة لاني لا اعلم ما التي تستخدمها عادة)

image.png.2f3658d7288401e33af29faa71c4d45c.png

اذا فأن العدد 2 الذي بقي من قسمة 12على10 هو نتيجة 10%12

وبناءا على المثال الذي اعطيتنا اياه ف ان نتيجة (10%12) هي و  (10%13) فهي 3 ومجموع النتيجتان هو 5 لذلك قام البرنامج باعطائك

result = 5

بالتوفيق لك 

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...