[בעיה בתשובה]2009/A מועד א שאלה 3

מנהלים: TA_nimrod, TA_Igor, TA_Adi

שלח תגובה
danny
הודעות: 64
הצטרף: 12:32 23/10/2009

[בעיה בתשובה]2009/A מועד א שאלה 3

שליחה על ידי danny » 18:11 21/01/2010

בסעיף ב' (הבנאי):
מאתחלים את size להיות arr.length -1
לדעתי אמור להיות size = arr.length

הסבר: Math.random() מייצר מספר בין 0 ל-0.9999 ולכן הכפלה באורך המערך + עיגול ל-int תתן מספר בין 0 ל-arr.length -1.

הערה: עם שינוי זה צריך גם כמובן לשנות בסעיף ג' כל הופעה של:

קוד: בחירת הכל

arr[size]
ל

קוד: בחירת הכל

arr[size-1]
וב-hasNext() לשנות את:

קוד: בחירת הכל

return size>=0;
ל

קוד: בחירת הכל

return size>0;
*מבחינה לוגית כאשר size הוא 0 אז זה כמו להגיד שאין יותר איברים*

נ.ב: שימו לב שאין שימוש בכלל ב-hasNext() בעוד שראינו בפעמים קודמות שכן יש צורך להשתמש בו ולזרוק exception (למרות שמדובר במימוש ע"י מערך ואכן יזרק exception גם ככה)

מחכה לתשובת בודק. תודה.
Error is Created. Truth is Eternal. Error, or Creation, will be Burned up, & then, & not till Then, Truth or Eternity will appear

yevlev
הודעות: 37
הצטרף: 20:56 12/11/2009

Re: [בעיה בתשובה]2009/A מועד א שאלה 3

שליחה על ידי yevlev » 20:20 21/01/2010

דני, אתה צודק לגבי הרנדום. ההכפה צריכה להיות באורך המערך, ואז עיגול לINT.
לגבי הSIZE מינוס 1 - צריך רק לוודא שזה לא חורג למס' שלילי. כי לא כתוב שהמערך לא יכול להיות באורך 0.

danny
הודעות: 64
הצטרף: 12:32 23/10/2009

Re: [בעיה בתשובה]2009/A מועד א שאלה 3

שליחה על ידי danny » 20:26 21/01/2010

כפי שאמרתי, צריך לעשות בדיקת hasNext() וכך להמנע מכל המקרים (כולל המקרה שציינת-שהמערך בגודל 0).
אבל שוב - אם המערך בגודל 0 ונזרק exception (בין אם אתה ציינת זאת עם exception משלך או שנזרק exception של array out of bounds בגלל פעולה לא חוקית על המערך arr) אז זה מספיק.
Error is Created. Truth is Eternal. Error, or Creation, will be Burned up, & then, & not till Then, Truth or Eternity will appear

yairyog
הודעות: 39
הצטרף: 08:34 12/11/2009

Re: [בעיה בתשובה]2009/A מועד א שאלה 3

שליחה על ידי yairyog » 00:10 23/01/2010

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

שלח תגובה

חזור אל “- מבוא למדעי המחשב 2010”