תור מדעי המחשב לכיתה י״ב
בנושא הזה 5 שיעורים. כך הם מתחילים:
טיפוס נתונים מופשט והממשק Queue<T>
תור (Queue) הוא טיפוס נתונים מופשט שבו מי שנכנס ראשון יוצא ראשון (FIFO). בשיעור: מהו טיפוס נתונים מופשט (ADT), חמש הפעולות של הממשק Queue<T> - Queue(), insert, remove, head, isEmpty (ו-toString) - ומעקב אחרי מצב התור שורה אחרי שורה.
סריקת תור ושחזורו
רוב הפעולות על תור צריכות לעבור על כל האיברים - אבל בלי "להרוס" את התור. בשיעור: סריקה עם תור עזר (temp) והחזרת האיברים, ספירה, סכום, מקסימום, חיפוש, העתקת תור, סיבוב תור, ומלכודת ההשמה `c = q` שלא מעתיקה כלום.
בעיות על תורים: הכנסה ממוינת, מיזוג ורקורסיה
אלגוריתמים על תורים: האיבר האחרון, מחיקת כל המופעים של ערך, הכנסה לתור ממוין, מיזוג שני תורים ממוינים, דחיסת רצפים, והיפוך תור ברקורסיה. בכל אחד - איך שומרים על הסדר ומתי התור הופך לפלט.
תור של עצמים
תור של עצמים: תור שאיבריו מטיפוס מחלקה (Car, Task), גישה לתכונות דרך get, שיתוף עצמים בין תורים (הפניות), לולאה עם תנאי עצירה תלוי-ערך כמו בבגרות, ופיצול תור לפי טווח ערכים.
מחסנית מול תור, וחזרה
מחסנית (Stack, LIFO) מול תור (FIFO): הממשק Stack<T> לשימוש בלבד (פרק המחסנית לא ייכלל בבחינת תשפ״ו, אבל מותר להשתמש בפעולותיה), היפוך תור ובדיקת פלינדרום בעזרת מחסנית, איך מחליטים איזה מבנה מתאים - וחזרה על יחידת התור.
שאלה לדוגמה
מה מגדיר טיפוס נתונים מופשט (ADT)?
- שפת התכנות שבה הוא כתוב
- מספר האיברים המרבי שבו
- האופן שבו הוא שמור בזיכרון
- הפעולות שאפשר לבצע עליו ומה כל אחת עושה
לתשובה
הפעולות שאפשר לבצע עליו ומה כל אחת עושה - ADT מוגדר דרך הממשק בלבד. המימוש מוסתר (הכמסה) - ולכן אפשר להחליף מימוש בלי לשנות את הקוד שמשתמש בו.
לומדים את כל זה במרחב הלמידה, בחינם
שיעורים מונפשים ותרגול לפי תוכנית משרד החינוך. הילד עושה משהו בכל מסך ומקבל הסבר על כל טעות, וההורה מקבל דוח שבועי. ממלכתי וממלכתי-דתי.