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

נתונה המחלקה Calendar2024 המתארת לוח שנה 2024.

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

  • בתא 0 (הראשון במערך) יהיה רשום 31 כי בחודש ינואר (החודש הראשון בשנה) יש 31 ימים.
  • בתא 1 (השני במערך) יהיה רשום 29 כי בחודש פברואר (החודש השני בשנה) יש 29 ימים.
  • בתא 2 (השלישי במערך) יהיה רשום 31 כי בחודש מארס יש 31 ימים וכו'.
מספר התא01234567891011
מספר הימים בחודש312931303130313130313031

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

סעיף א

כתבו במחלקה Calendar2024 פעולה המקבלת כפרמטרים שני מספרים שלמים. הראשון מציין יום בחודש, השני מציין את מספר החודש (ביחד מציינים מספרים אלו תאריך). הפעולה תחשב ותחזיר את מספר הימים שעברו מתחילת השנה (1 בינואר) ועד התאריך שהתקבל. לדוגמה: עבור התאריך: 22,1 (22/1) יוחזר המספר: 21 עבור התאריך: 22,3 (22/3) יוחזר המספר: 81 (31+29+21) עבור התאריך: 1,5 (1/5) יוחזר המספר: 121 (31+29+31+30) כותרת הפעולה:

public int numOfDays(int day, int month)
סעיף ב

יום 1.1 (היום הראשון של השנה) חל בשנה 2024 על יום ב' (יום שני, יום מספר 2 בשבוע). כתבו פעולה המקבלת כפרמטרים שני מספרים שלמים. הראשון מציין יום בחודש, השני מציין את מספר החודש (ביחד מציינים מספרים אלו תאריך). הפעולה תחשב ותחזיר את מספר היום בשבוע שבו הוא חל. לדוגמה: עבור היום 1.1 יש להחזיר 2 עבור היום 8.1 יש להחזיר 2 עבור היום 1.2 יש להחזיר 5 עבור היום 22.3 יש להחזיר 6 כותרת הפעולה:

public int weekday(int day, int month)

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

סעיף ג

כתבו במחלקה Calendar2024 פעולה המדפיסה יום בשבוע עבור כל יום ראשון וכל יום אחרון של 12 חודשי השנה 2024. כותרת הפעולה:

public void printFirstLast()

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

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

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

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

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