בגרות מדעי המחשב 899271, קיץ 2025 מועד חלופי
תאריך הבחינה: לא ידוע
טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).
לתלמידי ותלמידות היחידות המתקדמות במדעי המחשב — כולל שלושת מסלולי הבחירה: אלגוריתמים, מודלים חישוביים ותכנות מונחה עצמים.
✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם
פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.
שאלות לדוגמה מהמבחן — פתרו עכשיו
בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 12 שאלות המבחן — את כולן תוכלו לפתור אונליין.
נתונות שתי רשימות מקושרות של מספרים שלמים lst1 ו-lst2. יש לכתוב שתי פעולות חיצוניות: createUnion שמחזירה רשימה חדשה עם כל הערכים שמופיעים בלפחות אחת הרשימות (ללא כפילויות), ו-intersection שמחזירה רשימה חדשה עם רק הערכים המשותפים לשתיהן (ללא כפילויות). בשני הסעיפים סדר הערכים ברשימה המוחזרת אינו חשוב.
דוגמה לרשימות lst1, lst2 שלפניכם
lst1: 5 -> 2 -> 2 -> 4 -> null
lst2: 3 -> 4 -> 7 -> null
lst3 = createUnion(lst1, lst2) - איחוד (ללא כפילויות, ללא חשיבות לסדר)
lst3: 5 -> 2 -> 4 -> 3 -> 7 -> null
lst3 = intersection(lst1, lst2) - חיתוך (ללא כפילויות)
lst3: 4 -> null
כתבו פעולה חיצונית בשם createUnion. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה את כל המספרים המופיעים לפחות באחת מהרשימות. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר מופיע פעם אחת בלבד. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 שלפניכם (ר' תמונה): תוחזר הרשימה הבאה (אין חשיבות לסדר המשתנים): lst3 = 5->2->4->3->7->null. הסבר: כל מספר שהופיע לפחות באחת הרשימות, מופיע ברשימה החדשה. כמו כן, ברשימה החדשה כל מספר מופיע פעם אחת בלבד (ללא כפילות).
public static Node<Integer> createUnion (Node<Integer> lst1, Node<Integer> lst2)
כתבו פעולה חיצונית בשם intersection. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה רק את המספרים המופיעים גם ב-lst1 וגם ב-lst2. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר חייב מופיע פעם אחת בלבד. אם אין אף מספר משותף, תוחזר רשימה ריקה. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 הנתונות בדוגמה לעיל (בסעיף א), תוחזר הרשימה הבאה: lst3 -> 4 -> null. הסבר: רק המספר 4 מופיע בשתי הרשימות.
public static Node<Integer> intersection (Node<Integer> lst1, Node<Integer> lst2)
שני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של M האיברים הראשונים של התור השני. יש לפתור באמצעות פעולות התור בלבד (insert/remove/head/isEmpty), ללא מערך או רשימה מקושרת, ולשמור על מבנה שני התורים בסיום כל פעולה.
q1, q2 לדוגמה
q1 (ראש->סוף): 2,5,4,4,7,2,6
q2 (ראש->סוף): 2,6,7,1,4,2,1,8,1
כתבו פעולה ששמה isMConnect המקבלת תור ראשון - q1, ותור שני - q2 (שניהם מטיפוס שלם) ומשתנה שלם M. הפעולה תחזיר true אם התור q1 הוא "M-מחובר" לתור q2, אחרת היא תחזיר false. הערות:
- בסיום הפעולה חובה לשמור על מבנה שני התורים כפי שהתקבלו.
- אין להשתמש בסעיף זה במערך או ברשימה מקושרת. פתרון הכולל שימוש בהם לא יזוכה בנקודות.
- הניחו ש-M קטן או שווה מאורך 2 התורים. דוגמה: עבור התורים q1,q2 שלפניכם: עבור M=1 יוחזר false (ערך האיבר האחרון של q1 - 6, שונה מערך האיבר הראשון של q2 - 2). עבור M=2 יוחזר true (ערכי שני האיברים האחרונים של q1 שווים לפי אותו סדר לערכי שני האיברים הראשונים של q2). עבור M=3 יוחזר false (ערכי שלושת האיברים האחרונים של q1 - 7,2,6, אינם שווים לפי אותו סדר לערכי שלושת האיברים הראשונים של q2 - 2,6,7).
public static boolean isMConnect (Queue<Integer> q1, Queue<Integer> q2, int M)
כתבו פעולה בשם maxConnect המקבלת תור ראשון q1, ותור שני q2 (שניהם מטיפוס שלם). הפעולה תחזיר את ה-M הגדול ביותר שעבורו שני התורים הם "M-מחוברים", אם הם לא מחוברים בכלל, יוחזר 0. הערה: ניתן להשתמש בפעולה מסעיף א. דוגמאות: עבור שני התורים מהדוגמה בסעיף א, והזימון maxConnect(q1,q2) יוחזר המספר 2 (יש שני איברים בסוף q1 שזהים לתחילת q2. כאשר מגדילים את M הם אינם זהים). עבור אותם התורים והזימון maxConnect(q2,q1) יוחזר המספר 0 (אין איברים בסוף q2 שמתאימים לתחילת q1 אף עבור M=1).
public static int maxConnect (Queue<Integer> q1, Queue<Integer> q2)
לפניכם עץ בינארי ששורשו root.
נתונות הפעולות sod ו-secret:
public static boolean sod(BinNode<Integer> root, int num)
{
if (root == null)
return false;
if (root.getValue() == num)
return true;
return sod(root.getLeft(), num) || sod(root.getRight(), num);
}
public static int secret(BinNode<Integer> root, int x)
{
if (!sod(root,x))
return 0;
if ((root.getLeft() != null && root.getLeft().getValue() == x) ||
(root.getRight() != null && root.getRight().getValue() == x))
{
return root.getValue()+ secret(root.getLeft(),x)+
secret(root.getRight(),x);
}
return secret(root.getLeft(),x)+secret(root.getRight(),x);
}
עץ בינארי ששורשו root
root=50
L=20, R=25
20.L=10, 20.R=15(a)
10.L=15(b) [leaf]
15(a).L=10(c) [leaf], 15(a).R=5 [leaf]
25.R=15(d) [leaf]
מהו הערך שיוחזר מהפעולה עבור הזימון sod(root, 25)? יש לבצע מעקב על הקוד.
כתבו זימון נוסף שעבורו יוחזר ערך שונה מהערך שהוחזר בסעיף 1.
sod(root, ?)
הסבירו מה מבצעת הפעולה sod.
מהו הערך שיוחזר מהפעולה עבור הזימון: secret(root, 10)? יש לבצע מעקב. אין צורך לבצע מעקב על הקריאה לפעולה sod אלא רק לציין את הערך שחוזר מהפעולה.
מהו הערך שיוחזר מהפעולה עבור הזימון secret(root, 5)? אין צורך לבצע מעקב.
כתבו זימון נוסף שעבורו יוחזר הערך 50. אין צורך לבצע מעקב.
secret(root, ?)
הסבירו מה מבצעת הפעולה secret.
כל שאלות המבחן — 12 שאלות, כל אחת עם פתרון מלא
לפי סדר המבחן. לוחצים על שאלה והמבחן נפתח בה: עונים, רואים פתרון מלא ומוסבר, וממשיכים לשאלה הבאה.
- שאלה 1
איחוד וחיתוך של רשימות מקושרות — createUnion / intersection
- שאלה 2
"תורים מחוברים-M" — isMConnect / maxConnect
- שאלה 3
מעקב אחר הפעולות sod ו-secret על עץ בינארי
- שאלה 4
תכונות גרפים וקישוריות שכונות
- שאלה 5
שבע טענות בתורת הגרפים
- שאלה 6
רשימת סמיכויות, DFS/BFS, קבוצות קשירות
- שאלה 7
שפות L1, L2 מעל {0,1} — מציאת מילים ובניית אוטומטים
- שאלה 8
L1, L2, L3 מעל {a,b}; שפה L מעל {0,1} עם הגבלת 000
- שאלה 9
מכונת טיורינג המממשת compare(n1,n2) / Compare(n1,n2)
- שאלה 10
ירושה, העמסת יתר ודריסה - Y ו-Z
- שאלה 11
בחנות כסאות - Date, Chair, ComputerChair, GardenChair, BarStool, Order
- שאלה 12
שדה סטטי, העמסת יתר, דריסה ו-casting - One ו-Two
פתרו את המבחן המלא — עם משוב על כל תשובה
כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.
התחילו לתרגל — חינם ←