פורסם 2014 ביוני 1511 שנים אהלן אני עשיתי עבודה די גדולה אני אפרסם קודם כל מה ביקשו ממני לעשות ואז את השיטות שיש לי בהם בעיות(מבחינת הטסטרים שמוצאים לי בהם תקלות) אשמח אם תוכלו לעזור לי למצוא כי אני כבר 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 נערך 2014 ביוני 1611 שנים על-ידי DeGod
פורסם 2014 ביוני 1611 שנים מחבר לגבי compare אז קודם כל גם שם אין צןרך להעתיק את הרשימותחוץ מזה לא נתת את הקוד של השיטה conditionsCompareחוץ מזה אין בשיטה התיחסות לvalue כלומר לעובדה שתא אחד יכול ליצג מספר אותיות זהות נערך 2014 ביוני 1611 שנים על-ידי DeGod
פורסם 2014 ביוני 1611 שנים מחבר טוב, הקוד שלך מבולגן למדי ויש שם עוד כמה טעויותלמשל אתה לא יכול לשאול s==""אתה צריך להשתמש בequalsחוץ מזה אתה עושה לוגיקה של בנית רשימה והוספת איבר לרשימה בכמה שיטות (הבנאי שמקבל CharNode הבנאי שמקבל StringList הבנאי שמקבל String) למה כל פעם לחזור על אותו לוגיקה?אולי פשוט תעשה שיטה add שתקבל CharNode ותשתמש בה בכל מקום שצריך?לגבי compareToמה שאתה עושה זה מדלג על כל הנודים שזהים (השיטה conditionsCompare בעצם בודקת שוויון בין שני CharNode למה לא לקרוא לה בשם מתאים?) ואז כשגילית זוג נודים שאינו שווה אז אתה משווה את הdata אבל מתעלם מזה שהvalue יכול להיות מה שאינו שווה (גם value זה שם מטעה. היו צריכים לקרוא לזה count)בשלושת המקרים שנתת זה מה שקורה בעצםלמה מתעלם מהVALUE הקונדישן קומפר בודק גם את הVALUE של כל אחד מהם...
פורסם 2014 ביוני 1611 שנים מחבר כן אבל אחרי שאתה יוצא מהלולאה של קונדישן קומפר אתה משווה רק את dataתודה מבין עכשיו... יש מצב שתנסה לעזור לי לרשום את זה משומה כשאני רושם את זה זה פשוט מראה כאילו יש יותר שגיאות? אולי משהו שאני לא שם לב?רציתי להוסיף if( firstCopy.getValue() > strCopy.getValue()) return 1משהו בסגנון הזה ו-1- אם זה הפוך.... ?
פורסם 2014 ביוני 1611 שנים מחבר אתה לא הבנת עד הסוף. אין צורך להשוות את הערכים של value. הרי זה מבטא מופעים של אותיות.לדוגמא במקרה הזה("aabbc", "aabbbc")המחרוזות נבדלות באות החמישית. אתה צריך להשוות את המופע השלישי של האות B במחרוזת השניה עם האות C במחרוזת הראשונה. האות C נמצאת בכלל ב CharNode אחרהבנת?חשבתי על שיטה לסדר את זה שפתרה לי את רוב הבעיות אבל עדין נשארו לי כמה אשמח אם תתקן אותיhttp://pastebin.com/Et26megLעכשיו נשארה לי בעיה עם aabbc_aabbbc אין לי מושג מה עכשיו אני מפספס אשמח לשמוע את דעתך...
פורסם 2014 ביוני 1611 שנים מחבר שני דברים1) קודם כל, כשאתה עושה שיטה כמו listSum שעובדת על המשתנים הפרטיים של המחלקה, עדיף שהיא תעבוד על המשתנים הפרטיים של this במקום לקבל אותו כפרמטרככה תוכל לעשות int firstCheck =listSum();int secondCheck=str.listSum();זה הרבה יותר נכון מבחינת פרדיגמת תכנות מונחה עצמים2) השיטה החדשה שלך היא לא לענין. אתה משוה אורכים של שתי הרשימות אבל זה לא בדיקה לקסיקוגראפית (אתה יודע מה זה?)לקסיקוגראפית זה לפי הא,ב עד כמה שאני יודע המספרים מסודרים לפי הABC גם בערכם המספרי אני טועה?ואני לא משווה ערכים.. אני משווה את הערך הכולל של האותיות....עריכה:עכשיו הבנתי תעניין...- - - תגובה אוחדה: - - -חושב שסידרתי תבעיהhttp://pastebin.com/6WsMHGU9 נערך 2014 ביוני 1611 שנים על-ידי DeGod
פורסם 2014 ביוני 1711 שנים מחבר אוקי, קודם כל מצטער, לא ראיתי מקודם שאתה סוכם את 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 שאני מחזיר לעומת שלו
פורסם 2014 ביוני 1711 שנים מחבר קודם כל, מימשת toString ל StringList?- - - תגובה אוחדה: - - - מצאתי. השיטה מתחילה בזה public String toString(){ if (this._head ==null)//if its null then we return null return null; אולי פשוט תחזיר מחרוזת ריקה במקום null גם לא עובד למרות שתכלס אני חושב שזה לא עובר כי לפי מה שהוא רשם לא נוצר כלום... (זה לא טסטר שהמרצים הכינו זה בחור מהקורס שהוא די חכם הכין... אז יש מקום לטעויות אצלו בטסטר) מה דעתך? או שזה שגיאה שלי?
פורסם 2014 ביוני 1711 שנים מחבר זה לא ענין של טעות כמו שהוא החליט ש toString יחזיר מחרוזת ריקה אם StringList מאותחל ב null ככל הנראה זה מתאים למימוש שלו.מה אתה מחזיר במקרה כזה?toString)) המשדורג שלי מחזיר "" במקרה של NULL והבנאי של סטרינג במידה והוא NULL מכניס לHEAD גם את NULL
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.