שאלה 2מבני נתונים2026 קיץ מועד במימוש מבנה נתוניםסה״כ 27 נק׳
אריזת קוביות לקופסאות — מערך עצמים ותור
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה Cube – קוביה, ולה שתי תכונות:
size – גודל הקוביה בסמ"ר, מטיפוס מספר שלם.
type – סוג הקוביה, מטיפוס תו.
הניחו שיש פעולות get לתכונות המחלקה.
נתונה המחלקה Box – קופסה, ולה שתי תכונות:
cubes – מערך בגודל 3 מטיפוס Cube, בו שומרים את הקוביות. ניתן להכניס למערך קוביות או שכולן מאותו סוג או שכולן מאותו גודל.
count – כמות הקוביות במערך.
לפניכם פעולות המחלקה Box. ניתן להשתמש בפעולות ללא צורך במימוש:
פעולה בונה:
java
1publicBox(){2 cubes =newCube[3];3 count =0;4}
java
1publicbooleanadd(Cube c)
הפעולה מקבלת עצם מסוג Cube. אם ניתן להכניס את העצם למערך (בהתאם לדרישות לעיל), הפעולה מכניסה אותה למקום הראשון שפנוי במערך (ומעדכנת את ערך המשתנה count) ומחזירה true. אחרת (אם המערך מלא או שהעצם אינו עונה על הדרישות לעיל), הפעולה מחזירה false ללא שינוי ערכי המערך.
משימות
אמשימה א
מימושניקוד לא ידוע
קופסה נקראת "מושלמת" אם יש בה 3 קוביות מאותו הסוג וגם מאותו הגודל.
ממשו את הפעולה הפנימית שלפניכם במחלקה Box:
java
1publicboolean isPerfect ()
הפעולה מחזירה true אם הקופסה מושלמת. אחרת, מחזירה false.
במשימה ב
מימושניקוד לא ידוע
במפעל צעצועים אורזים קוביות לקופסאות לפי סדר ההגעה שלהן.
(1) ממשו את הפעולה החיצונית שלפניכם:
java
1publicstaticBox packBox (Queue<Cube> q)
הפעולה מקבלת תור של קוביות ומחזירה עצם מסוג Box. הפעולה תכניס קוביות מהתור (לפי סדר הופעתן) לקופסה, כל עוד פעולת ההכנסה אפשרית. אם לא ניתן להכניס את הקובייה הבאה בתור, הפעולה תעצור ותחזיר את הקופסה שנוצרה.
⚠ הערה — אילוץ מחייב
בסיום הפעולה סדר הקוביות בתור המקורי נשמר, ללא הקוביות שהוכנסו לקופסה.
הסבר: בהתאם לדרישות האמורות לעיל, יש צורך בארבע קופסאות. הקופסה השלישית בתור היא קופסה מושלמת.
שפת התכנות שלי
שאלה 2מבני נתונים2026 קיץ מועד במימוש מבנה נתוניםסה״כ 27 נק׳
אריזת קוביות לקופסאות — מערך עצמים ותור
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה Cube – קוביה, ולה שתי תכונות:
size – גודל הקוביה בסמ"ר, מטיפוס מספר שלם.
type – סוג הקוביה, מטיפוס תו.
הניחו שיש פעולות get לתכונות המחלקה.
נתונה המחלקה Box – קופסה, ולה שתי תכונות:
cubes – מערך בגודל 3 מטיפוס Cube, בו שומרים את הקוביות. ניתן להכניס למערך קוביות או שכולן מאותו סוג או שכולן מאותו גודל.
count – כמות הקוביות במערך.
לפניכם פעולות המחלקה Box. ניתן להשתמש בפעולות ללא צורך במימוש:
פעולה בונה:
java
1publicBox(){2 cubes =newCube[3];3 count =0;4}
java
1publicbooleanadd(Cube c)
הפעולה מקבלת עצם מסוג Cube. אם ניתן להכניס את העצם למערך (בהתאם לדרישות לעיל), הפעולה מכניסה אותה למקום הראשון שפנוי במערך (ומעדכנת את ערך המשתנה count) ומחזירה true. אחרת (אם המערך מלא או שהעצם אינו עונה על הדרישות לעיל), הפעולה מחזירה false ללא שינוי ערכי המערך.
משימות
אמשימה א
מימושניקוד לא ידוע
קופסה נקראת "מושלמת" אם יש בה 3 קוביות מאותו הסוג וגם מאותו הגודל.
ממשו את הפעולה הפנימית שלפניכם במחלקה Box:
java
1publicboolean isPerfect ()
הפעולה מחזירה true אם הקופסה מושלמת. אחרת, מחזירה false.
במשימה ב
מימושניקוד לא ידוע
במפעל צעצועים אורזים קוביות לקופסאות לפי סדר ההגעה שלהן.
(1) ממשו את הפעולה החיצונית שלפניכם:
java
1publicstaticBox packBox (Queue<Cube> q)
הפעולה מקבלת תור של קוביות ומחזירה עצם מסוג Box. הפעולה תכניס קוביות מהתור (לפי סדר הופעתן) לקופסה, כל עוד פעולת ההכנסה אפשרית. אם לא ניתן להכניס את הקובייה הבאה בתור, הפעולה תעצור ותחזיר את הקופסה שנוצרה.
⚠ הערה — אילוץ מחייב
בסיום הפעולה סדר הקוביות בתור המקורי נשמר, ללא הקוביות שהוכנסו לקופסה.