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

מה"ט אלגוריתמיקה ותכנות — אביב 2024 מועד ב'

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

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

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

טופס מקורי (מה"ט) ↗

למגמת הנדסת תוכנה — מי שלומד ב-Java או ב-C#. הלומדים בפייתון ניגשים לשאלון נפרד.

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

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

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

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

שאלה 1

חברת "טיולי עם" מארגנת טיולים ליעדים שונים בעולם. למערכת הממוחשבת של החברה יש שלוש מחלקות: Date, Traveler, Travel.

המחלקה Date מציינת תאריך. למחלקה יש שלוש תכונות: day – יום, month – חודש, year – שנה. למחלקה הוגדרו פעולה בונה, פעולות Set/Get לכל התכונות. כמו כן, הוגדרה הפעולה המקבלת כפרמטר תאריך מסוים ובודקת אם התאריך הנוכחי (התאריך שמיוצג באמצעות האובייקט שמפעיל את הפעולה, this), לפני מהתאריך other שהתקבל כפרמטר. כותרת הפעולה: public bool Before(Date other)

המחלקה Traveler מייצגת נוסע. למחלקה יש את התכונות הבאות:

  • שם נוסע – name, מטיפוס מחרוזת, string
  • תאריך התפוגה של הדרכון – expireDate, מטיפוס תאריך, Date
  • יעד הנסיעה הרצוי – destination, מטיפוס מחרוזת, string
  • סכום המקדמה ששילם – payment, מטיפוס מספר שלם, int

למחלקה הוגדרו פעולה בונה, פעולות Set/Get לכל התכונות.

סעיף א

כתבו פעולה הבודקת אם הנוסע יכול להצטרף לטיול שמחירו price, תאריך היציאה start ויעד הטיול dest. הנוסע יכול להצטרף לטיול אם הדרכון שלו בתוקף, יעד הטיול הוא היעד הרצוי ונוסע שילם לפחות חצי ממחיר הטיול. כותרת הפעולה: public bool CanGo(Date start, int price, string dest)

סעיף ב

המחלקה Travel מייצגת טיול. למחלקה ארבע תכונות:

  • יעד הטיול – destination, מטיפוס מחרוזת, string
  • מערך נרשמים לטיול – travelers, מערך הפניות לעצמים מטיפוס Traveler
  • מחיר הטיול – price, מטיפוס מספר שלם, int
  • תאריך היציאה לטיול – startDate, מטיפוס תאריך, Date

כתבו פעולה המדפיסה את שמות הנרשמים שהדרכון שלהם אינו בתוקף בתאריך היציאה. כותרת הפעולה: public void NotValidNames()

סעיף ג

הטיול מובטח רק אם בין הנרשמים יש לפחות minNum נוסעים שיכולים לצאת לטיול. כתבו פעולה הבודקת אם הטיול מובטח. אם כן – הפעולה תחזיר ערך true, ולא, הפעולה תחזיר ערך false. כותרת הפעולה: public bool IsGuaranted(int minNum)

שאלה 2

נתונה הפעולה mystery המקבלת שתי מחרוזות:

def mystery(s1, s2):
    out1 = ""
    out2 = ""
    for i in range(len(s1)):
        ch = s1[i]
        pos = s2.find(ch)
        if pos == -1:
            if out1.find(ch) == -1:
                out1 = out1 + ch
        else:
            if out2.find(ch) == -1:
                out2 = out2 + ch
    return out1 + out2
סעיף א

נתונות שתי מחרוזות s1=" COMPUTERS" ו-s2=" CANNOTTHINK" עקבו בעזרת טבלת מעקב אחרי זימון הפעלה mystery(s1, s2) ורשמו מה תחזיר הפעולה.

סעיף ב

מה מבצעת הפעולה mystery באופן כללי?

סעיף ג

האם קיימות שתי מחרוזות שונות s1 ו-s2 שעבורם זימונים mystery(s1, s2) ו-mystery(s2, s1) יחזירו אותה תוצאה? אם כן, הביאו דוגמה של זוג מחרוזות כאלה, ולא, הסבירו למה הדבר אינו אפשרי.

שאלה 3

בעיריית דימונה קיימת מערכת ממוחשבת לגביית מיסוי עירוני (ארנונה). במערכת הוגדרה המחלקה Property (נכס) ולה התכונות הבאות:

  • מספר הנכס – num, מטיפוס מחרוזת, string
  • מספר תעודת הזהות של המשלם – id, מטיפוס מחרוזת, string
  • כתובת הנכס – address, מטיפוס מחרוזת, string
  • שטח הנכס – area, מטיפוס מספר ממשי, float
  • זכאות להנחה – discount, מספר שלם בין 0 ל-3, כאשר:
    • 0 – מציין שאין הנחה, תשלום מלא,
    • 1 – תשלום מופחת, הנחה של 10%,
    • 2 – הנחה של 50%,
    • 3 – פטור מלא מתשלומי ארנונה

במחלקה הוגדרה פעולה פנימית account(self) המחזירה סכום חשבון מלא של ארנונה.

סעיף א

כתבו פעולה פנימית לחישוב סכום לתשלום בהתאם לזכאות להנחה של הנכס. כותרת הפעולה:

def real_account(self)
סעיף ב

המחלקה CityData מאחסנת נתונים של כל הנכסים בעיר. למחלקה תכונה אחת – רשימה arr, רשימה של עצמים מסוג Property. כתבו במחלקה CityData פעולה לחישוב סכום כולל של כל ההנחות בתשלומי הארנונה. כותרת הפעולה:

def total_discount(self)
סעיף ג

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

  • יש בבעלותו רק נכס אחד
  • רמת הזכאות של נכס נמוכה מרמת הזכאות המבוקשת

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

  • "תעודת הזהות אינה ברשימת משלמי ארנונה"
  • "יש יותר מנכס אחד בבעלותו"
  • "רמת הזכאות המבוקשת נמוכה מנוכחית"

כותרת הפעולה:

def print_decision(self, ids, level)

הנושאים הרשמיים בבחינה 97104

לפי תוכנית הלימודים הרשמית של מה"ט (אלגוריתמיקה ותכנות) — אלו הנושאים שהבחינה נשענת עליהם:

המקור: תוכנית הלימודים הרשמית של מה"ט (משרד העבודה).

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

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

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