Професионална програма
Loading...
AlucardDracula avatar AlucardDracula 416 Точки
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 416 Точки

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