Menu
Coddy logo textTech

אופרטור מודולו

חלק מהיחידה יסודות במסלול ה-C++ של Coddy. שיעור 17 מתוך 74.

האופרטור מודולו % מחזיר את השארית של חלוקה. ב-C++ משתמשים בו בתחביר פשוט:

result = dividend % divisor;
  • dividend: המספר שמחלקים.
  • divisor: המספר שבו מחלקים את המחולק.
  • result: השארית של החלוקה.

לדוגמה:

result = 10 % 3;

כאן, 10 מחולק ב־3. 3 נכנס ב־10 שלוש פעמים, והשארית היא 1. לכן, result יהיה 1.

בדרך כלל משתמשים בפעולת מודולו כדי לבדוק אם מספר הוא זוגי או אי־זוגי:

  • אם מספר זוגי, חלוקתו ב־2 תשאיר שארית של 0.
  • אם מספר אי־זוגי, חלוקתו ב־2 תשאיר שארית של 1.

כשעובדים עם מספרים בנקודה צפה (double) ב-C++, אי אפשר להשתמש ישירות באופרטור המודולו %. במקום זאת, צריך להשתמש בפונקציה fmod() מהספרייה <cmath>. היא פועלת באופן דומה לאופרטור המודולו, אך שומרת על הדיוק העשרוני. לדוגמה:

#include <cmath>

double result = fmod(5.2, 2.0);
// הערך של result הוא 1.2

כך זה עובד: 2.0 נכנס ב־5.2 פעמיים (4.0), והשארית היא 1.2 (5.2 - 4.0 = 1.2).

דוגמה נוספת:

double result = fmod(7.8, 3.5);
// result הוא 0.8

כאשר המחלק גדול מהמחולק, התוצאה שווה למחולק. הדבר נכון גם עבור % וגם עבור fmod().

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

למה? המחלק נכנס אפס פעמים, ולכן המחולק כולו הוא השארית.

challenge icon

אתגר

מתחילים

כתבו קוד שמאתחל שלושה משתנים, a (int), b (double) ו־c (int) בערכים 9, 2.6 ו־11 (בהתאמה).

לאחר מכן, אתחלו את המשתנים הבאים:

  • d (int) שיכיל את תוצאת חישוב השארית של a בחלוקה ל־2 
  • e (int) שיכיל את תוצאת חישוב השארית של a בחלוקה ל־3
  • f (double) שיכיל את תוצאת חישוב השארית של b בחלוקה ל־1.5
  • g (double) שיכיל את תוצאת חישוב השארית של b בחלוקה ל־3.9
  • h (int) שיכיל את תוצאת חישוב השארית של c בחלוקה ל־10

בדקו את התוצאה וראו כיצד מחולקים ומחלקים שונים משפיעים על התוצאה.

נסו בעצמכם

#include <iostream>
#include <cmath>

int main() {
    // הקלידו את הקוד שלכם למטה
    
    
    // אל תשנו את השורה שלמטה
    std::cout << "a = " << a << std::endl;
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    std::cout << "e = " << e << std::endl;
    std::cout << "f = " << f << std::endl;
    std::cout << "g = " << g << std::endl;
    std::cout << "h = " << h << std::endl;
    return 0;
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר C++ אונליין