Little Smalltalk , צריך לממש CLASS ...שאלה פשוטה אבל לא מכיר LST - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

Little Smalltalk , צריך לממש CLASS ...שאלה פשוטה אבל לא מכיר LST


see4

Recommended Posts

יש לי שאלה בנושא LST , צריך לממש מחלקה שתתמוך בפעולות הבאות

תרגיל:

מוגדר באופן הבא: (nested counter) מונה מקונן

כל מונה, פרט לחיצוני ביותר, הוא בן של מונה אחר.

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

הינו אפס.

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

אם ערך של מונה משתנה, ערכי המונה של כל בניו (הישירים והעקיפים) מתאפסים

לערך ההתחלתי.

מונה זה משמש, למשל, לצורך מנייה של פרקים, תתי פרקים, טבלאות וכו' במסמכים.

מחלקה שמייצגת מונה. little smalltalk בתרגיל זה עליכם לממש ב

המחלקה תגיב להודעות הבאות:

parent: aParent

השמה של מונה אב למונה הנוכחי.

value

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

peep

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

printString

מחזירה את ערכו המקונן של המונה (ערכי כל אבותיו, החל מהקדום ביותר ועד למונה אליו

נשלחה ההודעה מופרדים ע"י נקודה)

printSons

מדפיסה את ערכי הבנים של המונה הנוכחי לפי סדר הכנסתם (משמאל לימין) מופרדים ע"י

פסיקים.

על מנת לתמוך באיפוס המונה עם השתנות ערך אחד מאבותיו הגדירו את משתני המחלקה

הבאים:

parent

לאב הישיר של המונה reference

lastParentGeneration

על האובייקט הנוכחי. הדור (גירסא) של האב הישיר בקריאה הקודמת ל peep או value

generation

הדור של המונה הנוכחי. מתעדכן בכל שינוי של המונה.

על מנת לתמוך בהדפסת בנים הגדירו את משתנה המחלקה הבא:

sons

אוסף בנים של המונה.

בדקו אם הדור של מונה האב השתנה מאז הקריאה האחרונה ואם ,peep או value בכל קריאה ל

כן אפסו את המונה.

למונה יכולים להיות כמה בנים.

המערכת אמורה לעבוד נכון לכל קלט.

.printSons רשימת הבנים תשמש רק לצורך מתודה

של ערכי המונה. (overflow) אין צורך לטפל בגלישה

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

זה מה שמימשנו עד כו ...

[attachment deleted by admin]

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...