בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2018 קיץ מועד א

ממשקים וחישוב מיסים לתושבים

שאלה קודמתשאלה הבאה
שאלה 14מבני נתונים2018 קיץ מועד א

ממשקים וחישוב מיסים לתושבים

תשלום מיסי ארנונה מחושב לפי שטח מגורים וקרקע נוספת. 10 ש"ח למ"ר מגורים, 0.5 ש"ח למ"ר קרקע. לדוגמה, תושב שבבעלותו שטח למגורים בגודל 100 מ"ר ושטח קרקע בגודל 500 מ"ר משלם מיסי ארנונה בסכום של:

1250 = 100 · 10 + 500 · 0.5

התושבים חולקו לשלוש קבוצות:

  • תושב עיר: משלם ארנונה ומקבל מענק 250 ש"ח.
  • תושב עיר ותיק (בן 60+): משלם כתושב עיר, וזכאי להנחה לפי גיל: 1% לכל שנה מעל 60. ההנחה מחושבת לאחר הפחתת המענק.
  • תושב כפר: משלם ארנונה עם הנחה של 10%. תושב כפר ותיק לא זכאי להנחה תלויה בגיל. אם הסכום שלילי, התושב פטור (0 ש"ח).

הוגדר הממשק IData:

java
1interface IData {
2    public String getName(); // מחזירה שם של תושב
3    public double getPropertyTax(); // מחזירה גובה של מס ארנונה
4}

בסעיפים א-ב שלפניך עליך להגדיר את המחלקות לפי עקרונות של תכנות מונחה עצמים בהתאם לדרישות:

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

משימות

אמשימה אcode

הגדר מחלקה Resident (המייצגת תושב), המממשת את הממשק IData, וכתוב בה את תכונות המחלקה (אין צורך לכתוב פעולה בונה).

במשימה בcode

הגדר שלוש מחלקות: CityResident, SeniorCityResident, VillageResident. כתוב את תכונות המחלקות ואת הפעולה getPropertyTax לכל אחת (אין צורך לכתוב פעולה בונה).

גמשימה גtext

נתון גוף פעולה:

java
1for (int i=0; i < a.length; i++) {
2    if (a[i] instanceof SeniorCityResident) {
3        System.out.println(a[i].getName()+" "+a[i].getPropertyTax());
4    }
5}

עבור כל אחת מכותרות הפעולה (1)-(3), ציין אם הפעולה תקינה. אם לא נמק ותקן. (1) public static void print(Object[] a) (2) public static void print(IData[] a) (3) public static void print(Resident[] a)

שאלה 14מבני נתונים2018 קיץ מועד א

ממשקים וחישוב מיסים לתושבים

תשלום מיסי ארנונה מחושב לפי שטח מגורים וקרקע נוספת. 10 ש"ח למ"ר מגורים, 0.5 ש"ח למ"ר קרקע. לדוגמה, תושב שבבעלותו שטח למגורים בגודל 100 מ"ר ושטח קרקע בגודל 500 מ"ר משלם מיסי ארנונה בסכום של:

1250 = 100 · 10 + 500 · 0.5

התושבים חולקו לשלוש קבוצות:

  • תושב עיר: משלם ארנונה ומקבל מענק 250 ש"ח.
  • תושב עיר ותיק (בן 60+): משלם כתושב עיר, וזכאי להנחה לפי גיל: 1% לכל שנה מעל 60. ההנחה מחושבת לאחר הפחתת המענק.
  • תושב כפר: משלם ארנונה עם הנחה של 10%. תושב כפר ותיק לא זכאי להנחה תלויה בגיל. אם הסכום שלילי, התושב פטור (0 ש"ח).

הוגדר הממשק IData:

java
1interface IData {
2    public String getName(); // מחזירה שם של תושב
3    public double getPropertyTax(); // מחזירה גובה של מס ארנונה
4}

בסעיפים א-ב שלפניך עליך להגדיר את המחלקות לפי עקרונות של תכנות מונחה עצמים בהתאם לדרישות:

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

משימות

אמשימה אcode

הגדר מחלקה Resident (המייצגת תושב), המממשת את הממשק IData, וכתוב בה את תכונות המחלקה (אין צורך לכתוב פעולה בונה).

במשימה בcode

הגדר שלוש מחלקות: CityResident, SeniorCityResident, VillageResident. כתוב את תכונות המחלקות ואת הפעולה getPropertyTax לכל אחת (אין צורך לכתוב פעולה בונה).

גמשימה גtext

נתון גוף פעולה:

java
1for (int i=0; i < a.length; i++) {
2    if (a[i] instanceof SeniorCityResident) {
3        System.out.println(a[i].getName()+" "+a[i].getPropertyTax());
4    }
5}

עבור כל אחת מכותרות הפעולה (1)-(3), ציין אם הפעולה תקינה. אם לא נמק ותקן. (1) public static void print(Object[] a) (2) public static void print(IData[] a) (3) public static void print(Resident[] a)