תרגיל 1
עקבי אחר הפונקציה הבאה עבור הקריאה: Secret1(4)
public static int Secret1(int n)
{
if (n == 0)
return 0;
return n + Secret1(n - 1);
}- מהו ערך ה־n בכל קריאה?
- מהו תנאי העצירה?
- מהו הערך המוחזר הסופי?
תרגיל 2
עקבי אחר הפונקציה הבאה עבור הקריאה: Secret2("H-E-L-L-O")
public static void Secret2(string s)
{
if (s.Length == 0)
return;
Console.Write(s[s.Length - 1]);
Secret2(s.Substring(0, s.Length - 1));
}נקודה למחשבה: שימי לב מתי מתבצעת הדפסת התו - לפני או אחרי הקריאה הרקורסיבית?
מה יהיה הפלט שיוצג על המסך בסיום?
תרגיל 3
נתון המערך: int[] numbers = {2, 4, 6};
עקבי אחר הפונקציה עבור הקריאה: Secret3(numbers, 0)
public static int Secret3(int[] arr, int i)
{
if (i == arr.Length)
return 1;
return arr[i] * Secret3(arr, i + 1);
}- רשמי את "שרשרת" המכפלות שנוצרת.
- מה קורה כאשר האינדקס i מגיע לאורך המערך?
תרגיל 4
הקריאה: Secret4(123)
public static int Secret4(int n)
{
if (n < 10)
return 1;
return 1 + Secret4(n / 10);
}מה הפעולה הזו "סופרת" בפועל לגבי המספר n?
תרגיל 5
עקבי אחר הפונקציה הבאה עבור הקריאה: Secret5(2, 5)
public static int Secret5(int baseNum, int exp)
{
if (exp == 0)
return 1;
return baseNum * Secret5(baseNum, exp - 1);
}- כמה קריאות פונקציה יתבצעו בסך הכל?
- מהו ערך ההחזרה עבור הקריאה הנ"ל?
תרגיל 6
עקבי אחר הפונקציה הבאה עבור הקריאה: Secret6(3)
public static void Secret6(int n)
{
if (n <= 0) return;
Console.Write(n);
Secret6(n - 1);
Console.Write(n);
}שימי לב: יש כאן הדפסה גם לפני וגם אחרי הקריאה הרקורסיבית.
מה יהיה הפלט המדויק על המסך?
דף תרגול זה נוצר לשימוש לימודי | בהצלחה!