סעיף א
נתונה הפעולה 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;
}
- תנו דוגמה של מערך מספרים שלמים arr שעבורו זימון הפעולה Why(arr, 5, 3) יחזיר ערך 5 וזימון הפעולה Why(arr, 3, 5) יחזיר ערך (-1).
- מה מבצעת הפעולה 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) יהיו שונות.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.