עבור לתוכן

דרכי פתרון לשאלות what בג'אווה

Featured Replies

פורסם

רציתי לדעת מה השיטות שלכם כאשר אתם מקבלים קוד ונשאלים מה הוא עושה.

או יותר נכון כיצד אתם מריצים את הקוד על דף ?

ךדוגמא קוד



public class IntVector

{

private int []_arr;

/**

* Constructor for objects of class IntVector

*/

public IntVector(int size)

{

_arr= new int[size];

}
public int what ()

{

int m =_arr[0];

for (int i=0; i<_arr.length; i++)

for (int j=i; j<_arr.length; j++)

{

int s=_arr[i];

for (int k=i+1; k<=j; k++)

s += _arr[k];

if (s > m)

m=s;

}

return m;

}

פורסם
  • מחבר

אני כל הזמן ממש מסתבך בשאלות האלה, אני מכין מערך ואז כאילו מריץ אותו אבל הכל מתבלגן לי בשלב מסויים ולוקח לי המון זמן להבין מה השיטה עושה.

אז חשבתי אולי יש איזה שיטה או טיפ טוב לפתור סוג כזה של שאלות

פורסם

בקוד אמיתי ולא שאלות קצרות כאלה של מבחנים - אני אוהב להסתכל על מבנה הנתונים קודם כל, ורק אח"כ להתקדם לפונקציות, קודם קטנות ופשוטות ומשם לגדולות.

בדר"כ רושם לעצמי הערות בדרך לדברים שפחות טריוויאלי לפענח מה הם - ואז אם אני נתקל בשימוש של משהו שקראתי יש לי את ההערה שמתמצתת מה הוא עושה.

בקוד קצר כזה של שאלות במבחן - תלוי.

לפעמים מעקב אחרי דוגמאות קצרות. (טוב אם אתה מזהה תבנית של פעילות)

לפעמים ניסיון להבין את גרף ההחלטות.

לפעמים לכתוב את הקריאות הרקורסיביות כעץ.

לפעמים תרגום בראש לפסאודו קוד בעברית. (במקום for i j k, "רץ על כל הקורדינאטות בוקטור")

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

אבל זה לוקח הרבה זמן, ובגדול מיותר אלא אם ביקשו.

פורסם
  • מחבר

תודה

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

נקווה שיהיה קוד קל במבחן.

תודה

פורסם

הכי טוב יהיה לבנות טבלת מעקב. תרשום את כל המשתנים הפשוטים ואת המערכים\אובייקטים על גבי טבלה, תוסיף את האינדקסים של

הלולאות ואז תתחיל למלא את הטבלה על פי מה שקורא בכל איטרציה של הלולאה \ שלב של הקוד.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים