Loading...
persuader avatar persuader 25 Точки

Клик! Ето моето решение което включва if else  и switch :)

0
29/11/2017 23:46:22
Lidiq91 avatar Lidiq91 0 Точки

Здравейте!Аз също имам проблем с тази задача .Може ли малко помощ?

Това ми е решението: https://pastebin.com/9EDbzXPM .

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

може ли да качиш пак кода си, и да му дадеш да остане този път, Линк-а които даваш не е актуален явно си го оставила за много кратко време.

0
Lidiq91 avatar Lidiq91 0 Точки

TeodorStefanovPld,мерси ,че писа!

Предполагам сега ще може да се види кодът. https://pastebin.com/nzM8HMG0

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

значи,каква грешка се получава защото така е трудно да се ориентирам кода ти е ок.Смиисъл бих го направил с switch case и тн защото с тея много if е объркващо но това са подробности,капсулирането ти е ок. Не получаваш цена или ти дава грешни отговори? И бтв предполагам че бройката снимки ви е определена в условието смисъл неможе а има различна бройка?

  1. else if(kindofphotos =="20X30")

  2.             {

  3.             if (photos>10 && photos<=50)

  4.                 {

  5.                     price=2.90;

  6.                     totalprice =photos*price*0.07;

                }

  1. if (way=="online") - това по -скоро трябва да е while цикъл. Ако разбирам правилно условието са ви казали че докато string way != online трябва да отпечатвате резултат.Смисъл не виждам логика да ти дадат ако е= online тогава ако мине през проверките веднъж то няма да се върне горе и ще ти спре след едно завъртане,програмата.А реално могат да ти подадат няколко неща.

    

защото тук примерно ако са повече от 50 нямаш алтернатива? 

0
06/01/2018 06:57:57
Lidiq91 avatar Lidiq91 0 Точки

Здравей! Мерси за отговора! Ето го условието :https://judge.softuni.bg/Contests/Practice/Index/750#2.

Честно казано ми е много объркващо.При вход : 5,,9X13,online ,трябва да се получи 0.78,а аз получавам 0.

0
Thedi avatar Thedi 200 Точки

Здравей Lidiq91,

Проблемът в кодът и е, че на доста места ти само проверяваш дали броя на снимките е над определения за отстъпка, а пък в случай, че той не е толкова голям не правиш нищо.
Ако следваме твоя пример ако въведеш 5,,9X13,online това отговаря на следния код от твоя страна:

 

 if (way == "online")
        {
            if (kindofphotos == "9X13")
            {
                if (photos > 50)
                {
                    price = 0.16;
                    totalprice = photos * price * 0.05 * 0.02;
                }
            }

 

В този случай ти проверяваш дали бройката е повече от 50 и смяташ нещо ако е така. Но ако бройката не е над 50 ти не правиш нищо. Тук е хубаво да си залепиш else на проверката за снимките и в случай, че те не са над 50 да направиш някаква друга сметка.

Ти това нещо го правиш малко по надолу в друг "else" :
 

    }
            else
            {
                totalprice = photos * price * 0.02;
            }
        }

 

Проблемът е там, че този else ти е залепен до всички проверки за размерите на снимките и ти никога няма да влезенеш в тази проверка защото в задачата е казано, че ще ти дават точно опеделени размери. 
Идеята е, че тази проверка е трябвало да бъде зелепена за по горната която говоерих, че ти липсва и би трябвало да изглежда така:

 

 if (way == "online")
        {
            if (kindofphotos == "9X13")
            {
                if (photos > 50)
                {
                    price = 0.16;
                    totalprice = photos * price * 0.05 * 0.02;
                }
                else
                {
                    price = 0.16;
                    totalprice = photos * price * 0.02;
                }
            }

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

Имаш и друг проблем обаче и това е как смяташ отстъпките. Дори в обяснението на задачата в примерите е написано

Цената е: 5 броя * 0.16 лв. = 0.80 лв. Не се ползва отстъпка за брой снимки, защото 5 < 50. Тъй като начинът на поръчване е online се ползва 2% отстъпка, 0.80 * 0.98 = 0.784 лв. Числото се форматира до 2 знака – 0.78:
 

 

От тук може да видиш, че не трябва да умножиш по 0.02 както ти правиш ами по 0.98. 

Също така е хубаво като проверяваш бройките на снимките да помислиш какво ще се случи ако ти дадът точно 50 бройки ? Това трябва ли да е към отстъпката или не трябва и съответно да го включиш в кодът ти.

Тези неща се повтарят изцяло в кодът ти, но ако следваш всички тези препоръки би трябвало да се справиш да си оправиш кода.

Надявам се да съм бил полезен :)

0
06/01/2018 13:08:47
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

ехе колегата ми е спестил доста писане :Д но да общо взето е така :) 

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