Професионална програма
Loading...
+ Нов въпрос
nzzgeorgi avatar nzzgeorgi 14 Точки

[Exercises] JS advanced => JS classes => 08. Kitchen || проблем

https://judge.softuni.bg/Contests/Practice/Index/1534#7

https://pastebin.com/yjYMC0vu

Здравейте. Някой може ли да ми помогне с кода ми и да ми каже защо два от тестовете не минават. Проверил съм всички изходи и грешките са при следните методи:

1: addToMenu()  - в случаите когато има поне 1 рецепта в менюто

2:  showTheMenu() - пак в случаите когато има поне 1 рецепта в менюто.

 

При тестовете ми във VScode изходите ми изглеждат идентични с тези, които се искат в условието на задачата, но въпреки това Judge изглежда не ги приема.

 

Тагове:
0
JavaScript Advanced
willystyle avatar willystyle 2316 Точки
Best Answer

Здравей, едната грешка (тест 9) е в showTheMenu() , когато връщаш резултата правиш join s \n, но на последния ред нямаш \n, когато гледаш с console,log не го забелязваш, защото той прави нов ред, но judge явно го търси.

ред 43 else {return toPrint.join('\n') + '\n'} // // TEST 9 - pass

може би явно това имат впредвид с "At the end trim the result!", което не ми звучи логично, но.. на пишещия условието да.

Така, сега относно втората грешка, която отново не е при теб :) но явно се иска точно определена структура за this.menu[meal] и не може да ползваш това което ти правиш с this.menu[meal] = [neededIngs, +price] а:

this.menu[meal] = {products: neededIngs, price: +price}

т.е. искат да е обект, и то точно да има ключ products, което явно се проверява в някой юнит тест, като това никъде не е упоменато в условието на задачата.

Съответно трябва да замениш this.menu[meal][0] с this.menu[meal].products

и this.menu[meal][1] с this.menu[meal].price

https://pastebin.com/LefLUqFN

P.S. Досега не съм срещал толкова завоалирано условие на задача.

 

 

 

0
17/03/2019 11:56:46
nzzgeorgi avatar nzzgeorgi 14 Точки

Благодаря! Мина ми през ума това да е грешката, но понеже в условието пишеше нещо, че менюто трябва да се tirm-не, мислих, че не трябва да се слага този последен '\n' и така и не го пробвах.

Edit: Благодаря и за обяснението на 2-та грешка! Доста неприятно е като има такова разминаване в условието и в тестовете, и особено когато не може да се провери какво точно иска judge...

2
17/03/2019 22:49:20
Dokka avatar Dokka 1 Точки

Здравейте,

Понеже и аз се сблъсках с тази приятна задача. Искам да направя допълнение към TEST 6: явно judge не само иска да да имаш пропърти с име "products", но и стойността му да е масив.

Пример: 

1) this.menu[meal] = { price: price, products: products };

--- тест 6 минава;

 

2) this.menu[meal] = { price: price, products: {} };

for (let i = 0; i < products.length; i++) {

let [name, quantity] = products[i].split(" ");

this.menu[meal].products[name] = +quantity;

 }

--- тест 6 гърми

 

0
mr.ivanov avatar mr.ivanov 17 Точки

Аз я решавах около 2-3 часа и почти нищо не работи, а локално си минава. Има ли някой на който му се занимава?

Ако на изпита има подобна май ще се проваля. Нещо не се справям с класовете в JS. При мен работи а в Judge дава едвам 20 точки. Ще ми се да можех да видя тестовете така щях да открия грешките.

https://pastebin.com/yFSzRQ0J

edit : Открих една огромна грешка която ме озадачаваше. Аз умножавах цената по количеството а не трябваше.

Вече дава 60 точки, но все още нещо липсва.

https://pastebin.com/ZQpJ48nc

 
0
17/10/2019 22:07:00
TeodorStefanovPld avatar TeodorStefanovPld 1281 Точки

https://pastebin.com/LyFXsxmP ето ви линка направо. Че не ми се обеснява там има и проблеми с това какво е описанието  на проблема и какво очаква judge но като цяло е straightforward  както всички класове в js  те са доста елементарни все едно са речник.

0
mr.ivanov avatar mr.ivanov 17 Точки

Ок мерси, може да са елементарни ако идваш от OOP език, но ако досега си бил само на JS e малко по-трудно, особено тези getter-и и setter-и не мога да ги разбера кога и защо се използват

0
18/10/2019 14:27:34
willystyle avatar willystyle 2316 Точки

И аз все още не съм съвсем наясно, особено с backing prefix _, а да не говорим, че в новия ES7 са вкарали и # за private properties, засега най-много ми се изясняват от https://javascript.info/class

0