Loading...
Nikola3132 avatar Nikola3132 6 Точки

Реколта,Harvest,Programming Basics with C#, Логически проверки

Здравейте ,вече 30 мин се мъча да разбера защо ми дава само 90 точки в джъдж. Ще се радвам някой да помогне. Благодаря предварително.

 

Ето го условието - 

От лозе с площ X квадратни метри се заделя 40% от реколтата за производство на вино. От 1 кв.м лозе се
изкарват Y килограма грозде. За 1 литър вино са нужни 2,5 кг. грозде. Желаното количество вино за продан
е Z литра.
Напишете програма, която пресмята колко вино може да се произведе и дали това количество е
достатъчно. Ако е достатъчно, остатъкът се разделя по равно между работниците на лозето.
Вход
Входът се чете от конзолата и се състои от точно 4 реда, въведени от потребителя:
 1ви ред: X кв.м е лозето – цяло число в интервала [10 … 5000];
 2ри ред: Y грозде за един кв.м – реално число в интервала [0.00 … 10.00];
 3ти ред: Z нужни литри вино – цяло число в интервала [10 … 600];
 4ти ред: брой работници – цяло число в интервала [1 … 20];
Изход
На конзолата трябва да се отпечата следното:

© Software University Foundation. This work is licensed under the CC-BY- NC-SA license.
Follow us: Page 10 of 18

 Ако произведеното вино е по-малко от нужното:
o “It will be a tough winter! More {недостигащо вино} liters wine needed.”
 Резултатът трябва да е закръглен към по-ниско цяло число
 Ако произведеното вино е повече от нужното:
o “Good harvest this year! Total wine: {общо вино} liters.”
 Резултатът трябва да е закръглен към по-ниско цяло число
o “{Оставащо вино} liters left -> {вино за 1 работник} liters per person.”
 И двата резултата трябва да са закръглени към по-високото цяло число

Примерен вход и изход
вход изход коментари
650
2
175
3
Good harvest this year! Total wine: 208 liters.
33 liters left -> 11 liters per person.

Общо грозде: 650 * 2 = 1 300
Вино = 40% * 1300 / 2,5 = 208
208 > 175
208 - 175 = 33 л остават -> 11 л на човек

1020
1.5
425
4
It will be a tough winter! More 180 liters wine
needed.

Общо грозде: 1 020 * 1.5 = 1 530
Вино = 40% * 1 530 / 2,5 = 244.80
244.80 < 425
425 - 244.8 = 180.2 -> 180 л не достигат

 

Here is my code -- >https://pastebin.com/Wjc2vyff

-1
Programming Basics
svetlioi avatar svetlioi 41 Точки

Ето ти едно решение на C#... тук. Ако не дава 100/100 пробвай на Java тук.

0
25/01/2018 18:43:15
svetlioi avatar svetlioi 41 Точки

 Ако стане - пиши.

0
25/01/2018 18:41:56
TeMePyT avatar TeMePyT 142 Точки

Мисля че всичко ти идва от формулата за виното. Пробвай със

var Vinoto = ( obshtoVino * 0.40) / 2.5 ;

40% от цялото грозде се заделя и се дели на 2.5(колкото трябва за 1 кг вино).

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

0
TodorovP avatar TodorovP 177 Точки

В кода

Console.WriteLine($"Good harvest this year! Total wine: {Math.Floor(Vinoto)} liters.");

добавих Math.Floor()

Кодът

var ostavashtoVino2 = Math.Ceiling(ostavashtoVino);

не е необходим и трябва да се махне и там, където се използва:ostavashtoVino2  трябва а стане ostavashtoVino.

Направи сравнение и виж къде още съм променил свързано с Math.Ceiling() или Math.Floor().

Отделно се оказва, че има значение дали в оператора if  първа се сравнява (Vinoto >= jelanoKolichestvoVino) и после обратното, или първо (Vinoto < jelanoKolichestvoVino). Аз също бях поставил първо проверката (Vinoto < jelanoKolichestvoVino) и също резултатът ми беше 90/100. Едва като разглеждах твоето запитване се сетих, че при проверките в Judge може а има значение поредността. Само направих размяна и ми се получи 100/100.

0
Nikola3132 avatar Nikola3132 6 Точки

Благодаря , това  с Console.WriteLine($"Good harvest this year! Total wine: {Math.Floor(Vinoto)} liters."); има логика ,но с размените на (Vinoto >= jelanoKolichestvoVino) или (Vinoto < jelanoKolichestvoVino). малко не отрих логика защо,но явно хората които са писали задачите в джъдж са написали първо jelanoKolichestvoVino и заради това .Благодаря ти отново! +1

0
Nikola3132 avatar Nikola3132 6 Точки

Направих всичко което ми каза,но пак ми е 90/100 о_O. Ако не ти е проблем ще може ли да ми изпратиш решението си да го поглена. Благодаря предварително +1

0
denis.argatski avatar denis.argatski 25 Точки

https://pastebin.com/WNmyDMqQ - тук можеш да погледнеш и мойто решение.

 

0
Nikola3132 avatar Nikola3132 6 Точки

Мерси !!!

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