פיקסל (Pixel) הוא יחידת מידע המתארת נקודה בתמונה דיגיטלית. כל פיקסל מורכב משילוב שלושה צבעים: אדום, ירוק וכחול, וכל אחד מהם מקבל ערך שלם מ-0 עד 255 (כולל), המייצג את עוצמת הצבע. לקבלת נקודה בצבע אדום (בין בהיר לכהה): אדום מ-1 עד 255, ירוק=0, כחול=0. לקבלת נקודה בצבע ירוק: ירוק מ-1 עד 255, אדום=0, כחול=0. לקבלת נקודה בצבע כחול: כחול מ-1 עד 255, אדום=0, ירוק=0. שחור: שלושתם 0. לבן: שלושתם 255.
פיקסל (Pixel) הוא יחידת מידע המתארת נקודה בתמונה דיגיטלית. כל פיקסל מורכב משילוב שלושה צבעים: אדום, ירוק וכחול, וכל אחד מהם מקבל ערך שלם מ-0 עד 255 (כולל), המייצג את עוצמת הצבע. לקבלת נקודה בצבע אדום (בין בהיר לכהה): אדום מ-1 עד 255, ירוק=0, כחול=0. לקבלת נקודה בצבע ירוק: ירוק מ-1 עד 255, אדום=0, כחול=0. לקבלת נקודה בצבע כחול: כחול מ-1 עד 255, אדום=0, ירוק=0. שחור: שלושתם 0. לבן: שלושתם 255.
נתונה המחלקה Pixel, ולה שלוש תכונות: red, green, blue (כל אחת מספר שלם 0 עד 255). קיימות עבורן פעולות get/set. הממשק החלקי הנתון של Pixel: פעולה בונה public Pixel(int red, int green, int blue); ובנוסף isRed/IsRed, isGreen/IsGreen, isBlue/IsBlue — כל אחת מחזירה true אם הנקודה בצבע המתאים, אחרת false.
נתונה גם המחלקה Structure, ולה תכונה אחת בלבד: arr — מערך חד-ממדי מטיפוס Pixel בגודל N.
// ממשק חלקי נתון (Pixel):
public class Pixel {
// תכונות (נתון): red, green, blue — כל אחת מספר שלם בין 0 ל-255
public Pixel(int red, int green, int blue) { ... } // נתון
public bool IsRed() { ... } // סעיף א — יש לממש
public bool IsGreen() { ... } // מותר להשתמש בלי לממש
public bool IsBlue() { ... } // מותר להשתמש בלי לממש
// get/set לכל תכונה — נתון שקיימות
}
// המחלקה Structure — תכונה יחידה:
public class Structure {
private Pixel[] arr; // מערך חד-ממדי מטיפוס Pixel, בגודל N
// סעיף ב(1) — IsBalanced: יש לממש
// סעיף ב(2) — IsBlackWhite: יש לממש
}
ממשו את הפעולה isRed/IsRed במחלקה Pixel. הניחו שערכי התכונות תקינים (מ-0 עד 255).
public bool IsRed()
כתבו פעולה פנימית במחלקה Structure ששמה isBalanced (Java) או IsBalanced (C#). הפעולה תחזיר true אם במערך arr מספר הנקודות בצבע אדום זהה למספר הנקודות בצבע ירוק וזהה גם למספר הנקודות בצבע כחול; אחרת תחזיר false. שימו לב: גם אם יש במערך נקודות שאינן בצבע אדום/ירוק/כחול טהור, כל עוד מספרי הנקודות האדומות, הירוקות והכחולות זהים ביניהן — המערך מאוזן. בסעיף זה מותר להשתמש בפעולות isRed/isGreen ו-isBlue בלי לממש אותן מחדש.
public bool IsBalanced()
מערך "שחור לבן" הוא מערך arr שבו כל הנקודות הן רק בצבעים שחור ולבן, ויש בו לפחות נקודה אחת בצבע לבן ולפחות נקודה אחת בצבע שחור. כתבו פעולה פנימית במחלקה Structure ששמה isBlackWhite (Java) או IsBlackWhite (C#). הפעולה תחזיר true אם המערך arr הוא מערך "שחור לבן" כהגדרתו, אחרת תחזיר false.
public bool IsBlackWhite()
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.