אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2024 · אביב מועד ב · שאלה 11כל שאלות המבחן ←
מבנים לינארייםתורים

משרד הרישוי מחזיק מאגר מידע על כל נהגי ישראל ושל עבירות התנועה בצורה ממוחשבת. עבור כל נהג נשמרים במשרד הרישוי הנתונים הבאים: מספר תעודת הזהות (מחרוזת); שם (מחרוזת); מספר הרישיון (מחרוזת); תאריך הלידה (מחרוזת); מספר עבירות התנועה שעשה (מספר שלם); רישיון פעיל או מושבת (ערך בוליאני, true – פעיל, false – מושבת).

סעיף א

כתבו את כותרת המחלקה ואת התכונות עבור כל אחת מהמחלקות הבאות: Driver המתארת נהג; DriversData המתארת מידע על כל נהגי המדינה. אפשר להניח שבמחלקה Driver קיימות פעולות בונים, פעולות get ו-set לכל תכונה ופעולה toString המתארת נהג. לייצוג אוסף אפשר להשתמש במחלקות Stack, Queue, Node. אפשר להוסיף תכונות נוספות. חובה לתעד את התכונות. במחלקה Driver קיימת פעולה פנימית int getAge() המחזירה את גיל הנהג בשנים מלאות. אפשר להניח שגיל נהג הוא מספר שלם בין 18 ל-120 (כולל).

סעיף ב

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

סעיף ג

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

סעיף ד

מהן סיבוכיות הפעולות שכתבתם בסעיף ג'? הסבירו את תשובתכם.

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי