נתונה מחלקה Digits, המתארת ספרות של מספר שלם וחיובי. למחלקה Digits תכונה אחת בלבד — arrDigits — מערך חד-ממדי בן עשרה תאים מטיפוס מספר שלם, המייצג את מספר הפעמים שבו כל ספרה בין 0-9 מופיעה במספר. לדוגמה: עבור arrDigits=[0,0,1,0,2,0,0,0,3,0] (אינדקס=ספרה, ערך=מספר הופעות) — הספרה 2 מופיעה פעם אחת, הספרה 4 מופיעה פעמיים, הספרה 8 מופיעה שלוש פעמים.
נתונה מחלקה Digits, המתארת ספרות של מספר שלם וחיובי. למחלקה Digits תכונה אחת בלבד — arrDigits — מערך חד-ממדי בן עשרה תאים מטיפוס מספר שלם, המייצג את מספר הפעמים שבו כל ספרה בין 0-9 מופיעה במספר. לדוגמה: עבור arrDigits=[0,0,1,0,2,0,0,0,3,0] (אינדקס=ספרה, ערך=מספר הופעות) — הספרה 2 מופיעה פעם אחת, הספרה 4 מופיעה פעמיים, הספרה 8 מופיעה שלוש פעמים.
arrDigits לדוגמה (אינדקס 0..9 → מספר הופעות)
arrDigits = [0, 0, 1, 0, 2, 0, 0, 0, 3, 0]
כתבו במחלקה Digits פעולה בונה (constructor) המקבלת כפרמטר מספר שלם חיובי כלשהו ומאתחלת את התכונה arrDigits בהתאם (כלומר המערך יכיל את מספר הפעמים שכל ספרה מופיעה בו).
public Digits(int num)
כתבו במחלקה Digits פעולה equals המקבלת הפניה לעצם אחר מטיפוס Digits. הפעולה תחזיר ערך true אם שני העצמים זהים, ולא — הפעולה תחזיר ערך false.
public bool Equals(Digits other)
נתונה פעולה main במחלקה אחרת (מובאת להלן). האם הפעולה מדפיסה תוצאה נכונה עבור כל זוג מספרים שלמים וחיוביים num1 ו-num2? הסבירו את תשובתכם.
כתבו במחלקה Digits פעולה compareTo המקבלת כפרמטר הפניה לעצם other מטיפוס Digits. הפעולה תחזיר -1 אם מספר המיוצג על ידי העצם המפעיל את הפעולה (this) גדול ממספר המיוצג על ידי העצם שהתקבל כפרמטר (other). הפעולה תחזיר 2 אם המספר המיוצג על ידי העצם (this) קטן מהמספר המיוצג על ידי העצם שהתקבל כפרמטר (other). אם אין אפשרות לתשובה חד-משמעית, הפעולה תחזיר 0.
public int CompareTo(Digits other)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.