לדעתי צריך ליצור משתנה בעל 8 bit ע''מ לעקוב לאיזה מהקומות עוד אנחנו רוצים להגיע..
כשלוחצים על קומה מוסימת, עושים פעולת or עם הרגיסטר 8bit שלנו וכל עוד הרגיסטר לא מאופס, ממשיכים להניע את המעלית עד למעלה ואז עד למטה (אפשר לממש לוגיקה אחרת, למשל קודם עד למטה ואז למעלה, תלוי מה הסדר פעולות בקוד).
מבנה נתונים מתאים מצריך את הדברים הבאים -
רגיסטר של 8 ביטים כמו שאמרנו
משתנה פשוט שמעיד באיזו קומה המעלית כרגע נמצאת
משתנה נוסף שמחזיק את STATE המעלית
לפני 7 שנים
ע"י: 1_אורח_כללי
שלום לכולם
מישהו היה לאחרונה בראיון ב אפל ??
המשרה הוא embedded engineer
תודה
לפני 7 שנים
ע"י: 1_אורח_כללי
שלום
האם למישהו יש פיתרון ?
איך ממשים אלגוריתם מעלית ובאיזה מבני נתונים להשתמש ?
תודה !
לפני 7 שנים
ע"י: 1_אורח_כללי
מצאת משהו לגבי המשרה?
לפני 8 שנים
ע"י: 1_אורח_כללי
הי,
הייתי בראיון ב APPLE לא מזמן לתפקיד FW Enigneer.
הנה שאלה ששאלו אותי שם.
אני לא עברתי. לא יודע אם אני מצטער על זה או לא...
נתון בניין בן שמונה קומות עם מעלית.
נתונות הפונקציות הבאות.
void EngineUp()
void EngineDown()
void EngineStop()
STATE EngineStateGet()
כאשר STATE הוא ה ENUM הבא
enum STATE{
UP=0,
DOWN,
STOP
};
int EngineGetCurrFloor()
ובנוסף ישנה עוד פסיקת חומרה שקוראת לפונקצייה הבאה בכל פעם שלוחצים על אחד הכפתורים במעלית
void EnignePressedFloor(int floor)
הפוקצייה מקבלת כפרמטר את הקומה שבה נלחץ כפתור המעלית
נתבקשתי לכתוב קוד שיממש אלגוריתם של המעלית?
הייתי צריך להתייחס למבנה הנתונים שבו אני אשתמש. לdesign הכללי של הקוד ולאחר מכן לכתוב את הקוד על דף.
כמו-כן הייתי צריך להתייחס לבעיות RT שיכולות לקרות, וכיצד ניתן לפתור אותם.
בהצלחה!!!