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

לפי תקנון רשות המים, חיוב עבור צריכת מים ביתית: ההפרש בין קריאת מד המים הנוכחית לקריאה הקודמת קובע את כמות הצריכה. תעריף מוזל חל על 7 מ"ק לכל נפש המתגוררת ביחידת הדיור; היתרה בתעריף גבוה. לדוגמה: צריכה 35 מ"ק, 4 נפשות: 7*4=28 מ"ק בתעריף מוזל, 35-28=7 מ"ק בתעריף גבוה. חברת "מי הארץ" הגדירה מחלקה Client (יחידת דיור) עם התכונות: address (String), persons (int), current (int), prev (int). במחלקה כבר מוגדרים בנאי, get/set לכל תכונה, ו-toString() — אלה נתונים.

סעיף א

כתבו במחלקה Client פעולה לעדכון קריאת מד המים הנוכחית. הפעולה מקבלת מספר שלם newCurrent ומעדכנת את התכונות current ו-prev בהתאם.

public void UpdateCurrent(int newCurrent)

סעיף ב

כתבו במחלקה Client את הפעולה לחישוב תשלום. הפעולה מקבלת שני תעריפים: rate1 (תעריף מוזל) ו-rate2 (תעריף גבוה). הפעולה תחזיר את סכום התשלום לפי תקנון רשות המים.

public double Payment(double rate1, double rate2)

סעיף ג

הנהלת חברת "מי הארץ" החליטה להציע ללקוחות בדיקת מד מים בחינם, ובשלב ראשון לבדוק את מד המים אצל לקוחות שהתשלום שלהם גבוה ביחס למשפחות עם אותו מספר נפשות. כתבו פעולה חיצונית המקבלת מערך לקוחות (הפניות לעצמים מטיפוס Client), מספר שלם חיובי num (מספר הנפשות ביחידת הדיור) ושני תעריפים rate1, rate2. הפעולה תדפיס את כתובת כל הלקוחות שיש להם num נפשות ביחידת דיור, שהתשלום שלהם גבוה מממוצע התשלומים של לקוחות עם אותו מספר נפשות.

public static void Proposal(Client[] arr, int num, double rate1, double rate2)

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

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

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

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