2.2. Simple Calculations - Exam Problems -> 02. Vegetable Market
Здравейте!
Не е въпрос, а по-скоро някакво недоразумение в Judge при оценяването на решението на задачата „02. Vegetable Market“.
Прочетох внимателно задачата и написах програмата, но Judge-а, като се „запна“ на тест 6-ти, че е грешен и аз паднах "Тест №6 (Грешен отговор)". Виждам от резултатите, че много хора има този проблем резултата да им е 90/100, заради някаква несъществуваща грешка!
Затова, само ще споделя моя опит и къде идва заблудата от самото условие на задачата (да, казвам, че задачата е написана грешно, или не е предвидено в Judge-а).
В задачата е зададено едно условие – цитирам: „Ограничения: всички числа ще са в интервала от 0.00 до 1000.00.“.
Това значи автоматично, че в плана за решаването на задачата НЕ трябва да се допускат различни стойности и естествено аз правя “if {} else{}” конструкция, за да осъществя това условие и естествено вътре започвам пресмятанията от входа на конзолата.
Но уви, неразбираемо и за мен Judge-а започна да не ми харесва "Тест №6 (Грешен отговор)", каквото и да значи това (за жалост никой не си е направил труда да опише какво значат тестовете?!?).
Направих 6 различни (малки) модификации по задачата, но Judge системата все ми връща някаква несъществуваща грешка на "Тест №6 (Грешен отговор)", а практически няма грешка! Най-малкото с тези знания дадени ни до тук по книгата "Основи на програмирането с Java" направих няколко модификации и наистина очаквах Judge-а да реагира по друг начин поне на някой от вариантите, но не!
РЕШЕНИЕТО: Останах изключително неприятно изненадан, след като последния ми вариант беше без конструкцията “if {} else{}”?!! След като я махнах Judge-а прие всички тестове?!?
Така, че не се занимавайте излишно с това стойностите да са от 0.00 до 1000.00! Явно НЕ е част от задачата, а защо е публикувана така в книгата, не се знае. Аз лично мисля, че по-правилно би било точно обратното – ако нямаш сравнение на входните данни дали отговаря на условията на задачата, да се отнемат тия 10 точки от 6-ти тест… но то е обратното.
Владимир Маринов
Здравейте, Мартин! :)
Благодаря за мигновената реакция!
След като прочетох отговора виждам, че имаме коренно различна интерпретация на едно и също нещо. Аз се "хванах", че проверката на данните при входа е важна, нищо, че по книгата още не е "говорено" за това. Сега разбирам, че в условието на задачата се е имало предвид друго. Това обаче значи, че има двусмислие, щом с вас имаме различно виждане за това какво пише, а задачите не трябва да са двусмислени.
Простото ми предложение е да се смени само семантиката на самата задача, за да не се получава, както при мен! И пак да "кажа", че виждам доста хора да са се хванали на тази уловка. Няма лошо, защото аз все пак се сетих да направя няколко експеримента и уцелих, но все пак обявения резултат беше "удар" под кръста, ако мога така да се изразя. Т.е. изключително неприятно е да си се справил пък да се получи недооценяване и то такова недооценяване, че да НЕ можеш да прочетеш, да видиш и въобще да разбереш защо става така.
Последно: просто трябва да се преправи малко условието на задачата, за да няма двусмислие, това е! :)
Somma!
@Somma
Такъв е форматът на заданията в SoftUni - ще им свикнете. :)
По-напред в курса, като се стигне до валидации ще видите, че данните, които трябва да се валидират са подробно описани, вкл. и с желаното поведение - напр. хвърляне на конкретен ecxeption с конкретен message към него.