Функция вычисления времени. Javascript
Уважаемые форумчане, прошу помощи. Необходимо написать Функцию для подсчета необходимого времени для преодоления переданного расстояния со средней скоростью (передаются через prompt). Учтите, что через каждые 4 часа дороги водителю необходимо делать перерыв на 1 час - именно эта часть - проблема Буду бесконечно признательна, если потратите время на объяснение решения. Заранее спасибо всем за помощь.
function countTime() {
let dist = +prompt('Введите расстояние (число)');
let avSpeed = +prompt('Введите среднюю скорость, с которой планируете двигаться (число)');
let time = dist / avSpeed;
let relax = 0;
if (dist <= 300 && avSpeed <= 100 // или, как вариант, time <= 4) {
document.write(`На преодоление расстояния ${dist} километров со скоростью ${avSpeed} км/ч вам потребуется ${time} ч. Отдых не требуется`);
}else{
if (time % 5 = 0){
relax++
}
}
}
Ответы (1 шт):
Давайте разбирать.
let distance = prompt("Введите расстояние");
let speed = prompt("Введите среднюю скорость");
let timeInWay = distance/speed;
let timeInRest = (timeInWay%4 == 0)? (timeInWay/4 | 0) - 1: timeInWay/4| 0;
let timeTotal = distance/speed + timeInRest;
alert(`Общее время в пути Время в пути = ${timeTotal} часов`);
Как я понял проблема в вычислении времени на отдыхе, так ка время в пути не составляет проблем.
я так понимаю
каждые 4 часа дороги водителю необходимо делать перерыв на 1 час - это касается только если по истечении 4 часов нужно продолжать движение иначе этот час не добавляется.
Пример 1.
Расстояние - 15 км
Скорость - 4 км/ч
Время в пути - 3.75
Пример 2.
Расстояние - 16 км
Скорость - 4 км/ч
Время в пути - 4
Пример 3.
Расстояние - 17 км
Скорость - 4 км/ч
Время в пути - 5.25 - поскольку после часового привала
водитель должен ещё проехать один километр
4 часа + 1 час отдых + 0.25 час итого 5.25
всё вычисляется по формуле
let timeInRest = (timeInWay%4) == 0? (timeInWay/4 | 0) - 1: timeInWay/4| 0;
Если время в пути кратно 4, топоследний привал делать нет необходимости, т.е это (timeInWay/4 | 0) - 1.