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

במערכת "SmartHome" כל מכשיר מקבל מזהה ייחודי (string) המורכב משם החדר, התו נקודתיים (":") ושם מכשיר.

לדוגמה: "KITCHEN:LIGHT", "ROOM_2:TV", "MICROWAVE:KITCHEN".

סעיף א

כתבו פעולה המקבלת מחרוזת המייצגת מזהה מכשיר. הפעולה תבדוק אם המזהה תקין. אם כן – הפעולה תחזיר true, ואם לא – הפעולה תחזיר false. מזהה תקין הוא מחרוזת שמתקיימים בה שני תנאים:

  • היא מכילה בדיוק פעם אחת את התו נקודתיים (":");
  • התו נקודתיים אינו מופיע בתחילת המחרוזת ואינו מופיע בסופה.

כותרת הפעולה: public static bool IsValidDevice(string deviceId)

סעיף ב

כדי לייעל את צריכת החשמל, על המערכת לדעת אם שני מכשירים נמצאים באותו החדר. כתבו פעולה המקבלת שתי מחרוזות dev1 ו-dev2 המייצגות מזהי מכשירים. הפעולה תבדוק אם שני המכשירים נמצאים באותו החדר. אם כן – הפעולה תחזיר true, ואם לא – הפעולה תחזיר false. כותרת הפעולה: public static bool AreInSameRoom(string dev1, string dev2) אפשר להניח שהמזהים תקינים.

סעיף ג

כתבו פעולה המקבלת מערך של מחרוזות allDevices ומחרוזת נוספת roomName. הפעולה תחזיר מערך חדש המכיל רק את שמות המכשירים הנמצאים בחדר roomName. כותרת הפעולה:

public static string[] GetDevicesInRoom(string[] allDevices,
    string roomName)

לדוגמה: עבור החדר roomName = "KITCHEN" ומערך המכשירים allDevices הבא allDevices = {"KITCHEN:LIGHT", "ROOM_2:TV", "KITCHEN:MICROWAVE"} הפעולה תחזיר מערך חדש {"LIGHT", "MICROWAVE"}. אם לא נמצאו מכשירים בחדר המבוקש, הפעולה תחזיר מערך ריק, כלומר מערך באורך 0.

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

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

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

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