Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2011, 10:33   #1
naumann
Новичок
Джуниор
 
Регистрация: 21.12.2011
Сообщений: 2
По умолчанию Нужен опытный совет...

Это требование предъявляемые к программе...я не прошу делать за меня... просто подскажите опытным советом, в какую сторону думать ... Заранее большое спасибо=)

Приложение моделирует спринтерский заезд двух автомобилей... на 402 метра, каждую секунду в консоль нужно выводить:
- Имя водителя;
- Текущую скорость;
- Пройденное расстояние;
Автомобили стартуют одновременно... по достижению финиша автомобиль останавливается, когда оба авто пересекают финиш... выводиться итоговое время и занятое место ... Программа моделирует несколько заездов разных авто...

Последний раз редактировалось naumann; 21.12.2011 в 13:38.
naumann вне форума Ответить с цитированием
Старый 21.12.2011, 21:14   #2
sashonk
Форумчанин
 
Регистрация: 26.10.2009
Сообщений: 170
По умолчанию

возьмите уравнения кинематического движения в дифф. форме:
dv = a*dt
dx = v*dt

где a - ускорение, v - скорость, t - время, x - путь.

напишите цикл, в котором будете увеличивать время на некоторую малую величину, а в нем расчитывайте вышеупомянутые уравнения. на каждой итерации выводите расчитанные величины.
для ускорения можно задать зависимость, такую, чтобы сначала автомобиль разгонялся до какой-то скорости, и потом ехал равномерно. для разных автомобилей по разному параметризуйте уравнение.

можно, конечно, заморочиться с мощностью двигателя, коэффициентами сопротивления и трения, но, думаю , это в данном случае излишне
sashonk вне форума Ответить с цитированием
Старый 25.12.2011, 18:53   #3
naumann
Новичок
Джуниор
 
Регистрация: 21.12.2011
Сообщений: 2
По умолчанию

.. Спасибо за ответ, но еще вопрос если позволите...
Пусть у меня есть коллекция машин-участниц ArrayList<Car> cars; Нужно задать последовательность заездов всех элементов(машин) этой коллекции т.е. берем 0 и 1 элемент(1 и 2 машину из коллекции) они соревнуются между собой... потом возвращаемся в коллекцию берем 2 и 3 элемент(3 и 4 машину)... и т.д... как лучше пройти коллекцию?!
naumann вне форума Ответить с цитированием
Старый 26.12.2011, 18:12   #4
sashonk
Форумчанин
 
Регистрация: 26.10.2009
Сообщений: 170
По умолчанию

создайте класс CarHandler и итерируйте по коллекции элементов-наследников CarHandler
Код:
abstract class CarHandler{
  puplic abstract void calcAccel(double t);   // переопределяете в наследнике и 
задаете свою формулу. вызываете в цикле

  public void handle(double t, double dt){        // вызываете в цикле для расчета v, x 
       ...  // вышеупомянутые уравнения

}

  // сюда еще добавить сеттеры и геттеры для скорости, ускорения, пути

  private double a, v, x;
}

Последний раз редактировалось sashonk; 26.12.2011 в 18:18. Причина: long -> double
sashonk вне форума Ответить с цитированием
Старый 26.12.2011, 18:18   #5
sashonk
Форумчанин
 
Регистрация: 26.10.2009
Сообщений: 170
По умолчанию

вот пример:
class VAZHandler extends CarHandler{
public void calcAccel(double t){
a = 0; // без ускорения
}


}
sashonk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НУЖЕН UI/UX. - Web / Graphic Designer -опытный!! FreeLance HR.Minsk Фриланс 2 17.06.2011 22:33
Нужен совет, просто совет kardinal94 Общие вопросы Delphi 7 16.12.2010 22:16
Нужен опытный C++ программист. www3 Фриланс 5 09.11.2009 17:07