אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 2021 · אביב מועד א · שאלה 11כל שאלות המבחן ←
אלגוריתמים בסיסייםרקורסיה

public static void One(int[] a, int start, int stop)
{
    if(start < stop)
    {
      One(a, start+1, stop);
      a[start] = a[start] + a[start+1];
    }
}
public static void Two(int[] a, int start, int stop)
{
    if(start < stop)
    {
      a[start] = a[start] + a[start+1];
      Two(a, start+1, stop);
    }
}
סעיף א-1

לפניך הפעולה one המקבלת מערך של מספרים שלמים, ושני מספרים נוספים:

public static void one(int[] a, int start, int stop)
{
    if(start < stop)
    {
      one(a, start+1, stop);
      a[start] = a[start] + a[start+1];
    }
}

עקוב אחר זימון one(b, 0, b.length-1) עבור המערך:

אינדקס012345
b3020163510

וציין מה יהיה תוכן איברי המערך בסיום ביצוע הפעולה.

סעיף א-2

מהי מטרת הפעולה one? בתשובה יש להתייחס למערך שהפעולה מקבלת כפרמטר.

סעיף ב-1

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

public static void two(int[] a, int start, int stop)
{
    if(start < stop)
    {
      a[start] = a[start] + a[start+1];
      two(a, start+1, stop);
    }
}

אחרי זימון two(c, 0, c.length-1) תוכן מערך c הוא:

אינדקס012345
c10152012810

מה היה תוכן c לפני ביצוע הזימון?

סעיף ב-2

מהי מטרת הפעולה two? בתשובה יש להתייחס למערך שהפעולה מקבלת כפרמטר.

שאלות ותגובות על השאלה

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

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

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