אופרטור מודולו
חלק מהיחידה יסודות במסלול ה-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, או -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למה? המחלק נכנס אפס פעמים, ולכן המחולק כולו הוא השארית.
אתגר
מתחיליםכתבו קוד שמאתחל שלושה משתנים, a (int), b (double) ו-c (int) עם הערכים 9, 2.6 ו-11 (בהתאמה).
לאחר מכן, אתחלו את המשתנים הבאים:
d (int)שיחזיק את התוצאה שלaמודולו2e (int)שיחזיק את התוצאה שלaמודולו3f (double)שיחזיק את התוצאה שלbמודולו1.5g (double)שיחזיק את התוצאה שלbמודולו3.9h (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;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה לאחר הפעולהקיצורים אריתמטייםאופרטורי השוואההשוואת מחרוזותתרגלו בעצמכם: קומפיילר C++ אונליין