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

סעיף א

נתונה מחרוזת s="aMrAdDYrM". עקבו בעזרת טבלת המעקב אחרי זימון הפעולה why(s) ורשמו מהי תוצאת הזימון.

public static boolean why(String s)
{
    while(s.length() > 1)
    {
        if(s.charAt(0)<'A' || s.charAt(0)>'Z')
        {
            s = s.substring(1);
        }
        else
        if(s.charAt(s.length()-1)<'A' || s.charAt(s.length()-1)>'Z')
        {
            s = s.substring(0,s.length()-1);
        }
        else
        {
            if(s.charAt(0)!=s.charAt(s.length()-1)) return false;
            s = s.substring(1, s.length()-1);
        }
    }
    return true;
}
סעיף ב

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

public static boolean what(String s)
{
    while(s.length() > 1)
    {
        if(s.charAt(0) != s.charAt(s.length()-1)) return false;
        s = s.substring(1, s.length()-1);
    }
    return true;
}

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

סעיף ג

נתונה הפעולה where הבאה. הפעולה משתמשת בפעולה what:

public static boolean where(String s)
{
    String str = "";
    for(int i = 0; i < s.length(); i++)
        if(s.charAt(i)>='A' && s.charAt(i)<='Z') str += s.charAt(i);
    return what(str);
}

האם הפעולה where שקולה (מבצעת בדיוק אותו הדבר) לפעולה why? אם כן, הסבירו מה מבצעות שתי הפעולות באופן כללי, ולא – תנו דוגמה של מחרוזת s שעבורה תוצאות הזימונים why(s) ו-where(s) יהיו שונות.

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

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

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

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