Ю2.20

Как успеть подешевле? Можно ехать на такси со скоростью [latex]v_{1}[/latex] км/ч и оплатой [latex]p_{1}[/latex] pуб/км либо идти пешком со скоростью [latex]v_{2}[/latex] км/ч бесплатно. Как с наименьшими затратами преодолеть путь [latex]s[/latex] за время [latex]t[/latex], если это возможно? Каковы эти затраты?

v1 v2 s t p1 Результат:
30 5 18 2 4 0
50.44 4 75.7 3 5.5 174.975969
62 5 800 5 7 No time
8 17 60 3 8 0

Код программы:

По условию задачи нужно выяснить, как с наименьшими затратами преодолеть путь [latex]s[/latex] за время [latex]t[/latex], если это возможно. Вводим переменные с типом данных “double”, так как переменные входят в множество действительных чисел. Необходимо рассмотреть несколько случаев.
Первый случай, когда можно успеть добраться пешком, то есть [latex]s/v_{2}<t[/latex], следовательно оплата равна [latex]0[/latex].
Второй случай, когда скорость пешком больше или равна скорости такси. Если при этом пешком успеть нельзя, тогда выводим «No time», если пешком успеем, то оплата равна 0.

Третий случай, когда можно часть пути проехать на такси, а остаток пройти пешком так, чтобы затраты были минимальными. Для этого надо формулу: [latex]s=v_{1} \cdot t_{1}+v_{2} \cdot t_{2}[/latex] преобразовать в вид: [latex]s=t_{1} \cdot v_{1}+t \cdot v_{2}-t_{1} \cdot v2[/latex] и выразить [latex]t_{1}[/latex], введя переменную [latex]T[/latex](минимальное время езды на такси).
[latex]T = (s-t \cdot v_{2}) / (v_{1}-v_{2})[/latex].
В результате получаем формулу:
[latex]p=(T \cdot v_{1}) \cdot p_{1}[/latex] и считаем [latex]p[/latex].
И наконец четвертый случай,  если невозможно успеть вовремя ни на такси, ни пешком.
Для проверки работы программы можно воспользоваться объектом.

 

Код программы на Java:

Ссылка на Java код.

Related Images: