נתונות שלוש המחלקות הבאות:

public class One {
    protected int n1;
    public One ()
    {
        this.n1 = 1;
    }
    public One (int val)
    {
        this.n1 = val;
    }
    public virtual void Update(int k)
    {
        this.n1 = this.n1 * k;
    }
    public override string ToString()
    {
        return "One: n1=" + this.n1;
    }
}

public class Two : One {
    protected int n2;
     public Two(int val):base()
     {
         this.n2 = val;
     }
     public Two (int val1,int val2):base(val1)
     {
         this.n2 = val2;
     }
     public override void Update(int k)
     {
         base.Update(k);
         this.n2 = this.n2 * k;
     }
     public override string ToString()
     {
         return base.ToString() + " Two: n2=" + this.n2;
     }
}
(א)נתונה גם המחלקה Test:

```csharp
public class Test {
public static void Main(string[] args){
One[] arr = new One [6];
arr [0] = new One (2);
arr [1] = new Two(4);
arr [2] = new Two(3, 6);
arr [3] = arr [0];
arr [4] = new Two(4);
arr [5] = arr[1];

for (int i = 0; i < arr.Length; i++)
Console.WriteLine(arr[i]);

(*) for(int i=0;i< arr.Length;i++)
arr [i].Update(i+3);

(**) for (int i = 0; i < arr.Length; i++)
Console.WriteLine (arr[i]);
}
}
```

עקבו אחרי ביצוע פעולה הראשית (Main) של המחלקה Test, ורשמו מה יהיה הפלט של הפעולה הראשית. חובה להציג עבור כל עצם שנוצר בפעולה את ערכי התכונות שלו.
(ב)שתי הלולאות (*) ו-(**) הוחלפו ללולאה הבאה:

```csharp
for(int i=0;i< arr.Length;i++) {
arr [i].Update(i+3);
Console.WriteLine(arr[i]);
}
```

האם פלט של הפעולה הראשית השתנה? הסבירו את תשובתכם.

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה בטיחות מוסמך עונה כאן — תקבלו מענה מקצועי

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←