להלן המיקוד של תוכנית הלימוד לבחינה במבנה נתונים ותכנות מונחה עצמים לשנת 2026
להלן המיקוד של תוכנית הלימוד לבחינה במבנה נתונים ותכנות מונחה עצמים לשנת 2026
מגמת מדעי המחשב (יחידות 4 ו-5)
חלק זה מתמקד במעקב וכתיבת אלגוריתמים (לרוב רקורסיביים) המבוססים על המחלקות הגנריות הסטנדרטיות של משרד החינוך: מחסנית (<Stack<T>), תור (<Queue<T>), חוליה (<Node<T>), וצומת עץ בינארי (<BinTreeNode<T>).
נושא על
תתי-נושאים נדרשים במיקוד
דגשים חשובים ומבנה שאלות במבחן
רקורסיה
• תנאי עצירה ותהליך הנסיגה.
• רקורסיה על מספרים, מערכים ומבני נתונים.
• מעקב אחר קטעי קוד רקורסיביים מורכבים (טבלאות מעקב).
• שאלות רבות משלבות רקורסיה ככלי חובה לפתרון (במיוחד ברשימות ובעצים).
• דגש על זיהוי נקודות קצה ומניעת לולאה אינסופית.
יעילות וסיבוכיות
• סיבוכיות זמן ריצה בסיסית.
• רישום וזיהוי חסמים נפוצים: $O(1)$, $O(n)$, $O(n^2)$.
• נדרש לדעת להגדיר את יעילות האלגוריתם שנכתב.
• יש להימנע מפעולות "יקרות" בזמן ריצה בתוך לולאות (כמו סריקה כפולה שלא לצורך).
מחסנית (<Stack<T>)
• פעולות הממשק: Push, Pop, Top, IsEmpty.
• אלגוריתמים לסינון, שרשור, הפיכת מחסנית ומציאת ערכים.
• חובה: שימוש במחסנית עזר לצורך שמירה על המצב המקורי של המחסנית בסוף הפעולה.
• אסור לגשת לאיברים באמצע המחסנית ללא ריקון מבוקר.
תור (<Queue<T>)
• פעולות הממשק: Insert, Remove, Head, IsEmpty.
• אלגוריתמים לניהול תהליכים, סימולציות ומניפולציות על תורים.
• בדומה למחסנית, יש לשמור על התור המקורי בתום הריצה בעזרת תור עזר או החזרת האיברים בסבב סגור.
רשימה מקושרת (<Node<T>)
• מבנה החוליה: ערך (GetValue) ומצביע לבא בתור (GetNext, SetNext).
• אלגוריתמים: סריקה, הוספה/מחיקה של איבר (בתחילת, אמצע או סוף הרשימה), וחיפוש.
• שליטה מלאה בשרשרת מצביעים ועדכון קשרים.
• זהירות מפני איבוד הפניה לראש הרשימה (Head) או קריאה ל-GetNext() על חוליה ריקה (null).
עץ בינארי (<BinTreeNode<T>)
• מבנה הצומת: ערך, בן שמאלי ובן ימני.
• סריקות עץ (תחילית, תוכית, סופית).
• חישובים: סכום/מספר צמתים, גובה העץ, עצי חיפוש בינאריים (BST), זיהוי עלים צמודים.
• כמעט כל השאלות על עצים דורשות פתרון רקורסיבי.
• יש לטפל היטב במקרי הקצה (למשל: עץ ריק או צומת שהוא עלה).
פרק זה בוחן את ארכיטקטורת התוכנה המתקדמת, תכנון מחלקות והיחסים ביניהן (הכלה וירושה) בשפת #C.
נושא על
תתי-נושאים נדרשים במיקוד
דגשים חשובים ומבנה שאלות במבחן
יסודות המחלקה והכלה
• תכנות עם תכונות (Properties עם get/set), שיטות ורמת הרשאה private.
• בנאים (Constructors), כולל בנאי העתקה (Copy Constructor).
• הכלה (Composition) - מחלקה המכילה עצם ממחלקה אחרת (למשל מחלקת Line שמכילה עצמים מסוג Point).
• כתיבה נכונה ומדויקת של מחלקות מאפס.
• מימוש שיטת ToString() לצורך פלט העצם.
• חשיבות השמירה על הסתרת מידע (Encapsulation).
ירושה (Inheritance)
• מחלקת בסיס (Base Class) ומחלקה נגזרת (Derived Class).
• שימוש במילת המפתח base לצורך הפעלת בנאי הבסיס או שיטות הבסיס.
• מניעת ירושה באמצעות המילה sealed.
• הבנת תהליך הזימונים של הבנאים (בנאי הבסיס מופעל תמיד ראשון).
• חלוקת תפקידים נכונה בין תכונות מחלקת האב למחלקת הבת.
פולימורפיזם ודרגות חופש
• דריסת שיטות באמצעות מילות המפתח virtual ו-override.
• המרה כלפי מעלה (Upcasting) - אוטומטית כברירת מחדל.
• המרה כלפי מטה (Downcasting) - דורשת המרה מפורשת (Casting).
• שימוש באופרטורים is ו-as לבדיקת טיפוס העצם בזמן ריצה.
• נושא פופולרי מאוד במבחן: שאלות מעקב המציגות מערך של טיפוסי בסיס המכיל עצמים נגזרים שונים.
• התלמיד נדרש לקבוע איזה שיטה תופעל בפועל (על פי הטיפוס המקורי של העצם ולא הטיפוס של המצביע).
מחלקות מופשטות וממשקים
• מחלקות מופשטות (abstract) ושיטות מופשטות (ללא מימוש).
• הגדרת ממשק (interface) ומימושו במחלקות שונות שאינן בהכרח מאותו עולם תוכן.
• הבנה שמחלקה מופשטת או ממשק משמשים רק כתשתית/חוזה מבני ולא ניתן לייצר מהם עצם ישירות (new).
מנסיון העבר עם שאלון 899271, משרד החינוך נוטה לשלב בשאלות הגדולות בין שני העולמות. לדוגמה: שאלה על רשימה מקושרת שבה כל חוליה (Node) מכילה עצם המבוסס על מערכת ירושה ופולימורפיזם, או עץ בינארי של עצמים מורכבים. מומלץ לחשוף את התלמידים לתרגילים משולבים כאלו בשלב מוקדם של המרתונים.</BinTreeNode</Node</Queue</Stack</BinTreeNode</Node</Queue</Stack