Menu
Coddy logo textTech

סיכום – רשימה מותאמת אישית

חלק מהיחידה תכנות מונחה עצמים במסלול ה-C# של Coddy. שיעור 40 מתוך 70.

challenge icon

אתגר

קל

בואו נבנה מחלקה CustomList שמאגדת את כל התכונות המתקדמות מהפרק הזה — העמסת אופרטורים, אינדקסרים, דריסה של ToString() ומתודות הרחבה — כדי ליצור אוסף שנוח ואינטואיטיבי להשתמש בו.

תארגן את הקוד שלך בשלושה קבצים:

  • CustomList.cs: צור מחלקה CustomList במרחב השמות Collections, שעוטפת מערך של מספרים שלמים ומספקת דרכי גישה אינטואיטיביות. הרשימה שלך צריכה לכלול:
    • מערך פרטי של מספרים שלמים לאחסון פריטים, ומאפיין Count (עם setter פרטי) שעוקב אחר מספר הפריטים המאוחסנים
    • בנאי שמקבל קיבולת (מספר שלם) ומאתחל את המערך הפנימי לגודל זה
    • מתודה Add(int item) שמוסיפה פריט למיקום הזמין הבא (אם יש מקום)
    • אינדקסר this[int index] שמאפשר לקבל פריטים לפי מיקומם ולעדכן אותם
    • העמסת אופרטור + שמאחדת שתי רשימות CustomLists לרשימה חדשה שמכילה את כל הפריטים משתיהן (הקיבולת של הרשימה החדשה צריכה להיות סכום מספר הפריטים בשתי הרשימות)
    • מתודת ToString() דרוסה שמחזירה את הפריטים בפורמט [item1, item2, item3] — יש לכלול רק פריטים עד Count, ולא משבצות ריקות
  • ListExtensions.cs: צור מחלקה סטטית ListExtensions במרחב השמות Collections, ובה מתודת הרחבה עבור ה-CustomList שלך:
    • Sum() — מחזירה את סכום כל הפריטים ברשימה (עד Count)
  • Program.cs: בקובץ הראשי שלך, צור שתי רשימות CustomList, הוסף פריטים לכל אחת, ולאחר מכן הדגם כיצד כל התכונות פועלות יחד — השתמש באינדקסר כדי לגשת לפריטים, אחד רשימות באמצעות האופרטור +, הדפס באמצעות ToString() וחשב את הסכום באמצעות מתודת ההרחבה שלך.

תקבל שש קלטים:

  • שלושה מספרים שלמים להוספה לרשימה הראשונה
  • שלושה מספרים שלמים להוספה לרשימה השנייה

צור את הרשימה הראשונה בקיבולת 5 ואת השנייה בקיבולת 3. הוסף את שלושת ערכי הקלט לרשימה המתאימה.

הדפס את הפלט בפורמט הבא:

List 1: {ToString()}
List 2: {ToString()}
List 1[0]: {first item}
Combined: {ToString() of combined list}
Combined sum: {Sum()}

לדוגמה, אם הקלטים הם 10, 20, 30, 5, 15 ו-25, הפלט צריך להיות:

List 1: [10, 20, 30]
List 2: [5, 15, 25]
List 1[0]: 10
Combined: [10, 20, 30, 5, 15, 25]
Combined sum: 105

שים לב איך כל החלקים פועלים יחד — האינדקסר מאפשר גישה בדומה למערך, האופרטור + מאפשר לאחד רשימות באופן טבעי, ToString() מספק פלט קריא, ומתודת ההרחבה מוסיפה פונקציונליות שימושית. כך מרגישות מחלקות שמתוכננות היטב!

נסו בעצמכם

using System;
using Collections;

class Program
{
    public static void Main(string[] args)
    {
        // קרא שישה מספרים שלמים
        int a1 = Convert.ToInt32(Console.ReadLine());
        int a2 = Convert.ToInt32(Console.ReadLine());
        int a3 = Convert.ToInt32(Console.ReadLine());
        int b1 = Convert.ToInt32(Console.ReadLine());
        int b2 = Convert.ToInt32(Console.ReadLine());
        int b3 = Convert.ToInt32(Console.ReadLine());

        // TODO: צור CustomList ראשון בקיבולת 5
        // TODO: הוסף את a1, a2, a3 לרשימה הראשונה

        // TODO: צור CustomList שני בקיבולת 3
        // TODO: הוסף את b1, b2, b3 לרשימה השנייה

        // TODO: הדפס את List 1 באמצעות ToString()
        // TODO: הדפס את List 2 באמצעות ToString()
        // TODO: הדפס את List 1[0] באמצעות האינדקסר
        // TODO: שלב את הרשימות באמצעות האופרטור + והדפס את התוצאה
        // TODO: הדפס את סכום הרשימה המשולבת באמצעות מתודת ההרחבה Sum()
    }
}

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

תרגלו בעצמכם: קומפיילר C# אונליין