![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| pavelnych |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Сразу извеняюсь за свой топик, но другого выбора у меня нет.
Мне нужен алгоритм. Я давно уже закончил учиться, поэтому спешу Вас успокоить – это задача не из учебного материала. Дело в том, что я совсем недавно устроился на работу Java программистом. В данный момент мы работаем над одним из проектов(а точнее - это моя часть в этом проекте), алгоритм к которому я и прошу Вас помочь мне написать – это мне очень поможет себя зарекомендовать на новом месте. Задача: Есть определённое количество лифтов в доме. Все они в буднии дни работают в рандомальном порядке. То есть, при нажатии на кнопку приезжает один из лифтов(какой именно, а точнее алгоритм может быть по моему личному желанию). Есть пентхаус – при вызове лифта с которого предпочтение отдаётся именно ему и при этом неважно был ли лифт вызван на одном из этажей. Есть ещё одно положение, при котором в пятницу, в определённое время один из лифтов переходит в режим работы, при котором в течении суток он ездиет по зданию, останавливаясь на каждом из этажей в независимости от такого был он вызван или нет. Всё. Для этого в принципе мне и нужен алгоритм. У меня уже есть наброски. Если у кого-то появится желание высказать свои идеи, то я буду очень, при очень рад. Хочу отметить, что задача выглядит очень тривиальной, но поверьте мне это совсем ни так Спасибо. |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
pavelnych
эти лифты -- реальные лифты, состояние которых будет получено с датчиков, или и лифты и прочее физическое окружение (вызов лифта, пассажир застрявший в дверях) будут частью программной модели? |
|||
|
||||
| pavelnych |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.5.2007 Репутация: нет Всего: нет |
Maksym,
Вот как раз одна из проблем, с которой я сталкнулся при разборе этой задачи это: 1.Как узнать состояние лифта? То есть механизма отслеживания нынешнего нахождения лифта у меня нет. Это одна из важнейших проблем. Мне почему-то показалось, что будет очень каряво создать данного рода механизм. Единственное, что я точно знаю - это то, что будет currentFloor - этаж на котором было произведённо нажатие на кнопку и destinationFloor - этаж на который в данный момент направляется лифт. И уже в зависимости от направления лифтра в данный момент и этажа, где была нажата кнопка будет принято решение какой из лифтов возьмётся за это задание. Пассажир застрявший в дверях как-бы не рассматривался, но это как мне кажется не сильно будет мешать работе, так как алгоритм будет предусматривать выброс exception, например в том случае, если все лифты скажем застряли или не могут по каким-то техническим причинам добраться до нужного этажа. То есть nextId у всех лифтом не будет меняться после прошествия определённого времени, которое можно скажем задать для прохождения каждого этажа. |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Действительно, задача выглядит довольно тривиальной.
По поводу состояния лифта - а почему бы не хранить последний этаж, на который он приехал? Что такое nextId? Ты бы уж рассказал, что да как ты решил организовать в своём коде, а то упоминаешь что-то из того, что уже решил делать. Но мы ведь не телепаты и не в курсе, что ты уже "напридумывал". P.S. Хотя, я, в принципе, до сих пор не вижу сложностей... -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
pavelnych
Не понимаю в чем проблема. Сдеалай класс-поток, который будет эмулировать лифт, класс системы управления лифтами, засинхронизированный класс интерфейса из взаимодействия (эмулирует датчики состояния и контролеры управления лифтами). И запускаешь сколько хочешь экземпляров лифтов, передавая им ссылку на из экземпляр датчиков и контроллеров. Система управления должна иметь доступ ко всему списку датчиков и контроллеров, считывая с них состояния всех лифтов и отдавая команды согласно описанной тобой логике. Для пущей интересности можно вставить в лифт, помимо генерации вызовов на этажи, герерацию разных внештатных ситуаций типа "лифт застрял, лифт долго держат на этаже, лифт остановлен пассажиром и т.п." |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Модератор: Название темы должно отражать ее суть!
Можно ведь было описать в двух словах!! |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |