divicidivici·איזיפס·פשוט להצליח

מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנה — קיץ 2021 מועד א' (97105)

תאריך הבחינה: לא ידוע

טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).

פתרו את המבחן אונליין — בשפה שלכם:JavaC#

למגמת הנדסת תוכנה — מבנה נתונים ותכנות מונחה עצמים. נבחנים ב-Java או ב-C#, ובוחרים שפה בכניסה למבחן.

✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם

פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.

שאלות לדוגמה מהמבחן — פתרו עכשיו

בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 10 שאלות המבחן — את כולן תוכלו לפתור אונליין.

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

סעיף ג

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

שאלה 2

שאלה ללא סעיפים (15 נקודות): מקבלים תור לא-ממוין של מספרים שלמים עם חזרות, ומחזירים תור חדש עם כל ערך שמופיע יותר מפעמיים, פעם אחת בלבד, מבלי לפגוע בתור המקורי.

לדוגמה: עבור תור q1 הבא (ראש→סוף): 2,5,5,7,2,4,1,3,2,5,5,1 — הפעולה תחזיר תור חדש [2,5] (2 מופיע 3 פעמים, 5 מופיע 4 פעמים; שאר הערכים מופיעים פעם או פעמיים בלבד).

q1 (ראש→סוף): 2,5,5,7,2,4,1,3,2,5,5,1
תוצאה (ראש→סוף): 2,5
סעיף א

כתבו פעולה המקבלת תור של מספרים שלמים. האיברים בתור לא ממוינים ויכולים להופיע כמה פעמים. הפעולה תחזיר תור חדש הכולל רק את האיברים שמופיעים יותר מפעמיים. לדוגמה: עבור תור q1 הבא: [2,5,5,7,2,4,1,3,2,5,5,1] הפעולה תחזיר תור חדש [2,5].

public static Queue<Integer> moreThanTwice(Queue<Integer> q)

שאלה 3

Clothes (עם price ישיר) ותת-המחלקות Shirt/Dress, לעומת Book (מחלקה נפרדת לגמרי, ללא כל קשר ירושה, עם getPrice המחזירה 90% מהמחיר המקורי — הנחה קבועה על ספרים). Shipping אורז מוצרים מעורבים משתי המשפחות הלא-קשורות.

public class Clothes {
    private String fabric;  // סוג בד
    private String color; // צבע
    private double price; // מחיר
    public double getPrice(){ return this.price;   }
}
public class Shirt extends Clothes {
    private String size; // (L, XL,XXL) מידה
}
public class Dress extends Clothes {
    private double length; // אורך בס"מ
    private int size; // מידה
}
public class Book {
    private String name; // שם ספר
    private String author; // מחבר
    private double price; // מחיר
    public double getPrice(){return 0.9*this.price;}
}
סעיף א

המחלקה Shipping מתארת משלוח. למחלקה יש שתי תכונות: address – כתובת משלוח, מסוג מחרוזת; arr – מערך הפריטים למסירה. כתבו את כותרת המחלקה ואת התכונות שלה. ציינו מהו סוג המערך שנבחר, והסבירו את בחירתכם.

סעיף ב

כתבו פעולה פנימית public double sum() המחזירה את הסכום הכולל של הפריטים במשלוח. הערה: אין להוסיף מחלקות או פעולות, אין לשנות את יחסי הירושה בין המחלקות.

הנושאים הרשמיים בבחינה 97105

לפי תוכנית הלימודים הרשמית של מה"ט (מבנה נתונים ותכנות מונחה עצמים) — אלו הנושאים שהבחינה נשענת עליהם:

המקור: תוכנית הלימודים הרשמית של מה"ט (משרד העבודה).

פתרו את המבחן המלא — עם משוב על כל תשובה

כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.

התחילו לתרגל — חינם ←