אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2022 · קיץ מועד א · שאלה 6כל שאלות המבחן ←
תכנות מונחה עצמים›ממשקים

נתונה היררכיית המחלקות הבאה, הכוללת חמש מחלקות Point, Shape, Circle, Square, Rectangle ושני ממשקים ITurnable ו-IFillable.

תרשים ההיררכיה: IFillable{void Fill(string color)} ו-ITurnable{void Left(int degree); void Right(int degree)} הם ממשקים. Shape{protected string color; protected Point point} מכילה הפניה ל-Point{private int x; private int y}. Circle{private double radius} יורשת מ-Shape ומממשת את IFillable. Square{protected double length1} יורשת מ-Shape ומממשת את IFillable ואת ITurnable. Rectangle{private double length2} יורשת מ-Square.

IFillable <..impl.. Circle --inherits--> Shape --(has-a, ◆)--> Point
IFillable <..impl.. Square --inherits--> Shape
ITurnable <..impl.. Square
Rectangle --inherits--> Square
סעיף א

כתבו עבור כל מחלקה, את כותרת המחלקה ואת הכותרות של כל הפעולות שחייבות להיות במחלקה. נתון קטע קוד בפעולה הראשית (Main): Shape s = new Square(new Point(50,50),10); Shape c = new Circle(new Point(50,50),8); ITurnable t; IFillable f; (***)

סעיף ב

כתבו כותרות לכל הבנאים הנדרשים להרצה תקינה של קטע הקוד הנתון.

סעיף ג

בהתייחס לכל אחד מהקטעים הבאים, כתבו מה יקרה בעקבות הוספתו לשיטה Main שלעיל, במקום שמסומן בכוכביות (***). אם הקוד אינו תקין יש להסביר ולציין את סוג השגיאה (קומפילציה או זמן ריצה). (1) f=(IFillable)c; (2) t=s; t.Fill("Green"); (3) f=c; f.Fill("Red"); (4) ((Circle)s).Left(45); (5) Shape d=c; d.Fill("Yellow"); (6) f=new Rectangle(new Point(10,10),10,20); f.Left(Math.PI); (7) c=s; c.Left(90);

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי