Loading...
Jimipage avatar Jimipage 7 Точки

03.Flowers ot Nested Conditional Statements - More Exercises

Пържите 2 входа излизат, но третият не. Според мен става грешка с отстъпката за розите и после с отстъпката за повече от 20 цветя, но мисля че съм я записал вярно. Някой идея какво да променя? https://pastebin.com/43r7tQrm ето и линк за условието https://judge.softuni.bg/Contests/Practice/Index/1663#2

Тагове:
0
Programming Basics 12/05/2019 12:29:38
inkarnasion avatar inkarnasion 278 Точки

Честно казано прекалено усложнено решение, защо са ти толкова проверки? Особенно с това да проверяваш дали е празник или не, излишно утежняваш кода, ето ти преработено решение, погледни го мисля че е по сбито и разбираемо....

https://pastebin.com/yChJJa8t

Поздрави.

0
Jimipage avatar Jimipage 7 Точки

На мен ми се вижда по - сложно ;) но работи. Но все пак не мога да си видя грешката на мойто, дава ми 87/100 и си мисля че трябва да ми е вярно.

0
inkarnasion avatar inkarnasion 278 Точки

Значи нека ти дам няколко насоки да видиш къде грешиш, и защо твоето решение в този си вид е грешно...Когато нещо не ти работи пускаш дебъг и гледаш къде се дъни кода...В твоя случай е в проверката за празнични дни и по точно когато не е Празник.....В условието на задачата са казали...

"За закупени 10 или повече рози през зимата 10% от цената на целият букет." 

В твоят код си казал:

case "N":

......

} else if ("Winter".equals(season) || "Autumn".equals(season)) {
    priceAll = countOfChrysanthemum * 3.75 + countOfRoses * 4.50 + countOfTulips * 4.15;
    if (countOfRoses >= 10) {
        priceAll = priceAll - (priceAll * 0.10);
    }
}

В този си вид на кода всеки път когато имаш 10 рози в теста ще влизаш в проверката за розите,и съответно правиш намаление на цената, и това е защото си сложил този if в  проверка която проверява дали е есен или зима, така ВИНАГИ ще ти гърми....

Пусни си примерните тестове от условието. При тест 2 имаш 10 рози и тогава ти е верен кода, но при тест 3 ОТНОВО имаш 10 рози и съответно влизаш в проверката за тези цветя и им правиш намаление, независимо че сезона не е Зима а е Есен, така си структурирал самият код, ако закоментираш реда if (countOfRoses >= 10) то тогава ще ти мине третия нулев тест обаче ще гръмне тест 2, и пак ще ти даде 87/100 като този път обаче грешката ще е в тест 2.. Това ти е проблема, надявам се че си схванал обяснението ми, и може да си промениш кода така че да стане верен. Поздрави.

0
Jimipage avatar Jimipage 7 Точки

Мого благодаря за обяснението! Сега вече го схванах!

1
inkarnasion avatar inkarnasion 278 Точки

Най грозното решение което да работи без да ти променяям кода че да си го знаеш какво си писал е това:

https://pastebin.com/wiWWCmBi

Но това е грешно, има едно нещо което трябва да се иззбягва, това е повторението на код, а така при теб общо взето е това, един и същ код само че с два различни входа, Yes or No, така по принцип не се прави, за това ти казах че моето решение е по чисто. Но ето ти го твоето решение поправено за да мине в джъдж, виж какво съм добавил.

Разликата че добавих отново сезона в проверката за цветята за да може да си сигурен че ако имаш толкова цветя то ще е в правилният сезон,не ми се занимаваше да проверявам в кой сезон точно гърми тоя граничен тест, за това ги добавих навсякъде, ако искаш дебъгвай и виж къде е правилно да се постави, или в твоя случай ,оже и да трябва нясвякъде....

0
12/05/2019 15:51:46
Jimipage avatar Jimipage 7 Точки

Наистина е доста тромаво моето решение, за това направих друго по компактно, ръководейки се от твойто https://pastebin.com/tGUrxSSD

Проверката за "N" реално е излишна, а другите като се навържат една след друга се получават нещата :) само трябва да посвикна и отстъпките да ги пиша по краткия начин.

Благодаря за отделеното време! ;)

не ми дава да натисна палеца на горе...

1
12/05/2019 18:45:49
AnnaIvanova11 avatar AnnaIvanova11 21 Точки

Привет,

И моя километричен код гръмна, без да го пусна в judge в дебъгера го хванах още хаха. Не можах да разбера, как да го направя кратичко и работещо.

Кода ти ми беше много полезен, но явно съм изпуснала нещо да разбера.

Ще хвърлиш ли нещо синтезирано за крайните проверки само с if ?

Нямаме нужда от проверка за N, защото влиза в else case, ако не е Y , каквото и друго да се въведе, ще хвърля стойността, без намаленията, правилно ли съм разбрала?

И също като проверките не са вложени в блока от код на първия if, защо се изпълняват, другите if , когато първия хвърли true?

Последно, като видях символ в условието( за дните), ползвах char и с двете ли може? 

Сигурно са ми глупавите въпросите, но ще се радвам на отговор. Благодаря предварително!

0
01/11/2019 15:08:52
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.