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

סעיף א

נתונה הפעולה Why הבאה:

public static int Why(int[] a, int x, int k){
    for(int i = k; i < a.Length; i++)
        if(a[i] == x)
            return i;
    return -1;
}
  1. תנו דוגמה של מערך מספרים שלמים arr שעבורו זימון הפעולה Why(arr, 5, 3) יחזיר ערך 5 וזימון הפעולה Why(arr, 3, 5) יחזיר ערך (-1).
  2. מה מבצעת הפעולה Why באופן כללי?
סעיף ב

נתונה הפעולה Where הבאה:

public static bool Where(int[] a, int[] b) {
    int k = -1;
    for(int i = 0; i < b.Length; i++)
    {
        k = Why(a, b[i], k+1);
        if(k == -1)
            return false;
    }
    return true;
}

נתונים שני המערכים הבאים:

int[] a = {2,4,9,0,2,3};
int[] b = {2,4,0,9,3};

מהי תוצאת הזימון Where(a, b)? יש להראות מעקב אחרי ביצוע הפעולה. אין צורך במעקב אחרי הפעולה Why.

סעיף ג

נתונה הפעולה What הבאה:

public static bool What(int[] a, int[] b) {
    int i = 0, j = 0;
    while(i < a.Length && j < b.Length)
    {
        if(a[i] == b[j])
        {
            i++;
            j++;
        }
        else
            i++;
    }
    return j == b.Length;
}

האם הפעולה What שקולה (מבצעת בדיוק אותו הדבר) לפעולה Where? אם כן – הסבירו מה מבצעות שתי הפעולות באופן כללי, ולא – תנו דוגמה של שני המערכים a ו-b שעבורם תוצאות הזימונים What(a,b) ו-Where(a,b) יהיו שונות.

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

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

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

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