Первая программа: KeksoFit v0.1

Не получается решить задачу, помогите, пожалуйста.

Решение

var foodInGrams = 100;
var sleepInHours = 15;

foodInGrams = keks.ask(‘Эй, босс! Сколько грамм корма вы съели?’);
console.log(‘Босс съел ’ + foodInGrams + ’ грамм корма. Провожу расчет. Подождите…’);
var jumps = foodInGrams / 10 * 3;
console.log(‘Вам нужно сделать ’ + jumps + ’ прыжка(ов).’);

sleepInHours = keks.ask(‘Привет, босс! Сколько вы спали?’);
console.log(‘Босс спал ’ + sleepInHours + ’ часа(ов). Провожу расчет. Отдохните…’);
var pulls = sleepInHours * 2;
console.log(‘Готово, босс! Вам нужно подтянутся ’ + pulls + ’ раз(а).’);

var runs = (jumps + pulls) * 0.5;
console.log(‘Босс, разомните лапы! Вам нужно пробежать ’ + runs +’ круга(ов).’);

При проверке выдается такое:

Первый тест. Накануне я съел 80 грамм корма и проспал 10 часов. Ожидаю 24 прыжка, 20 подтягиваний и 34 круга по комнате.
Набирает Кекса… Гудки…
Мур-мяу?
Эй, босс! Сколько грамм корма вы съели?
69
"Босс съел 69 грамм корма. Провожу расчет. Подождите…" (string)
“Вам нужно сделать 20.700000000000003 прыжка(ов).” (string)
Набирает Кекса… Гудки…
Мур-мяу?
Привет, босс! Сколько вы спали?
10
"Босс спал 10 часа(ов). Провожу расчет. Отдохните…" (string)
“Готово, босс! Вам нужно подтянутся 20 раз(а).” (string)
“Босс, разомните лапы! Вам нужно пробежать 20.35 круга(ов).” (string)
jumps == 24
pulls == 20
runs == 34

Второй тест. Накануне я съел 60 грамм корма и проспал 12 часов. Ожидаю 18 прыжков, 24 подтягивания и 30 кругов по комнате.
Набирает Кекса… Гудки…
Мур-мяу?
Эй, босс! Сколько грамм корма вы съели?
80
"Босс съел 80 грамм корма. Провожу расчет. Подождите…" (string)
“Вам нужно сделать 24 прыжка(ов).” (string)
Набирает Кекса… Гудки…
Мур-мяу?
Привет, босс! Сколько вы спали?
76
"Босс спал 76 часа(ов). Провожу расчет. Отдохните…" (string)
“Готово, босс! Вам нужно подтянутся 152 раз(а).” (string)
“Босс, разомните лапы! Вам нужно пробежать 88 круга(ов).” (string)
jumps == 18
pulls == 24
runs == 30
"Всего проверок: 2, пройдено: 0" (string).

Привет! Может потому что переменные foodInGrams и sleepInHours объявлены 2 раза? Как я поняла , при тесте значение в них меняется.
У меня вот что получилось, по тесту прошло.
image


Только в моем случае как то странно, тест прошел, но выдает подтягиваний 2 , хотя должно быть 20. Не пойму в чем ошибка.

1 лайк

Большое спасибо за помощь :slight_smile:
Поиграюсь с вашим вариантом. Отпишусь с результатами.

В общем, у меня получилось вот так:

var foodInGrams = 100;
var sleepInHours = 15;
var jumps;
var pulls;
var runs;
console.log('Босс съел ' + foodInGrams + ' грамм корма.');
console.log('Босс спал ' + sleepInHours + ' час(ов).');
console.log('Провожу расчеты. Отдохните...');
console.log('Босс, вам мужно выполнить ' + (jumps = foodInGrams / 10 * 3) + ' прыжкa(ов).');
console.log('А также ' + (pulls = sleepInHours * 2) + ' подтягивания(ий).');
console.log('И разомните лапы! Вам нужно пробежать ' + (runs = jumps + (pulls * 0.5)) + ' круга(ов).');

NataN, спасибо за помощь! Без вас не разобрался бы, наверное :slight_smile:

Может быть кто-то еще поделится более лаконичным решением?

1 лайк

При выводе в консоль вы написали переменную pullsstep, а не рассчитанную pulls.

Ваш вариант красивый. Единственное, что формулы расчета из console.log() стоило бы убрать и выводить только саму рассчитанную переменную. А формулы лучше писать сразу, когда переменную объявляете. Так код смотрелся бы более универсально на мой взгляд.

