Софтуерно Инженерство
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

svetlioi avatar svetlioi 30 Точки

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

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

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

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

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

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