Професионална програма
Loading...
+ Нов въпрос
AlucardDracula avatar AlucardDracula 404 Точки
Best Answer

добавих StringBuilder и промених всичко да е double и мина ето линкове към отделните класове:
https://pastebin.com/DxdzpEA8 - Program класа

https://pastebin.com/SRx1krTS - Vehicle класа

https://pastebin.com/FZ6jZiPe - Truck класа

https://pastebin.com/1ArqfncA - Car класа

Мисля че не ти минаваше заради StringBuilder щото сигурно Judge очаква нещо чак когати свършат командите, а не след всяка команда. Както виждаш не съм пипал особено класовете просто decimal > double, там където се взима нещо от конзолата .Trim(), при връщане също .Trim() заради StringBuilder-а и това е. Също така мисля че 'емигрирай' към използване на StringBuilder щото при ООП Judge се сърди +  StringBuilder е много по-бърз от стринг и ще помогне програмата ти да работи бързо.

Искам да кажа че това с кастването не е добра практика вместо това можеше да направиш Vehicle car = new Car() и пак щеше да работи:

string[] part = Console.ReadLine().Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
string[] part2 = Console.ReadLine().Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

Vehicle car = new Car(double.Parse(part[1]), double.Parse(part[2]));
Vehicle truck = new Truck(double.Parse(part2[1]), double.Parse(part2[2]));

 

1
03/03/2018 01:15:05
butoff avatar butoff 33 Точки

Много благодаря!  

За StringBuilder - от това, което прочетох разбирам, че е дава ускорение  при множество операции .Също е добре да се ползва при неизвестен брой стрингове за съединяване. За 2-3 няма нужда. Самото инициализиране на StringBuilder сваля производителноста. 

Иначе правя някакви опити за FactoryPattern, ама кръщаването на метод Factory не е достатъчно...smiley

 

1
AlucardDracula avatar AlucardDracula 404 Точки

https://www.dotnetperls.com/factory тука според мен най-просто се показва Factory Pattern-а. Методът просто щеше да е по-добре ако беше клас, както е на линк-а, и този pattern най-често се използва със reflection, което ще го учите в C# OOP Advanced.

1
butoff avatar butoff 33 Точки

Благодаря!

Split(),  Trim(), StringBuilder(), не помагат.

Ключът е да се ползва double вместо decimal. Откъде идва разликата не знам. Интересно какъв вход подават.

Навсякъде по задачите ползвам decimal ( нали е по-точно),  за тази явно не става.

0
03/03/2018 14:15:23
VasilValchanov avatar VasilValchanov 555 Точки

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

1
butoff avatar butoff 33 Точки

Извинявам се, че не дадох условие, но няма капацитет на резервоара - взима колкото му сипеш. ..:)

0