Menu
CoddyTech

معامل باقي القسمة (Modulo)

جزء من قسم الأساسيات في رحلة Rust على Coddy. الدرس 16 من 75.

يعطي عامل باقي القسمة % باقي عملية القسمة. في Rust، يُستخدم بصياغة بسيطة:

let result = dividend % divisor;
  • المقسوم: العدد الذي يُقسَم.
  • المقسوم عليه: العدد الذي يقسم المقسوم.
  • الناتج: باقي القسمة.

على سبيل المثال:

let result = 10 % 3;

هنا، يُقسَم 10 على 3. يتّسع العدد 3 في العدد 10 ثلاث مرات، ويتبقى 1. لذا، ستكون قيمة result هي 1.

إذا كان المقسوم أصغر من المقسوم عليه، فإن المقسوم عليه يتّسع صفر مرة، لذا يكون الباقي هو المقسوم نفسه: 2 % 9 يساوي 2.

عادةً ما تُستخدم عملية باقي القسمة للتحقق مما إذا كان العدد زوجيًا أم فرديًا:

  • إذا كان العدد زوجيًا، فستكون بقية قسمته على 2 مساويةً لـ 0.
  • إذا كان العدد فرديًا، فستكون بقية قسمته على 2 مساويةً لـ 1، أو -1 إذا كان العدد سالبًا.

عند استخدام معامل باقي القسمة مع الأعداد ذات الفاصلة العائمة (f64)، فإنه يعمل بطريقة مشابهة للأعداد الصحيحة، ويمكن أن يحتوي الباقي على جزء عشري. على سبيل المثال:

let result: f64 = 5.2 % 2.0;
// قيمة result تساوي تقريبًا 1.2

إليك كيفية عمل ذلك: يدخل 2.0 في 5.2 مرتين (4.0)، والباقي هو 1.2 (5.2 - 4.0 = 1.2). لا يمكن لـ f64 تخزين 5.2 بدقة، لذا فإن طباعة result تُظهر 1.2000000000000002.

مثال آخر:

let result: f64 = 7.8 % 3.5;
// قيمة result حوالي 0.8 (تطبع 0.7999999999999998)
challenge icon

التحدي

مبتدئ

اكتب تعليمات برمجية تهيّئ ثلاثة متغيرات، a (i32) وb (f64) وc (i32) بالقيم 9 و2.6 و11 (على التوالي).

بعد ذلك، هيّئ المتغيرات التالية:

  • d (i32) الذي سيحمل نتيجة باقي قسمة a على 2 
  • e (i32) الذي سيحمل نتيجة باقي قسمة a على 3
  • f (f64) الذي سيحمل نتيجة باقي قسمة b على 1.5
  • g (f64) الذي سيحمل نتيجة باقي قسمة b على 3.9
  • h (i32) الذي سيحمل نتيجة باقي قسمة c على 10

تحقق من النتيجة ولاحظ كيف تؤثر المقسومات والمقسومات عليها المختلفة في النتيجة.

جرّب بنفسك

fn main() {
    // اكتب شيفرتك أدناه
    
    
    // لا تغيّر السطر أدناه
    println!("a = {}", a);
    println!("b = {}", b);
    println!("c = {}", c);
    println!("d = {}", d);
    println!("e = {}", e);
    println!("f = {}", f);
    println!("g = {}", g);
    println!("h = {}", h);
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Rust عبر الإنترنت