נתונה השרשרת הבאה (ch1, מהראש לסוף):
10, 12, 5, 3, 6, 1, 4
נתונות שתי הפעולות הרקורסיביות הבאות:
public static int Zero(Node<int> ch){
if(ch == null) return 0;
return 1 + Zero(ch.GetNext());
}
public static Node<int> One(Node<int> ch, int n){
if(ch == null) return null;
if(n == 1) return ch;
return One(ch.GetNext(), n-1);
}
(א)מה יהיה הפלט של הפקודה הבאה?
```
Console.WriteLine(Zero(ch1));
```
מה מבצעת הפעולה Zero?
```
Console.WriteLine(Zero(ch1));
```
מה מבצעת הפעולה Zero?
(ב)מה יהיה הפלט של הפקודה הבאה?
```
Console.WriteLine(One(ch1, 3));
```
מה מבצעת הפעולה One עבור ערך n שלם? יש להתייחס לאפשרויות שונות.
```
Console.WriteLine(One(ch1, 3));
```
מה מבצעת הפעולה One עבור ערך n שלם? יש להתייחס לאפשרויות שונות.
(ג)נתונה הפעולה הרקורסיבית Two הבאה:
```csharp
public static void Two(Node<int> ch, int n, int m){
if(n < m)
{
Node<int> p1 = One(ch, n);
Node<int> p2 = One(ch, m);
int temp = p1.GetValue();
p1.SetValue(p2.GetValue());
p2.SetValue(temp);
Two(ch, n+1, m-1);
}
}
```
עקבו אחרי זימון הפעולה `Two(ch1, 2, 6)` ורשמו איך תיראה השרשרת אחרי ביצוע הפעולה?
יש להראות מעקב אחרי ביצוע הפעולה.
```csharp
public static void Two(Node<int> ch, int n, int m){
if(n < m)
{
Node<int> p1 = One(ch, n);
Node<int> p2 = One(ch, m);
int temp = p1.GetValue();
p1.SetValue(p2.GetValue());
p2.SetValue(temp);
Two(ch, n+1, m-1);
}
}
```
עקבו אחרי זימון הפעולה `Two(ch1, 2, 6)` ורשמו איך תיראה השרשרת אחרי ביצוע הפעולה?
יש להראות מעקב אחרי ביצוע הפעולה.
(ד)מה מבצעת הפעולה באופן כללי?
(ה)נתונה השרשרת הבאה (ch2, מהראש לסוף):
`1, 2, 3, 4, 5, 6, 7, 8, 9, 10`
איך תיראה השרשרת לאחר ביצוע קטע הקוד הבא:
```csharp
int s = Zero(ch2);
for(int i = 1; i <= s/2; i++)
{
Two(ch2, i, s - i + 1);
}
```
`1, 2, 3, 4, 5, 6, 7, 8, 9, 10`
איך תיראה השרשרת לאחר ביצוע קטע הקוד הבא:
```csharp
int s = Zero(ch2);
for(int i = 1; i <= s/2; i++)
{
Two(ch2, i, s - i + 1);
}
```
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות