| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Столкновение двух поездов |
| Автор: AndreySS 26.2.2010, 17:13 |
| Есть железная дорога она бесконечна. На ней есть 2 поезда, между ними стоит флаг "солнце". Поезд ничего не знает о другом и наоборот.Каждый поезд запускается в отдельном потоке. Есть такие операции: 1)Метка 2)goto 3) if("солнце") goto 4)ехать налево 5)ехать направо 6)стоп Надо написать функцию из вышеперечисленных операций испол-я кот. поезда б столкнулись.Помогите!!!!! |
| Автор: Akina 26.2.2010, 17:25 |
| И это все операции? мало. Независимо от длины программы она получится циклической. А если за время выполнения цикла флаг не встретится, то каждый следующий цикл будет повторять предыдущий либо в том диапазоне, либо с постоянным смещением, причём в одну и ту же сторону. Если флаг в другой стороне для обоих поездов - ничего не получится. Нужен либо какой-то счётчик, либо возможность самомодификации программы. |
| Автор: AndreySS 26.2.2010, 18:16 |
| Флаг находится между поездами.Решение точно есть. Если они поедут в одно и тоже направление кто-то из них встретит солнце, а как сказать чтоб другой развернулся т.к. солнце уже другой достиг и ехал в другом направлении не знаю! |
| Автор: Akina 26.2.2010, 18:23 | ||
Ааа. Ну тогда:
Тот, кто встретит флаг, догонит второго в задницу. |
| Автор: AndreySS 26.2.2010, 18:36 |
| Ага правильно!!!!только последний goto идет на метку 1.Спасибо большое!!!!! |
| Автор: Akina 26.2.2010, 18:49 |
| Автор: AndreySS 26.2.2010, 18:59 | ||
| С твоего решения один другого не догонит. Смотри они начнут двигаться вправо.Кто то встретит солнце и перейдет на метку два и будет двигаться вправо , а другой останется в середине метки 1 и тоже будет двигаться вправо. И как тот его в задницу дагонит? А если так:
Тот кто встретит солнце на один шаг вправо будет делать больше чем другой.И рано или поздно он его догонит в врежиться. |
| Автор: AndreySS 26.2.2010, 19:15 |
| Понятно |