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

בגרות מדעי המחשב 899271, קיץ 2025 מועד מיוחד

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

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

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

לתלמידי ותלמידות היחידות המתקדמות במדעי המחשב — כולל שלושת מסלולי הבחירה: אלגוריתמים, מודלים חישוביים ותכנות מונחה עצמים.

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

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

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

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

שאלה 1

נתונות שתי רשימות מקושרות של מספרים שלמים 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 בשפת Java או CreateUnion בשפת C#. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה את כל המספרים המופיעים לפחות באחת מהרשימות. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר מופיע פעם אחת בלבד. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 שלפניכם (ר' תמונה): תוחזר הרשימה הבאה (אין חשיבות לסדר המשתנים): lst3 = 5->2->4->3->7->null. הסבר: כל מספר שהופיע לפחות באחת הרשימות, מופיע ברשימה החדשה. כמו כן, ברשימה החדשה כל מספר מופיע פעם אחת בלבד (ללא כפילות).

public static Node<Integer> createUnion (Node<Integer> lst1, Node<Integer> lst2)

סעיף ב

כתבו פעולה חיצונית בשם intersection בשפת Java או Intersection בשפת C#. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה רק את המספרים המופיעים גם ב-lst1 וגם ב-lst2. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר חייב מופיע פעם אחת בלבד. אם אין אף מספר משותף, תוחזר רשימה ריקה. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 הנתונות בדוגמה לעיל (בסעיף א), תוחזר הרשימה הבאה: lst3 -> 4 -> null. הסבר: רק המספר 4 מופיע בשתי הרשימות.

public static Node<Integer> intersection (Node<Integer> lst1, Node<Integer> lst2)

שאלה 2

שני תורים הם "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 בשפת Java או IsMConnect בשפת C#, המקבלת תור ראשון - 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 בשפת Java או MaxConnect בשפת C#, המקבלת תור ראשון 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)

שאלה 3

לפניכם עץ בינארי ששורשו 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]
סעיף א(1)

מהו הערך שיוחזר מהפעולה עבור הזימון sod(root, 25)? יש לבצע מעקב על הקוד.

סעיף א(2)

כתבו זימון נוסף שעבורו ערך שונה מהערך מהוחזר מהערך שהוחזר בסעיף 1.

sod(root, ?)

סעיף א(3)

הסבירו מה מבצעת הפעולה sod/Sod.

סעיף ב(1)

מהו הערך שיוחזר מהפעולה עבור הזימון secret(root, 10)? יש לבצע מעקב מעקב. אין צורך לבצע מעקב על הקריאה לפעולה sod/Sod אלא רק לציין את הערך שחוזר מהפעולה.

סעיף ב(2)

מהו הערך שיוחזר מהפעולה עבור הזימון secret(root, 5)? אין צורך לבצע מעקב.

סעיף ב(3)

כתבו זימון נוסף שעבורו יוחזר הערך 50. אין צורך לבצע מעקב.

secret(root, ?)

סעיף ב(4)

הסבירו מה מבצעת הפעולה secret/Secret.

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

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

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

לא עוד דף פתרונות — כאן מתרגלים, נבחנים ומשתפרים

1סימולציה ותחקורפותרים בגרות מלאה בתנאי בחינה, עם שעון. בסיום עוברים טעות-טעות: מה כתבתם, איפה נפלתם ולמה — ומה לתרגל עכשיו.
2תרגול ממוקד חולשותהתחקור מסמן את הנושאים שנפלתם בהם, והתרגול הבא נבנה מהם — רוב הזמן על החולשות, מעט על מה שכבר יושב.
3איזי, המאמן האישיעונים בעצמכם, ואיזי מגיב לדרך שכתבתם — לא רק לתשובה הסופית. אפשר לשאול אותו על כל שלב, בכל שאלה.

וכמובן — פתרון מלא ומוסבר לכל שאלה מהבגרויות האמיתיות. מתחילים לתרגל — חינם, בלי כרטיס ←