אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 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 boolean 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 boolean 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) יהיו שונות.

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

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

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

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