בגרות מדעי המחשב 899371, קיץ 2020 מועד א'
תאריך הבחינה: לא ידוע
טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).
לתלמידי ותלמידות מדעי המחשב ביחידות המתקדמות — מי שלומד ב-Java או ב-C#. השאלון אחד; השפה היא הבחירה שלכם.
✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם
פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.
שאלות לדוגמה מהמבחן — פתרו עכשיו
בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 3 שאלות המבחן — את כולן תוכלו לפתור אונליין.
כתוב פעולה חיצונית above בשפת Java או Above בשפת C#, המקבלת מערך arr מטיפוס מספר שלם ומספר שלם num. הפעולה תחזיר את מספר האינדקס הראשון שהתא שבו (כולל) סכום איברי המערך מתחילתו ועד אליו גדול מן המספר num. אם אין תא כזה, תחזיר הפעולה 1-.
דוגמה: במערך arr שלפניך, עבור num שווה ל-9, תחזיר הפעולה את המספר 4, משום שהוא האינדקס הראשון של המערך שהסכום המצטבר של איבריו מתחילת המערך עד אליו (כולל) גדול מן המספר 9.
דוגמה נוספת: במערך arr שלפניך, עבור num שווה ל-11, תחזיר הפעולה 1-, משום שאין תא שעד אליו סכום המספרים מתחילת המערך גדול מן המספר 11.
דוגמה: מערך arr לדוגמה הראשונה, num=9
index: 0 1 2 3 4 5
value: 3 -2 6 2 1 3
דוגמה נוספת: מערך arr לדוגמה השנייה, num=11
index: 0 1 2 3 4 5
value: 1 2 -2 0 7 3
כתוב פעולה חיצונית above בשפת Java או Above בשפת C#, המקבלת מערך arr מטיפוס מספר שלם ומספר שלם num. הפעולה תחזיר את האינדקס הראשון שעד אליו (כולל) סכום איברי המערך מתחילתו גדול מ-num. אם אין תא כזה, תחזיר הפעולה 1-.
public static int above(int[] arr, int num)
נתונה המחלקה Weight – משקל, שיש לה שתי תכונות: kilo – מספר קילוגרמים, המקבלת ערכים מ-0 ומעלה, מטיפוס מספר שלם. gram – מספר גרמים, המקבלת ערכים מ-0 עד 999 (כולל), מטיפוס מספר שלם.
הנח שלכל תכונה במחלקה הוגדרו בשפת Java פעולות get ו-set ובשפת C# פעולות Get ו-Set.
לפניך ממשק חלקי של המחלקה Weight הכתוב בשפת Java ובשפת C#:
| כותרת הפעולה | תיאור הפעולה |
|---|---|
public Weight() | פעולה בונה המאתחלת את התכונות kilo ו-gram לאפס. |
public Weight(int kilo, int gram) | פעולה בונה המקבלת ערכים בקילוגרמים וגרמים. הנח שמספר הקילוגרמים במשתנה kilo גדול או שווה ל-0, ומספר הגרמים במשתנה gram הוא בין 0 ל-999 (כולל). |
public Weight(int totalGram) | פעולה בונה המקבלת ערך בגרמים בלבד. מספר הגרמים במשתנה totalGram יכול להיות מעל 999. הפעולה תחשב ותכניס את מספר הקילוגרמים ל-kilo ואת מספר הגרמים ל-gram. דוגמה: אם מספר הגרמים במשתנה totalGram הוא 3,215 התכונה kilo תקבל 3 והתכונה gram תקבל 215. הנח שמספר הגרמים totalGram גדול או שווה ל-0. |
public void add(Weight other) — בשפת Java / public void Add(Weight other) — בשפת C# | פעולה המקבלת עצם אחר מטיפוס Weight ומוסיפה את משקלו של העצם הנוכחי. הנח ש-other אינו null. |
public boolean less(Weight other) — בשפת Java / public bool Less(Weight other) — בשפת C# | פעולה המקבלת עצם אחר מטיפוס Weight ומחזירה true אם משקל העצם הנוכחי קטן ממשקל העצם האחר. הנח ש-other אינו null. |
א. ממש את שתי הפעולות הבונות של המחלקה Weight: public Weight(int kilo, int gram) ו- public Weight(int totalGram) (אין צורך לממש את הפעולה הבונה ללא פרמטרים).
ב. ממש את הפעולות add ו-less בשפת Java, או Add ו-Less בשפת C#.
ג. נתונה המחלקה AllWeights שיש לה תכונה אחת: arr – מערך מטיפוס Weight. לפניך ממשק חלקי של המחלקה AllWeights הכתוב בשפת Java ובשפת C#: public Weight sum() — בשפת Java / public Weight Sum() — בשפת C# — פעולה המחזירה עצם Weight השווה לסכום המשקלים של איברי המערך. הערה: אין לשנות את איברי המערך. ממש את הפעולה sum בשפת Java או Sum בשפת C#. הנח שהתאים במערך arr אינם null. הערה: תוכל להשתמש בכל אחת מן הפעולות של מחלקה Weight.
ממש את שתי הפעולות הבונות של המחלקה Weight: public Weight(int kilo, int gram) ו-public Weight(int totalGram) (אין צורך לממש את הפעולה הבונה ללא פרמטרים).
public Weight(int kilo, int gram) / public Weight(int totalGram)
ממש את הפעולות add ו-less בשפת Java, או Add ו-Less בשפת C#.
public void add(Weight other) / public boolean less(Weight other)
ממש את הפעולה sum בשפת Java או Sum בשפת C# במחלקה AllWeights, המחזירה עצם Weight השווה לסכום משקלי איברי המערך arr, בלי לשנות את איברי המערך.
public Weight sum()
באוכסניית הנוער "חלומות טובים" יש 3 קומות, ובכל קומה יש 1-3 חדרים. באכסניה יש שני סוגי חדרים: חדר זוגי וחדר יחיד. המחיר ללילה בחדר יחיד הוא 50 שקלים ובחדר זוגי 100 שקלים.
במערכת המחשוב מוגדרת מחלקת Room, חדר – יש לה שלוש תכונות: • roomNum – מספר חדר בן שלוש ספרות, מטיפוס שלם. הספרה הראשונה (משמאל) מייצגת את מספר הקומה שבה החדר נמצא. לדוגמה: חדר מספר 231 נמצא בקומה מספר 2, וחדר 145 נמצא בקומה מספר 1. • roomType – סוג חדר: 1 הוא חדר יחיד, ו-2 הוא חדר זוגי, מטיפוס שלם. • nightsReserved – מספר הלילות שהחדר מוזמן מעכשיו, מטיפוס שלם. אם nightsReserved שווה ל-0 (החדר פנוי), ואם הוא מעל ל-0 (החדר תפוס).
הנח שלכל תכונה במחלקה הוגדרו בשפת Java פעולות get ו-set ובשפת C# פעולות Get ו-Set.
א. כתוב פעולה income בשפת Java או Income בשפת C#, במחלקה Room, המחזירה את ההכנסה המתקבלת מהחדר. חישוב ההכנסה הוא מכפלת מספר הלילות המוזמנות במחיר החדר ללילה.
ב. במערכת המחשוב מוגדרת מחלקה נוספת – Hostel, אכסניה – שיש לה תכונה אחת: allRooms – מערך בגודל 200 מטיפוס Room (החדרים במערך אינם ממוינים לפי סדר כלשהו). הנח שהתאים במערך אינם null.
לפניך ממשק חלקי של המחלקה Hostel הכתוב בשפת Java ובשפת C#:
public int orderRoom(int type, int nights) — בשפת Java / public int OrderRoom(int type, int nights) — בשפת C# — הפעולה מוצאת את החדר הראשון במערך allRooms שעונה על התנאים האלה: פנוי ומן הסוג המבוקש. הפעולה מעדכנת בחדר את מספר הלילות המבוקש (nights), ומחזירה את מספר החדר שנמצא. אם אין במערך חדר פנוי מן הסוג המבוקש, הפעולה מחזירה 1-.
public int[] floorIncome() — בשפת Java / public int[] FloorIncome() — בשפת C# — הפעולה מחזירה מערך בגודל 3 שבו מופיעים סך כל סכומי ההכנסה מכל החדרים בכל אחת משלוש הקומות באכסניה: באינדקס 0 מופיע סכום ההכנסה מקומה 1, באינדקס 1 מקומה 2, ובאינדקס 2 מקומה 3.
(1) ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C#, במחלקה Hostel. (2) ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C#, במחלקה Hostel. חובה להשתמש בפעולה שכתבת בסעיף א.
כתוב פעולה income בשפת Java או Income בשפת C#, במחלקה Room, המחזירה את ההכנסה המתקבלת מהחדר (מספר הלילות המוזמנות כפול מחיר החדר ללילה).
public int income()
ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C#, במחלקה Hostel: מוצאת את החדר הראשון הפנוי מן הסוג המבוקש, מעדכנת בו את מספר הלילות, ומחזירה את מספרו; אם אין כזה, מחזירה 1-.
public int orderRoom(int type, int nights)
ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C#, במחלקה Hostel: מחזירה מערך בגודל 3 של סך ההכנסה מכל קומה. חובה להשתמש בפעולה שכתבת בסעיף א.
public int[] floorIncome()
כל שאלות המבחן — 3 שאלות, כל אחת עם פתרון מלא
לפי סדר המבחן. לוחצים על שאלה ועוברים לעמוד שלה: השאלה המלאה, השרטוט, ופתרון מלא ומוסבר צעד אחרי צעד.
פתרו את המבחן המלא — עם משוב על כל תשובה
כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.
התחילו לתרגל — חינם ←