מוזר ואפילו פונקציות תכנות ב C
מפעיל המודול ב- C
מפעיל המודול ב- C (המיוצג כסמל '%') משמש כסוג של חלוקה. אבל במקום לחלק את שני המספרים ולהחזיר את המנה למשתמש, מפעיל המודול מחלק שני מספרים ומחזיר את השאר כמספר שלם. בדוגמה זו, מתרחשות שתי פעולות מודול, כל אחת מחזירה ערך זהה:
int x = 11% 4 // שריד של 11/4 = 3 int ו- = 13% 5 // שארית 13.5 = 3
השתמש המודול כדי לקבוע מספרים אפילו מוזר
מאחר שמבצע המודולו קובע את יתרת החלוקה בין שני מספרים, נראה הגיוני שהמפעיל המודולרי ישתמש כדי למצוא מספרים מוזרים ואפילו מספרים. מספר זוגי, על פי הגדרתו, הוא כל מספר המחלק על ידי 2. לכן, מספר מחזירה אפס כאשר מקבל את המודול של החלוקה על ידי 2. יותר פשוט, מספר "n" הוא גם אם "n% 2" שווה לאפס. לדוגמה, קוד זה מגדיר פונקציה שלוקח מספר שלם ומחזיר מספר שלם (0 או 1) בהתאם למספר אם הוא או לא.
int isEven (int x) {return (x% 2); }
פונקציה של הדור של מספרים אפילו מוזר
באמצעות פעולת מודול, נראה פשוט ליצור פונקציה שיוצר מספרים מוזר או אפילו. מתכנת יכול למצוא את זה שימושי כדי ליצור רשימה של מספרים אפילו מוזר. במקרה זה, פשוט לולאה וגודל שדה שהוזן על ידי המשתמש הוא הדבר היחיד שאתה צריך ליצור אוסף של מספרים:
voidGenerate הריק (גודל int) {int i = 0;
עבור (i; i = i = = i = +) אם (i% 2 ==) cout << i << endl; }}
זה יוצר גם מספרים. מתכנת יכול לשנות את "אם" הצהרה לומר "אם (אני% 2 == 1)" כדי ליצור מספרים משונים.
חלופות מודולוס
המודול עצמו אינו ניתוח פשוט, אלא מכיל שלושה חישובים מתמטיים באחד. הסיבה לכך היא כי הפעולה "x% y" הוא למעשה שווה "x - y * (x / y)". בידיעה זו, מתכנת יכול לחלק את הפעולה או למצוא דרכים לשלב את החלקים של המבצע עם פעולות אחרות כדי לייעל את הזמן. אבל לשימוש וקלות כללית קידוד מפעיל מודול עובד היטב. הדוגמה הבאה משמשת דוגמה לשתי שיטות יחד ב- C:
int x = 10% 2; // 10/2 = 5 ללא שארית int y = 10 - (2 * (10/2)); / לפי סדר הפעולה, 10/2 = 5; 5 * 2 = 10; 10 - 10 = 0 לנוח