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

בגרות מדעי המחשב 899371, קיץ 2020 מועד א'

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

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

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

לתלמידי ותלמידות מדעי המחשב ביחידות המתקדמות — מי שלומד ב-Java או ב-C#. השאלון אחד; השפה היא הבחירה שלכם.

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

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

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

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

שאלה 1

כתוב פעולה חיצונית 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)

שאלה 2

נתונה המחלקה 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

באוכסניית הנוער "חלומות טובים" יש 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()

סעיף ב-1

ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C#, במחלקה Hostel: מוצאת את החדר הראשון הפנוי מן הסוג המבוקש, מעדכנת בו את מספר הלילות, ומחזירה את מספרו; אם אין כזה, מחזירה 1-.

public int orderRoom(int type, int nights)

סעיף ב-2

ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C#, במחלקה Hostel: מחזירה מערך בגודל 3 של סך ההכנסה מכל קומה. חובה להשתמש בפעולה שכתבת בסעיף א.

public int[] floorIncome()

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

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

  1. שאלה 1

    שאלה 1 — מציאת אינדקס שעד אליו הסכום עולה על מספר נתון

  2. שאלה 2

    שאלה 2 — מחלקת Weight — בנאים, חיבור והשוואת משקלים, וסכימה על פני מערך

  3. שאלה 3

    שאלה 3 — מחלקות Room ו-Hostel — הכנסה מחדר, הזמנת חדר פנוי, והכנסה לפי קומה

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

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

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

לא עוד דף פתרונות — כאן מתרגלים, נבחנים ומשתפרים

1סימולציה ותחקורפותרים בגרות מלאה בתנאי בחינה, עם שעון. בסיום עוברים טעות-טעות: מה כתבתם, איפה נפלתם ולמה — ומה לתרגל עכשיו.
2תרגול ממוקד חולשותהתחקור מסמן את הנושאים שנפלתם בהם, והתרגול הבא נבנה מהם — רוב הזמן על החולשות, מעט על מה שכבר יושב.
3איזי, המאמן האישיעונים בעצמכם, ואיזי מגיב לדרך שכתבתם — לא רק לתשובה הסופית. אפשר לשאול אותו על כל שלב, בכל שאלה.

וכמובן — פתרון מלא ומוסבר לכל שאלה מהבגרויות האמיתיות. מתחילים לתרגל — חינם, בלי כרטיס ←