معامل باقي القسمة (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)التحدي
مبتدئاكتب تعليمات برمجية تهيّئ ثلاثة متغيرات، a (i32) وb (f64) وc (i32) بالقيم 9 و2.6 و11 (على التوالي).
بعد ذلك، هيّئ المتغيرات التالية:
d (i32)الذي سيحمل نتيجة باقي قسمةaعلى2e (i32)الذي سيحمل نتيجة باقي قسمةaعلى3f (f64)الذي سيحمل نتيجة باقي قسمةbعلى1.5g (f64)الذي سيحمل نتيجة باقي قسمةbعلى3.9h (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);
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
الطباعة على الكونسولقراءة مدخلات المستخدممراجعة - حتى 120مراجعة - True أو False2المتغيرات - الجزء الأول
الأرقامالمحارف (Char)النصوص (String)القيم المنطقية (Boolean)المتغيرات القابلة للتغيير5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالث11الدوال
تعريف الدوالالمعاملات والوسائطقيم الإرجاعقيم إرجاع متعددةمراجعة - دالة Sigmaمراجعة - دالة التحقق14التكرار عبر المصفوفات
دليل النطاق (Range)حلقة For المحسنةالاستعارة في الحلقةعمليات المصفوفات الشائعة3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةاستنتاج النوعمراجعة - تهيئة المتغيراتتحويل الأنواع9الحلقات التكرارية
For عبر السلاسلحلقة Whileجملة Breakجملة Continueالحلقات المتداخلةتسميات الحلقاتالحلقة اللانهائيةمراجعة - الإدخال الديناميكيتدرّب بنفسك: مترجم Rust عبر الإنترنت