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

Tablet מייצג מחשב לוח בודד (name, kind, system, size, price). Store מחזיק מערך tablets בגודל קבוע 1000 ומערך systems בן 3 (מונה לכל מערכת הפעלה). שלושה סעיפים בלתי-תלויים בממשק: השוואת שני מכשירים (isSame), הוספה/עדכון במלאי (addTablet, המשתמש ב-isSame), ומיון המלאי לפי מערכת הפעלה (sortStore).

public class Tablet {
    private string name;   // שם חברה מייצרת
    private string kind;   // דגם
    private char system;   // 'W'/'A'/'I'
    private double size;
    private double price;
    // אפשר להניח שהוגדר בנאי המקבל פרמטרים לכל התכונות, פעולות get/set ופעולת ToString
}
public class Store {
    private Tablet[] tablets;
    private int[] systems;   // [0]=Windows,[1]=Android,[2]=iOS
    public Store() {
        tablets = new Tablet[1000];
        systems = new int[3];
    }
    ….
}
סעיף א

כתבו פעולה public boolean isSame(Tablet other). הפעולה תחזיר true אם השם, הדגם והגודל של העצם המפעיל את הפעולה זהים לשם, לדגם ולגודל של other, ואם לא — הפעולה תחזיר false.

public bool IsSame(Tablet other)

סעיף ב

כתבו פעולה public boolean addTablet(Tablet tab). הפעולה מקבלת מחשב לוח tab ומוסיפה אותו למחסן: אם אין מקום להוסיף מוצר חדש, הפעולה תחזיר false; אם כבר קיים מוצר בעל אותו שם, דגם וגודל, הפעולה תעדכן את המחיר למחיר הגבוה מבין מחיר המוצר הקיים ומחיר המוצר המתקבל, ותחזיר true; אם לא קיים מוצר כמו tab, הפעולה תוסיף אותו למערך המוצרים, תעדכן את מספר המוצרים במחסן ותחזיר true. שימו לב: עצמים במערך צריכים להיות ברצף ללא "חורים" (תאים עם ערך null).

public bool AddTablet(Tablet tab)

סעיף ג

כתבו פעולה public int sortStore(). הפעולה מסדרת את מערך המוצרים כך שבתחילת המערך יהיו מחשבי לוח בעלי מערכת הפעלה ווינדוס, אחר כך מכשירים בעלי מערכת הפעלה אנדרואיד, ולבסוף מכשירים עם מערכת הפעלה iOS. הפעולה תחזיר את מספר המקומות הפנויים במחסן.

public int SortStore()

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

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

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

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