DeGod פורסם 2014 ביוני 15 Share פורסם 2014 ביוני 15 אהלן אני עשיתי עבודה די גדולה אני אפרסם קודם כל מה ביקשו ממני לעשות ואז את השיטות שיש לי בהם בעיות(מבחינת הטסטרים שמוצאים לי בהם תקלות) אשמח אם תוכלו לעזור לי למצוא כי אני כבר 3 ימים לא מבין איפה אני טועה...(הצלחתי לצמצתם מ30 באגים ל6...) המשימה: "אנו רוצים לייצג מחרוזת תווים ברשימה מקושרת.בכל צומת ברשימה יהיו שלושה שדות: 1. האות עצמה; 2. מספר הפעמים שהיא מופיעה ברצף; 3. מצביע לצומת הבא ברשימה. כך למשל המחרוזת " aabbbacddd " תיוצג על- ידי הרשימה הבאה: המחלקה CharNode שלהלן מייצגת צומת ברשימה: http://pastebin.com/724Yf0M8 (לינק למחלקה שנתנו לנו) המחלקה StringList מייצגת את הרשימה כולה" ואני מניח שלא תצרכו את הקוד שלה מאחר והיא פשוט מצביע לCharNode עכשיו הנה הבעיה 2 שיטות שהם ביקשו: שיטה ראשונה: "public int compareTo (StringList str) - המשווה בין המחרוזת המיוצגת על- ידיהאוביקט עליו היא מופעלת, למחרוזת str שבפרמטר. השיטה מחזירה את הערך 0 אם המחרוזות שוות. אם המחרוזת שבאובייקט קטנה לקסיקוגרפית מהמחרוזת str שבפרמטר יוחזר מספר שלילי, ואם המחרוזת שבאובייקט גדולה לקסיקוגרפית מהמחרוזת str יוחזר ערך חיובי." הבעיה השניה הינה בבנאי שתוכלו לראות...(כל שאר הבדיקות (80) עוברות באופן תקין) והנה מה שאני עשיתי: http://pastebin.com/hAaASWRT הטסטר שמראה לי שגיאות(חייב לציין שמישהו שאיתי בקורס הכין אותו לא המרצים עצמם): http://pastebin.com/vCn6rydF הבאגים שהטסטר מראה: StringListStringList_null_Should_CreateEmptyString compareTo_aabbc_aabbbc compareTo_a_aa compareTo_aabb_aab קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 16 מחבר Share פורסם 2014 ביוני 16 לגבי compare אז קודם כל גם שם אין צןרך להעתיק את הרשימותחוץ מזה לא נתת את הקוד של השיטה conditionsCompareחוץ מזה אין בשיטה התיחסות לvalue כלומר לעובדה שתא אחד יכול ליצג מספר אותיות זהות קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 16 מחבר Share פורסם 2014 ביוני 16 טוב, הקוד שלך מבולגן למדי ויש שם עוד כמה טעויותלמשל אתה לא יכול לשאול s==""אתה צריך להשתמש בequalsחוץ מזה אתה עושה לוגיקה של בנית רשימה והוספת איבר לרשימה בכמה שיטות (הבנאי שמקבל CharNode הבנאי שמקבל StringList הבנאי שמקבל String) למה כל פעם לחזור על אותו לוגיקה?אולי פשוט תעשה שיטה add שתקבל CharNode ותשתמש בה בכל מקום שצריך?לגבי compareToמה שאתה עושה זה מדלג על כל הנודים שזהים (השיטה conditionsCompare בעצם בודקת שוויון בין שני CharNode למה לא לקרוא לה בשם מתאים?) ואז כשגילית זוג נודים שאינו שווה אז אתה משווה את הdata אבל מתעלם מזה שהvalue יכול להיות מה שאינו שווה (גם value זה שם מטעה. היו צריכים לקרוא לזה count)בשלושת המקרים שנתת זה מה שקורה בעצםלמה מתעלם מהVALUE הקונדישן קומפר בודק גם את הVALUE של כל אחד מהם... קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 16 מחבר Share פורסם 2014 ביוני 16 כן אבל אחרי שאתה יוצא מהלולאה של קונדישן קומפר אתה משווה רק את dataתודה מבין עכשיו... יש מצב שתנסה לעזור לי לרשום את זה משומה כשאני רושם את זה זה פשוט מראה כאילו יש יותר שגיאות? אולי משהו שאני לא שם לב?רציתי להוסיף if( firstCopy.getValue() > strCopy.getValue()) return 1משהו בסגנון הזה ו-1- אם זה הפוך.... ? קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 16 מחבר Share פורסם 2014 ביוני 16 אתה לא הבנת עד הסוף. אין צורך להשוות את הערכים של value. הרי זה מבטא מופעים של אותיות.לדוגמא במקרה הזה("aabbc", "aabbbc")המחרוזות נבדלות באות החמישית. אתה צריך להשוות את המופע השלישי של האות B במחרוזת השניה עם האות C במחרוזת הראשונה. האות C נמצאת בכלל ב CharNode אחרהבנת?חשבתי על שיטה לסדר את זה שפתרה לי את רוב הבעיות אבל עדין נשארו לי כמה אשמח אם תתקן אותיhttp://pastebin.com/Et26megLעכשיו נשארה לי בעיה עם aabbc_aabbbc אין לי מושג מה עכשיו אני מפספס אשמח לשמוע את דעתך... קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 16 מחבר Share פורסם 2014 ביוני 16 שני דברים1) קודם כל, כשאתה עושה שיטה כמו listSum שעובדת על המשתנים הפרטיים של המחלקה, עדיף שהיא תעבוד על המשתנים הפרטיים של this במקום לקבל אותו כפרמטרככה תוכל לעשות int firstCheck =listSum();int secondCheck=str.listSum();זה הרבה יותר נכון מבחינת פרדיגמת תכנות מונחה עצמים2) השיטה החדשה שלך היא לא לענין. אתה משוה אורכים של שתי הרשימות אבל זה לא בדיקה לקסיקוגראפית (אתה יודע מה זה?)לקסיקוגראפית זה לפי הא,ב עד כמה שאני יודע המספרים מסודרים לפי הABC גם בערכם המספרי אני טועה?ואני לא משווה ערכים.. אני משווה את הערך הכולל של האותיות....עריכה:עכשיו הבנתי תעניין...- - - תגובה אוחדה: - - -חושב שסידרתי תבעיהhttp://pastebin.com/6WsMHGU9 קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 17 מחבר Share פורסם 2014 ביוני 17 אוקי, קודם כל מצטער, לא ראיתי מקודם שאתה סוכם את data בתוך הלולאה ב listSum.מה שאתה עושה שם בעצם זה מכפיל את data ב value . אין צורך בלולאה בשביל זה.ולפי דעתי זו לא הגישה הנכונה.לפי דעתי הפתרון הנכון הוא זה1) הלולאה של conditionsCompare היא בסדר. היא נועדה להגיע למקום הראשון שבו יש הבדל בין הרשימות המקושרות.2) אחרי הלולאה אנחנו יכולים להגיע לאחד מהמצבים הבאים2.1) אחד מהמצביעים הוא null - אחת מהרשימות הגיעה לסופה. הרשימה השניה היא גדולה יותר2.2) שני המצביעים הם null - הרשימות זהות2.3) אף אחד מהמצביעים הוא null - ההבדל הוא בCharNode-ים האחרונים שהושוו. אם ההבדל הוא ב data שלהם אפשר להחזיר את תוצאת החיסור של ה data2.4) אם ההבדל בין ה CharNode-ים הוא ב value ז"א שאחד מהם מיצג רצף אותיות קטן יותר מהשני ז"א שצריך להשוות את ה CharNode הבאלדוגמאcompareTo("aabbcc", "aabbbc") listString1 = CharNode('a',2) -> CharNode('b',2) -> CharNode('c',2) -> nulllistString2 = CharNode('a',2) -> CharNode('b',3) -> CharNode('c',1) -> nullהלולאה של conditionsCompare תיעצר באיבר השני. ההבדל בין האיברים הוא ב value. אנחנו צריכים להשוות את הb השלישי במחרוזת השניה מול הc הראשון במחרוזת הראשונה - ז"א לבחור את הCharNode בעל הvalue הקטן יותר, לקחת את ה CharNode שבא אחריו (צריך לבדוק שלא הגענו לסוף הרשימה) ולהשוות את ה data שלו וdata של האיבר עם הvalue הגדול יותר.בזכותך הצלחתי בסופו של דבר הצלחתי לסדר את הכל תודה ענקית... הנה הקוד שיצא לי בסופו של דבר:http://pastebin.com/LqwL9av2עכשיו שאלה אחרונה הכל אצלי פועל תקין חוץ מהטסטר הזה: public void StringListStringList_null_ShouldCreateEmptyString() { // Arrange // Act StringList sl = new StringList((StringList) null); // Assert assertEquals("", sl.toString()); }אני מניח שזה בעיה של הגישה שלו לעומת שלי? בהגדרה של הNULL שאני מחזיר לעומת שלו קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 17 מחבר Share פורסם 2014 ביוני 17 קודם כל, מימשת toString ל StringList?- - - תגובה אוחדה: - - - מצאתי. השיטה מתחילה בזה public String toString(){ if (this._head ==null)//if its null then we return null return null; אולי פשוט תחזיר מחרוזת ריקה במקום null גם לא עובד למרות שתכלס אני חושב שזה לא עובר כי לפי מה שהוא רשם לא נוצר כלום... (זה לא טסטר שהמרצים הכינו זה בחור מהקורס שהוא די חכם הכין... אז יש מקום לטעויות אצלו בטסטר) מה דעתך? או שזה שגיאה שלי? קישור לתוכן שתף באתרים אחרים More sharing options...
DeGod פורסם 2014 ביוני 17 מחבר Share פורסם 2014 ביוני 17 זה לא ענין של טעות כמו שהוא החליט ש toString יחזיר מחרוזת ריקה אם StringList מאותחל ב null ככל הנראה זה מתאים למימוש שלו.מה אתה מחזיר במקרה כזה?toString)) המשדורג שלי מחזיר "" במקרה של NULL והבנאי של סטרינג במידה והוא NULL מכניס לHEAD גם את NULL קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.