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

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

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

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

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

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

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

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

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

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

שאלה 1

נתונה המחלקה DigitCount עם digit (ערך ספרה 0-9) ו-count (מספר מופעים). יש לבנות רשימה מקושרת ממוינת יורד לפי ערך הספרה (buildList), ולהשתמש בה כדי לבנות את המספר המקסימלי האפשרי מהספרות של num (buildMaxNum).

דוגמה: עבור num=3389920 וגם num=9389302 תוחזר הרשימה (head->tail)

head -> [digit=9,count=2] -> [digit=8,count=1] -> [digit=3,count=2] -> [digit=2,count=1] -> [digit=0,count=1] -> null
סעיף א

ממשו את הפעולה שלפניכם. הפעולה מקבלת מספר שלם חיובי num הגדול מ-0 ומחזירה רשימה מקושרת מסוג DigitCount. עבור כל ספרה (0-9) במספר num יישמר ברשימה עצם מן המחלקה DigitCount שערכיו הספרה עצמה ומספר המופעים שלה במספר num. הרשימה תורכב לפי הכללים: הרשימה ממוינת לפי ערך הספרות בסדר יורד (מהגדולה לקטנה); כל ספרה תופיע פעם אחת בלבד; רק הספרות שמופיעות במספר num יופיעו ברשימה.

public static Node<DigitCount> buildList (int num)

סעיף ב

ממשו את הפעולה שלפניכם. הפעולה מקבלת מספר שלם num הגדול מ-0 ומחזירה את המספר הגדול ביותר שניתן ליצור באמצעות הספרות במספר num, לפי מספר המופעים של כל ספרה. הערה: ניתן להשתמש בפעולה שכתבתם בסעיף א. דוגמה: עבור num=3389920 וגם num=9389302 הפעולה תחזיר את המספר 9983320 -- המספר המקסימלי שניתן ליצור באמצעות שינוי סדר הספרות במספר num.

public static int buildMaxNum (int num)

שאלה 2

נתונות המחלקות Cube (size, type) ו-Box (מערך cubes בגודל 3 + count; הבנאי ו-add/Add נתונים). יש לממש isPerfect הבודקת אם קופסה מכילה 3 קוביות מאותו סוג וגודל, ואז לארוז קוביות מתור לקופסאות לפי סדר הגעתן (packBox, packAll).

דוגמה לתור q (ראש..סוף) לסעיף ב

head: Cube(1,'a'), Cube(2,'a'), Cube(2,'b'), Cube(1,'a'), Cube(1,'a'), Cube(1,'a'), Cube(3,'b'), Cube(3,'a') :tail

packBox(q) result + queue state after, per example

Box returned: count=2, cubes=[Cube(1,'a'),Cube(2,'a'),null]; queue after: Cube(2,'b'),Cube(1,'a'),Cube(1,'a'),Cube(1,'a'),Cube(3,'b'),Cube(3,'a')

packAll(q) result for the full original queue -- 4 boxes, prints 'perfect'

Box1{cubes=[1a,2a,null],count=2} Box2{cubes=[2b,null,null],count=1} Box3{cubes=[1a,1a,1a],count=3} Box4{cubes=[3b,3a,null],count=2} -- Box3 is 'perfect'
סעיף א

קופסה נקראת "מושלמת" אם יש בה 3 קוביות מאותו הסוג וגם מאותו הגודל. ממשו את הפעולה הפנימית שלפניכם במחלקה Box, המחזירה true אם הקופסה מושלמת, אחרת false.

public boolean isPerfect ()

סעיף ב(1)

במפעל צעצועים אורזים קוביות לקופסאות לפי סדר הגעתן. ממשו את הפעולה החיצונית שלפניכם: מקבלת תור של קוביות ומחזירה עצם מסוג Box. הפעולה תכניס קוביות מהתור (לפי סדר הופעתן) לקופסה, כל עוד פעולת ההכנסה אפשרית (לפי add/Add). אם לא ניתן להכניס את הקובייה הבאה בתור, הפעולה תעצור ותחזיר את הקופסה שנוצרה. הערה: בסיום הפעולה סדר הקוביות בתור המקורי נשמר, ללא הקוביות שהוכנסו לקופסה.

public static Box packBox (Queue<Cube> q)

סעיף ב(2)

כתבו פעולה חיצונית בשם packAll בשפת Java או PackAll בשפת C# המקבלת תור q של עצמים מסוג Cube. הפעולה: תחזיר תור מסוג Box לאחר הכנסת כל הקוביות לקופסאות לפי הכללים לעיל; תדפיס perfect לאחר הכנסת כל הקוביות לקופסאות, אם קיימת לפחות קופסה אחת "מושלמת", אחרת תדפיס not perfect.

public static Queue<Box> packAll (Queue<Cube> q)

שאלה 3

לפניכם עץ בינארי ששורשו root, המכיל מספרים שלמים. יש לבצע מעקב אחרי הזימונים something(root)/Something(root) (ולהסביר מה מבצעת הפעולה בכלל) ואחרי sod(root)/Sod(root) עם העץ הנתון.

public static int something (BinNode<Integer> root) {
    if (root == null)
        return 0;
    if (root.getLeft() == null && root.getRight() == null)
        return root.getValue ();
    int ans1 = something(root.getLeft());
    int ans2 = something(root.getRight());
    if (ans1 > ans2)
        return ans1 + root.getValue();
    return ans2 + root.getValue();
}

העץ הבינארי הנתון (root ומטה)

root=-10; left(-10)=7 [left(7)=6, right(7)=-3 [left(-3)=-5, right(-3)=20]]; right(-10)=10 [right(10)=12]
סעיף א

נתונה הפעולה something בשפת Java ו-Something בשפת C# (קוד מלא נתון). (1) מהו הערך שתחזיר הפעולה עבור הזימון something(root)/Something(root) עם העץ הנתון? יש להציג מעקב על ביצוע הפעולה. (2) הסבירו מה מבצעת הפעולה עבור כל עץ של מספרים שלמים.

public static int something (BinNode&lt;Integer> root) { if (root == null) return 0; if (root.getLeft() == null && root.getRight() == null) return root.getValue (); int ans1 = something(root.getLeft()); int ans2 = something(root.getRight()); if (ans1 > ans2) return ans1 + root.getValue(); return ans2 + root.getValue(); }

סעיף ב

נתונה הפעולה sod בשפת Java ו-Sod בשפת C# (קוד מלא נתון), המקבלת עץ בינארי של מספרים שלמים, בתחום הערכים -100 עד 100. מהו הערך שתחזיר הפעולה עבור הזימון sod(root)/Sod(root) עם העץ הנתון לעיל? יש להציג מעקב על ביצוע הפעולה. אין צורך לבצע מעקב אחרי הפעולה something/Something אלא רק לציין את הערך שחוזר מהפעולה.

public static int sod (BinNode&lt;Integer> root) { if (root == null) return -101; int x = something (root); int left = sod (root.getLeft()); int right = sod (root.getRight()); return Math.max (x, Math.max (left, right)); }

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

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

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

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

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

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