Спасибо за совет!

Привет! Подскажите пожалуйста, почему не проходит тест:

var foodInGrams = 100;
var sleepInHours = 15;

foodInGrams = keks.ask('Сколько вы съели корма?');
var jumps = foodInGrams / 10 * 3;
var runs = jumps;
console.log('вы должны сделать ' + jumps + ' прыжков ' + 'и пробежать ' + runs + ' кругов');


sleepInHours = keks.ask('Сколько часов вы поспали?');
var pulls = sleepInHours * 2;
runs = pulls / 2;
console.log('вы должны сделать ' + pulls + ' подтягиваний и пробежать ' + runs + ' кругов');

Я разчитываю интересы заказчика (согласно консоли) - что же не нравится Великому Мурлычеству?

var foodInGrams = 100;
var sleepInHours = 15;

var jumps;
var jumps=foodInGrams*(3/10);
console.log(‘Босс съел грамм корма’ + foodInGrams + ‘отношение грамм корма к прыжкам’);
var pulls;
var pulls=sleepInHours*(2/1);
console.log(‘Босс проспал’ + sleepInHours+‘часов и’+’ отношение подтягиваний к часам сна’)
var runs;
var runs=jumps+(pulls*0,5);
console.log(‘Босс столько то пропрыгал и’+’ Подтянулся’);

Var пишется один раз при объявлении переменной. А у вас на каждую переменную по два var.

var foodInGrams = 100;
var sleepInHours = 15;
var jumps, pulls, runs;
Ну пробую еще и так - все равно не проходит, где дублирую var что то не пойму… плак плак…

jumps=foodInGrams*(3/10);
console.log(‘Босс съел грамм корма’ + foodInGrams + ‘отношение прыжков к граммам корма’);

pulls=sleepInHours*(2/1);
console.log(‘Босс проспал’ + sleepInHours+‘часов и’+’ отношение подтягиваний к часам сна’)

runs=jumps+(pulls*0,5);
console.log(‘Босс столько то пропрыгал и’+’ Подтянулся’);

при выводе в консоль вы не указали сколько конкретно раз - забыли переменную (нет цифры, поэтому программа и не может сравнить)

Cпасибо Вам большое! Что то я совсем забыл про значимость console.log

Здравствуйте! Подскажите пожалуйста что не так.

var foodInGrams = 100;
var sleepInHours = 15;

var jumps;
jumps = foodInGrams / 10 * 3;
console.log ('Прыжков на шкаф ’ + jumps);

var pulls;
pulls = sleepInHours * 2;
console.log ('Подтягиваний на висящей куртке хозяина ’ + pulls);

var runs;
runs = jumps + (pulls * 0,5);
console.log ('Кругов рысью по комнате ’ + runs)

0.5 обязательно с точкой, а не с запятой.

Спасибо

Не хочу создавать новую тему, может быть кто-нибудь объяснит почему этот код сработал?

var foodInGrams = 100;
var sleepInHours = 15;

var jumps = foodInGrams * 3 / 10;
var pulls = sleepInHours * 10 / 5;
var runs = jumps + pulls * 0.5;

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

Но почему круги именно такие? Определил методом тыка, недоумевал почему не работало просто сложение прыжков и подтягиваний. Это же очевидно. Зачем умножать на 0.5?

2 лайка

Внимательно читайте теорию:

Каждый прыжок дополняется одним кругом пробежки, а каждое подтягивание — половиной круга.

1 лайк

У меня так вышло. Может, кому поможет


Upd. Текстом, так текстом

/**

  • KeksoFit v0.1
  • Author: @keksobot
  • License: CatoFree, NoDogs
    */

var foodInGrams = 100;
var sleepInHours = 15;
console.log(‘Сегодня вы съели ’ + foodInGrams + ’ грамм’);
console.log(‘Сегодня вы спали ’ + sleepInHours + ’ часов’);

console.log(‘Провожу рассчеты’);

var jumps;
var pulls;
var runs;
console.log (‘Нужно выполнить ’ +(jumps = foodInGrams/103) + ’ прыжков’);
console.log('Нужно выполнить ’ +(jumps = foodInGrams/50
15) + ’ прыжков’);
console.log(+ (pulls = sleepInHours/12) + ’ подтягиваний’);
console.log(+ (pulls = sleepInHours/5
10) + ’ подтягиваний’);
console.log(‘и ’ + (runs = pulls*0.5 + jumps) + ’ пробежек’);

Код текстом, в форматированном виде, пожалуйста. Скрины - это несерьезно.

1 лайк