Loading...
JOHNY avatar JOHNY 196 Точки

Упражнение:Проверки, задача 7 - World Record и Judge оценяване <100 при зададени диапазони

Здравейте,

Забелязах, че judge дава 100 точки при решение на задачата без да се задава диапазон на променливите, въвеждани в конзолата. Такива ограничения в условието са "Рекордът в секунди – реално число в интервала [0.00 … 100000.00],Разстоянието в метри – реално число в интервала [0.00 … 100000.00] и Времето в секунди, за което плува разстояние от 1 м. - реално число в интервала [0.00 … 1000.00]".

Judge без проблем дава 100 точки при ТОЗИ КОД .Ако погледнете обаче, ще установите, че няма никакви ограничения за стойностите при въвеждане в конзолата, а само е зададено, че са double. 

Ако заменя обаче

cin >> worldrecord;

 

с аналогична на останалите проверки, а именно:
 

do
    {
        cin.clear();
        cin >> worldrecord;
    } 
while (cin.bad() || worldrecord < 0 || worldrecord > 100000);

 

Judge вече дава ... 90 точки... Разликата е само в това, ето и кода с проверка за диапазон.
Някаква идея защо се получава това (judge споделя само Test #6 (Incorrect answer), а с какво тества един Наков знае), къде бъркам и как да го избегна при подобни проверки.
Благодаря.

Тагове:
0
Programming Basics with C++ 24/01/2020 17:52:39
krum_43 avatar krum_43 756 Точки

По принцип не е необходимо да валидираш променливите.Интервалите са дадени само за да определиш типа на променливите.

-1
JOHNY avatar JOHNY 196 Точки

Съгласен съм, но не е ли важно да спазим условието?

В някои от задачите ако променливите са извън диапазона, резултатът ще е плачевен (делене на нула, безкрайност, отрицателни стойности за време или разстояние и т.н.).

И понеже не виждам стойностите в гърмящия тест, мога само да предполагам, че са извън посочения в условието диапазон, кодът ми ги реже и judge дава грешка. Така ли е?

-1
25/01/2020 20:55:48
krum_43 avatar krum_43 756 Точки

Да,има логика.                                                               :)

-1
25/01/2020 16:59:01
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.