מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנה — קיץ 2024 מועד א' (97105)
תאריך הבחינה: לא ידוע
טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).
למגמת הנדסת תוכנה — מבנה נתונים ותכנות מונחה עצמים. נבחנים ב-Java או ב-C#, ובוחרים שפה בכניסה למבחן.
✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם
פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.
שאלות לדוגמה מהמבחן — פתרו עכשיו
בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 12 שאלות המבחן — את כולן תוכלו לפתור אונליין.
מחסנית של מספרים שלמים נקראת "מאוזנת" אם יש לה אותה כמות מספרים גם חיוביים, גם שליליים וגם אפסים.
כתבו פעולה המקבלת מחסנית של מספרים שלמים ובודקת אם היא "מאוזנת". יש לשמור על תוכן של המחסנית אחרי ביצוע הפעולה.
כותרת הפעולה:
public static boolean isBalanced(Stack<Integer> st)
מהי הסיבוכיות של הפעולה שכתבתם בסעיף א'? הסבירו את תשובתכם.
כתבו פעולה המקבלת תור של מספרים שלמים ו-2 מספרים נוספים x ו-y. אם אורך התור זוגי, הפעולה תחליף את 2 האיברים האמצעיים לערכים x ו-y. אם אורך התור אי-זוגי, הפעולה תיצור מספר אקראי בין x ל-y (כולל) ותחליף את האיבר האמצעי של התור לערך אקראי שנוצר. שאר איברי התור יישארו ללא שינוי.
לדוגמה: עבור התור q הבא ופרמטרים x=20, y=30
[8, 10, 11, 2, 3, 16, 12, 4] (משמאל לימין; מאומת מול -layout וכלל ההחלפה)
התור q אחרי זימון הפעולה יהיה:
[8, 10, 11, 20, 30, 16, 12, 4]
מהי הסיבוכיות של הפעולה שכתבתם בסעיף א'? הסבירו את תשובתכם.
סדרה יורדת היא הסדרה שכל איבר החל באיבר ה-3 שווה להפרש של 2 קודמיו בערך מוחלט. לדוגמה:
- אם 2 האיברים של הסידרה הם 55 ו-34 אז סדרה יורדת תהיה:
55 34 21 13 8 5 3 2 1 1 0 1 1 .... - אם 2 האיברים של הסידרה הם 15 ו-40 אז סדרה יורדת תהיה:
15 40 25 10 15 5 10 5 5 0 …
תזכורת: לחישוב הפרש יש להשתמש בפונקציה של ערך מוחלט (Math.abs).
כתבו פעולה המקבלת הפנייה לשרשרת חוליות של מספרים שלמים. הפעולה תבדוק אם ערכים של השרשרת הם סדרה יורדת. אם כן – הפעולה תחזיר ערך true, ולא – הפעולה תחזיר ערך false.
כותרת הפעולה:
public static boolean isDownList (Node<Integer> chain)
כתבו פעולה המקבלת מספר שלם וחיובי num וזוג מספרים שלמים a ו-b. הפעולה תחזיר הפניה לחוליה הראשונה של שרשרת חוליות שאבריה הם num המספרים הראשונים של סדרה יורדת המתחילה במספרים a ו-b.
כותרת הפעולה:
public static Node<Integer> buildDown (int num, int a, int b)
לדוגמה: עבור הזימון buildDown(9, 55, 34) הפעולה תחזיר הפנייה לחוליה הראשונה של שרשרת החוליות הבאה:
chain → 55 → 3 → 2 → 1 → 8 → 5 → 3 → 2 → 1
⚠️ כך מופיעה השרשרת בתרשים בעמוד זה (מאומת חזותית ב-200dpi, לא תקלת OCR). שימו לב שזו אינה הסדרה 55,34,21,13,8,5,3,2,1 שמתקבלת מהנוסחה שבגוף השאלה (איבר1=55, איבר2=34, איברN=|איברN-1 − איברN-2| עבור N≥3) — וגם אינה תואמת את התרשים המקביל במבחן ה-C# באותו שאלון (עמ' 13), שם השרשרת מוצגת נכון כ-55,34,21,13,8,5,3,2,1. זהו כנראה פגם דפוס בגרסת ה-Java בלבד של שאלון זה. הועתק verbatim מהמקור; ראו fidelity_notes.
מהי הסיבוכיות של הפעולות שכתבתם בסעיפים א' ו-ב'? הסבירו את תשובתכם.
הנושאים הרשמיים בבחינה 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 ש'
המקור: תוכנית הלימודים הרשמית של מה"ט (משרד העבודה).
פתרו את המבחן המלא — עם משוב על כל תשובה
כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.
התחילו לתרגל — חינם ←