מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנה — אביב 2026 מועד ב' (97105)
תאריך הבחינה: לא ידוע
טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).
למגמת הנדסת תוכנה — מבנה נתונים ותכנות מונחה עצמים. נבחנים ב-Java או ב-C#, ובוחרים שפה בכניסה למבחן.
✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם
פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.
שאלות לדוגמה מהמבחן — פתרו עכשיו
בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 9 שאלות המבחן — את כולן תוכלו לפתור אונליין.
שני מספרים שלמים וחיוביים num1 ו-num2 נקראים "מצטלבים" (crossed) אם יש להם בדיוק מחלק משותף אחד (פרט ל-1).
לדוגמה: המספרים 14 ו-21 הם מצטלבים כי יש להם מחלק משותף אחד בלבד (7). המספרים 3 ו-27 הם מצטלבים כי יש להם מחלק משותף אחד בלבד (3). המספרים 8 ו-9 אינם מצטלבים, כי אין להם שום מחלק משותף. המספרים 12 ו-36 אינם מצטלבים כי יש להם יותר ממחלק משותף אחד (2, 3, 6, 12).
כתבו פעולה המקבלת שני מספרים שלמים חיוביים. הפעולה תבדוק אם הם "מצטלבים". אם כן, הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. כותרת הפעולה:
public static boolean crossed(int num1, int num2)
כתבו פעולה crossedStacks המקבלת שתי מחסניות של מספרים שלמים חיוביים st1 ו-st2. הפעולה תבדוק שלכל איבר במחסנית st1 יש איבר מצטלב במחסנית st2. אם כן, הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.
מהי הסיבוכיות של הפעולות שכתבתם בסעיפים א' ו-ב'? הסבירו את תשובתכם.
כתבו פעולה המקבלת שני תורים של מספרים שלמים q1 ו-q2. הפעולה תבדוק אם כל הערכים של התור q1 נמצאים בתוך התור q2. אם כן, הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. לדוגמה: עבור התורים q1 ו-q2 הבאים הפעולה תחזיר ערך true.
q1: 3, 12, 2, 10 q2: 4, 12, 16, 3, 2, 11, 10, 8
כתבו פעולה המקבלת שני תורים של מספרים שלמים q1 ו-q2. הפעולה תבדוק אם כל הערכים של התור q1 נמצאים בתור q2 באותו הסדר. אם כן, הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. לדוגמה: עבור התורים q1 ו-q2 הבאים הפעולה תחזיר ערך true.
q1: 5, 10, 7 q2: 5, 3, 16, 10, 2, 7, 10, 5
מהן הסיבוכיות של הפעולות שכתבתם בסעיפים א'–ב'? הסבירו את תשובתכם.
חברת Cloud-Tech מספקת תשתיות מחשוב. בתחילה, החברה סיפקה רק רכיבי חומרה, אך עם הזמן התרחבה גם למכירת רישיונות תוכנה. לפניכם המחלקות המגדירות את רכיבי המערכת:
- המחלקה Hardware עבור רכיבי חומרה פיזיים;
- המחלקה Server עבור שרתי מחשוב;
- המחלקה Switch עבור מתגי תקשורת;
- המחלקה SoftwareLicense עבור רישיונות תוכנה (כגון Windows או Oracle).
public class Hardware {
private String serialNumber; // מספר סידורי
private double price; // מחיר יחידה
public double getPrice() { return this.price; }
}
public class Server extends Hardware {
private int ramGB; // זיכרון בג'יגה בייט
private int cpuCores; // מספר ליבות מעבד
}
public class Switch extends Hardware {
private int portsCount; // מספר פורטים
private boolean managed; // האם מנוהל
public int getPortsCount() { return this.portsCount; }
public boolean isManaged(){return this.managed;}
}
public class SoftwareLicense {
private String softwareName; // שם התוכנה
private int months; // משך הרישיון בחודשים
private double monthlyRate; // עלות חודשית
public double getPrice(){
return (this.months * this.monthlyRate);
}
}
בתחילת דרכה, המחלקה ProjectOrder ניהלה רק רכיבי חומרה המסופקים ללקוח. למחלקה התכונות האלה:
String clientName– שם הלקוח;Hardware[] items– מערך של פריטי חומרה בלבד.
כתבו במחלקה ProjectOrder את הפעולה countLargeSwitches. הפעולה תחזיר כמות מתגי תקשורת הניתנים לניהול שיש להם יותר מ-16 פורטים.
החברה החליטה לאפשר ללקוחות להוסיף להזמנה גם רישיונות תוכנה (SoftwareLicense). כעת המחלקה ProjectOrder צריכה להחזיק במערך אחד את כל סוגי המוצרים (גם חומרה וגם רישיונות).
- אילו שינויים יש לבצע בהגדרת התכונות של המחלקה ProjectOrder כדי לתמוך בדרישה החדשה?
- כתבו פעולה פנימית
public double calculateTotal(). הפעולה תחזיר את העלות הכוללת של כל הפריטים במערך החדש.
הערה: אין להוסיף מחלקות או לשנות את יחסי הירושה הקיימים.
הנושאים הרשמיים בבחינה 97105
לפי תוכנית הלימודים הרשמית של מה"ט (מבנה נתונים ותכנות מונחה עצמים) — אלו הנושאים שהבחינה נשענת עליהם:
- חזרה ותרגול בתמ"ע, דגש על שימוש במחלקה נתונה על בסיס ממשק הפעולות · 6 ש'
- פעולות על מערך - טיפוס נתונים סדרתי · 10 ש'
- מחלקה גנרית · 4 ש'
- רקורסיה · 12 ש'
- יעילות · 11 ש'
- מחסנית – Stack · 11 ש'
- תור – Queue · 11 ש'
- המחלקה הגנרית Node – מחלקה גנרית ייצוג חוליה בסיסית · 8 ש'
- חוליה בינארית - רשימות מקושרות דו כיווניות, עץ בינארי · 17 ש'
- OOP · 8 ש'
- שימוש ב-UML לשם מידול ופישוט OOP · 11 ש'
- הורשה · 8 ש'
- פולימורפיזם · 8 ש'
- פולימורפיזם מופשט · 13 ש'
- מבני נתונים וחבילות · 8 ש'
- Design Patterns · 28 ש'
- פרויקט סיכום הנחיות · 4 ש'
המקור: תוכנית הלימודים הרשמית של מה"ט (משרד העבודה).
פתרו את המבחן המלא — עם משוב על כל תשובה
כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.
התחילו לתרגל — חינם ←