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

נתונות הפעולות what, why ו-whyHelp:

public static boolean what(String s, char c, int k)
{
    if(k == 0 && s.length()==0) return true;
    if(s.length() == 0) return false;
    if(k < 0 ) return false;
    if(s.charAt(0)== c) return what(s.substring(1),c, k-1);
    return what(s.substring(1),c, k);
}
public static boolean why(char[] arr, String s)
{
    return whyHelp(arr, s, 0);
}
public static boolean whyHelp(char[] arr, String s, int k)
{
    if(k == arr.length) return true;
    if(!what(s, arr[k], k+1)) return false;
    return whyHelp(arr, s, k+1);
}
סעיף א

עקבו אחרי זימון what("HELLO",'L',3) ורשמו את תוצאת הזימון. יש להראות מעקב.

סעיף ב

תנו דוגמה למחרוזת s באורך חמישה תווים לפחות שעבורה זימון what(s,'T',2) יחזיר ערך true.

סעיף ג

מה מבצעת הפעולה what(String s, char c, int k) באופן כללי?

סעיף ד

נתונים מערך תווים

char[] arr = {'H','E','L','P'};

ומחרוזת

String s = "APHEEKLPPLVLZTP";

עקבו אחרי הזימון why(arr, s) ורשמו את תוצאות הזימון.

סעיף ה

תנו דוגמה למחרוזת הקצרה ביותר str שעבורה זימון הפעולה why(arr, str) יחזיר ערך true.

סעיף ו

מה מבצעת הפעולה why(arr, s) באופן כללי?

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

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

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

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