Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Очередная логическая задача (В ЧАСТИ, КАСАЮЩЕЙСЯ ИМЕННО JS)! (https://javascript.ru/forum/misc/76246-ocherednaya-logicheskaya-zadacha-v-chasti-kasayushhejjsya-imenno-js.html)

garrip91 17.12.2018 16:36

Очередная логическая задача (В ЧАСТИ, КАСАЮЩЕЙСЯ ИМЕННО JS)!
 
Здравствуйте в очередной раз, уважаемые пользователи сего сайта!!!

Существует некая "HTML Академия"(https://htmlacademy.ru/), где в целях самообучения можно выполнять задания различных уровней сложности.

Решал я, значит, все эти задачи (именно ЗАДАЧИ, так как у меня просто язык не повернётся назвать это задачКами в связи с уровнем сложности) и наткнулся на очередное произведение творчества автора (вот прямая ссылка: https://htmlacademy.ru/courses/209/run/17 ).

По условию задания ТИПА заказчик (это на самом деле бот) тестирует мою программу, подставляя разные значения во входные переменные и получая полученные рекомендации, и только когда все тесты пройдут успешно, задание будет выполнено!

У меня вот что получилось в этой задаче и, как я полагаю, мне вроде удалось её решить:

===============================================
var temperature = 20;
var isRaining = true;
var minutes = 0;

if (isRaining) {
minutes = 0;
}
else if (!isRaining) {
if (temperature >= 10 || temperature < 15) {
minutes = 30;
}
else if (temperature >= 15 || temperature < 25) {
minutes = 40;
}
else if (temperature >= 25 || temperature < 35) {
minutes = 20;
}
}
else {
minutes = 0;
}

console.log (minutes);

/* Техническое задание

Мяу! Длительность прогулки зависит от нескольких условий.

Если идёт дождь, гулять я не хожу. В этом случае длительность прогулки равняется 0. А вот если дождя нет, всё зависит от температуры на улице:

Во-первых, если температура от 10°C (включительно) до 15°C (не включая это значение), я гуляю 30 минут.

Во-вторых, если температура от 15°C (включительно) до 25°C (не включая значение), я гуляю 40 минут.

В-третьих, при температуре от 25°C (включительно) до 35°C (включительно), я гуляю 20 минут.

В остальных случаях я никуда не выхожу: либо очень холодно, либо очень жарко.

Результат программы – время прогулки. Его необходимо записать в переменную minutes.

*/
===============================================


Но не тут-то было... Оказывается, вот что мне этот ёбаный бот выдал при проверке результата:



===============================================
===============================================


Сообщение от Бота в виде кота/кошки (далее - CAT):
------------------------------------------------------------------------------------
"Первый тест. Идёт дождь, температура — 15. Ожидаю время прогулки 0"
------------------------------------------------------------------------------------

Сообщение от некоего "LOG"(тоже, видимо, Бота; далее - LOG):
------------------------------------------------------------------------------------
"0 (number)"
------------------------------------------------------------------------------------

Сообщение от некоего "OK"(тоже, видимо, Бота, далее - OK):
------------------------------------------------------------------------------------
"Ваше значение minutes равное 0 совпадает с ожидаемым значением."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Второй тест. Дождя нет, температура — 40. Ожидаю время прогулки 0"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

Сообщение от некоего "FAIL"(тоже, видимо, Бота; далее - FAIL):
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 не совпадает с ожидаемым значением 0."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Третий тест. Дождя нет, температура — 15. Ожидаю время прогулки 40"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

FAIL:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 не совпадает с ожидаемым значением 40."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Четвёртый тест. Дождя нет, температура — 24. Ожидаю время прогулки 40"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

FAIL:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 не совпадает с ожидаемым значением 40."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Пятый тест. Дождя нет, температура — 25. Ожидаю время прогулки 20"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

FAIL:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 не совпадает с ожидаемым значением 20."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Шестой тест. Идёт дождь, температура — 27. Ожидаю время прогулки 0"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"0 (number)"
------------------------------------------------------------------------------------

OK:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 0 совпадает с ожидаемым значением."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Седьмой тест. Дождя нет, температура — 12. Ожидаю время прогулки 30"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

OK:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 совпадает с ожидаемым значением."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Восьмой тест. Дождя нет, температура — 27. Ожидаю время прогулки 20"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

FAIL:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 не совпадает с ожидаемым значением 20."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Девятый тест. Дождя нет, температура — 35. Ожидаю время прогулки 20"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

FAIL:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 не совпадает с ожидаемым значением 20."
------------------------------------------------------------------------------------

CAT:
------------------------------------------------------------------------------------
"Десятый тест. Дождя нет, температура — 5. Ожидаю время прогулки 0"
------------------------------------------------------------------------------------

LOG:
------------------------------------------------------------------------------------
"30 (number)"
------------------------------------------------------------------------------------

FAIL:
------------------------------------------------------------------------------------
"Ваше значение minutes равное 30 не совпадает с ожидаемым значением 0."
------------------------------------------------------------------------------------

Сообщение от некоего "ERR"(тоже, видимо, Бота):
------------------------------------------------------------------------------------
""Всего проверок: 10, пройдено: 3" (string)"
------------------------------------------------------------------------------------


================================================== ============================================



Вопрос: ЧТО Я ДЕЛАЮ НЕ ТАК???

Nexus 17.12.2018 16:46

А как в скрипт передаются данные?
Ну и условия у вас неправильные, нужно использовать логическое И, а не ИЛИ.

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

function getWalkDuration(raining, temperature) {
    if (raining)
        return 0;

    if (temperature >= 10 && temperature < 15)
        return 30;
    else if (temperature >= 15 && temperature < 25)
        return 40;
    else if (temperature >= 25 && temperature < 35)
        return 20;


    return 0;
}

alert(
	getWalkDuration(true,15)===0
);
alert(
	getWalkDuration(false,40)===0
);
alert(
	getWalkDuration(false,15)===40
);

MallSerg 17.12.2018 17:13

Цитата:

Сообщение от garrip91 (Сообщение 500702)
Вопрос: ЧТО Я ДЕЛАЮ НЕ ТАК???

Постишь рекламные ссылки требующие регистрации и подписки.

garrip91 18.12.2018 11:40

Цитата:

Сообщение от MallSerg (Сообщение 500704)
Постишь рекламные ссылки требующие регистрации и подписки.

Нет, это всего лишь ссылка на источник.
Я конечно и зарегистрировался и подписался, но, думаю, конкретно по этой ссылке можно и без регистраций и подписок перейти. Если нет, тогда фиг с ним (никого ни к чему не призываю и не обязываю!!!)

garrip91 18.12.2018 11:52

Цитата:

Сообщение от Nexus (Сообщение 500703)
А как в скрипт передаются данные?
Ну и условия у вас неправильные, нужно использовать логическое И, а не ИЛИ.

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

function getWalkDuration(raining, temperature) {
    if (raining)
        return 0;

    if (temperature >= 10 && temperature < 15)
        return 30;
    else if (temperature >= 15 && temperature < 25)
        return 40;
    else if (temperature >= 25 && temperature < 35)
        return 20;


    return 0;
}

alert(
	getWalkDuration(true,15)===0
);
alert(
	getWalkDuration(false,40)===0
);
alert(
	getWalkDuration(false,15)===40
);

Спасибо Вам большое, господин NEXUS! Вы мне очень помогли!!!
Я просто не въехал сразу, что в подобных случаях нужно применять оператор "И", а не "ИЛИ"......((


Часовой пояс GMT +3, время: 10:04.