Loading...
marto223 avatar marto223 3 Точки

Programming Fundamentals - Conditional Loops - Problem 4 - Hotel

Така... решавам си задачата .. всичко ми излиза наред освен 15те % отстъпка .. знам че кода е зле написан с тея if-else-ове... но все пак.. Judge ми дава 22/100 с това решение :/ Някой има ли идея защо???

КОД

Тагове:
0
Programming Fundamentals
viraco4a avatar viraco4a 28 Точки

@Marto223: Както си си написал кода, вероятността да сбъркаш е 100%. Успях да видя само част от грешките ти - например в първите if-ве, където разглеждаш случаите при nights < 7, трябва да ти  е <= 7 (по условие, ако нощите са повече от 7, еди си какво, ако ли не, демек - по-малко или равни на 7 - друго)
Ако искаш разгледай моя код, или този на колегата maxalo - пробвай се да ползваш вложени if-ве, така е по-малко вероятно да сбъркаш. Например външен иф - ако нощите са над 7, вътре разцепваш на вложени if-ве, ако месецът е еди си кой, еди си какво и т.н. Ако не си ме разбрал, пиши ще доуточня.

@ maxalo: 2 грешки имаше Първата - идеотска :) На редове 41 и 47 - като си копирал месеците си копирал и една пауза отзад (т.е. търсиш да сравниш месец "August "  вместо "August". Но това ти оправи само 2 от тестовете. Другата грешка беше логическа. Това, което ти правиш, в случай на месец Октомври, над 7 нощи за студио: правиш дискаунт, после вадиш цената на 1 нощувка за студио за Октомври (отсптъпката от 1 ден фрий). А трябва да правиш: вадиш 1 нощ, чак тогава правиш дискаунт. Ето ти ремонтиран кода, минаващ на 100: https://pastebin.com/R8WXCbZh


ето го моето решение: https://pastebin.com/nxGMZWZU

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

честно 3 метода? като можеше просто да го overide-неш :Д и като ги гледам на колегите им е малко рано за тея неща :Д а и 3  метода за 3 цени като могат да се направят в 1 или с мultiple  out? то е хубаво да се правят методи ама и чак толкова дробене е малко безумно.Ти една логика я разбиваш на 3 което е wtf целта на 3те ти метода е една и съща няма смисъл от 1 метод да се правят 3...

0
viraco4a avatar viraco4a 28 Точки

Приемам всичките забележки - това решение го правих преди 3 месеца и вероятно съм ги изнесъл с CTRL+. само за четимост

Иначе го шернах заради оригиналния постер - да види варианти да ползва вложени цикли

0
maxalo avatar maxalo 3 Точки

Голямо благодаско :) Тоя интервал никога нямаше да го видя.

0
kirililchev3 avatar kirililchev3 1 Точки

колега мога ли само да те попитам как определи процентите ? 0.90, 0.85 и 0.95 ? благодаря предварително и се извинявам за елементарния въпрос

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

ами имаш 5% discount тоест като умножиш сумата по 0.95 ще получиш числото което ти трябва по същата логика е за 10% 0.90 и 0.85 за 15% а защо е така защото 

10% от 100 е 10 тоест трябва да ти остане 90 ами ок аз ако умножа това 100 * 0.90 пак се получава същото. това стои зад тези числа

Eдин съвет към всички ако ви е трудна логиката отначало да я направите пробвайте с такива прости примери ако работи при тях ще работи и с по сложни числа.Е като правех моето решение което пуснах за хотела и там ми отне около 30 мин докато  се усетя че първо се маха free night и тогава се прави discount.Но стана бързо защото разбих нещата на прости числа и тествах всички възможности и ги хванах.след около година тези от вас които оцелеят ще се учите да го правите това същото с unit tests. Никои не пише бъг фрее или перфектен код нито вашите колеги нито лекторите разлика е само че ние знаем какво чупим а вие се учите тепърва и свиквате кое какво и къде.

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