פורסם 2007 בנובמבר 618 שנים יש לי שאלה בנושא LST , צריך לממש מחלקה שתתמוך בפעולות הבאות תרגיל:מוגדר באופן הבא: (nested counter) מונה מקונן כל מונה, פרט לחיצוני ביותר, הוא בן של מונה אחר. ערכו ההתחלתי של מונה החיצוני ביותר הינו אחד. ערכו ההתחלתי של כל מונה אחרהינו אפס. בכל פעם שמבקשים את ערכו של המונה, הערך הנוכחי גודל באחד ומוחזר. אם ערך של מונה משתנה, ערכי המונה של כל בניו (הישירים והעקיפים) מתאפסיםלערך ההתחלתי.מונה זה משמש, למשל, לצורך מנייה של פרקים, תתי פרקים, טבלאות וכו' במסמכים.מחלקה שמייצגת מונה. little smalltalk בתרגיל זה עליכם לממש בהמחלקה תגיב להודעות הבאות:parent: aParentהשמה של מונה אב למונה הנוכחי.valueמגדילה את ערכו הנוכחי של המונה באחד ומחזירה ערך זה.peepמחזירה את ערכו הנוכחי של המונה מבלי להגדיל ערך זה באחד.printStringמחזירה את ערכו המקונן של המונה (ערכי כל אבותיו, החל מהקדום ביותר ועד למונה אליונשלחה ההודעה מופרדים ע"י נקודה)printSonsמדפיסה את ערכי הבנים של המונה הנוכחי לפי סדר הכנסתם (משמאל לימין) מופרדים ע"יפסיקים.על מנת לתמוך באיפוס המונה עם השתנות ערך אחד מאבותיו הגדירו את משתני המחלקההבאים:parentלאב הישיר של המונה referencelastParentGenerationעל האובייקט הנוכחי. הדור (גירסא) של האב הישיר בקריאה הקודמת ל peep או value generationהדור של המונה הנוכחי. מתעדכן בכל שינוי של המונה.על מנת לתמוך בהדפסת בנים הגדירו את משתנה המחלקה הבא:sonsאוסף בנים של המונה.בדקו אם הדור של מונה האב השתנה מאז הקריאה האחרונה ואם ,peep או value בכל קריאה לכן אפסו את המונה. למונה יכולים להיות כמה בנים. המערכת אמורה לעבוד נכון לכל קלט..printSons רשימת הבנים תשמש רק לצורך מתודהשל ערכי המונה. (overflow) אין צורך לטפל בגלישה אפשר להניח שאין מעגלים בהיררכית מונים.זה מה שמימשנו עד כו ...[attachment deleted by admin]
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.