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

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

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

כותרת הפעולה:
`public static boolean isValidDevice(String deviceId)`
(ב)כדי לייעל את צריכת החשמל, על המערכת לדעת אם שני מכשירים נמצאים באותו החדר.
כתבו פעולה המקבלת שתי מחרוזות dev1 ו-dev2 המייצגות מזהי מכשירים. הפעולה תבדוק אם שני המכשירים נמצאים באותו החדר. אם כן – הפעולה תחזיר true, ואם לא – הפעולה תחזיר false.
כותרת הפעולה:
`public static boolean areInSameRoom(String dev1, String dev2)`
אפשר להניח שהמזהים תקינים.
(ג)כתבו פעולה המקבלת מערך של מחרוזות allDevices ומחרוזת נוספת roomName. הפעולה תחזיר מערך חדש המכיל רק את שמות המכשירים הנמצאים בחדר roomName.
כותרת הפעולה:
```java
public static String[] args getDevicesInRoom(String[] allDevices,
String roomName)
```

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

> ⚠️ כותרת הפעולה כפי שהודפסה במקור כוללת טוקן זר "args" בין סוג ההחזרה לשם הפעולה (`String[] args getDevicesInRoom(...)`) — הועתק verbatim, לא תוקן.

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←