Loading...
NTonchev avatar NTonchev 4 Точки

Defining Classes - 05. Special Cars

Здравейте,

В момента решавам задача Special Cars от Lab-а за Defining classes и стигам до момент в който judge ми дава 80/100.

Очевидно решението ми гърми на последния тест. Ще съм благодарен, ако някой може да погледне и да даде идеи относно това къде може да е проблема.

Zip с решението: https://1drv.ms/u/s!Aj3rGZruzuMcg0ArD4k8RB2NYvJ3?e=nXyfu6

Условие на задачата: https://1drv.ms/w/s!Aj3rGZruzuMcg0FYXsoCM8xECIjf?e=bhK7Mt

Link към judge: https://judge.softuni.bg/Contests/Practice/Index/1478#4

Тагове:
0
C# Advanced 11/06/2020 13:39:56
nickwork avatar nickwork 657 Точки
Best Answer

Всичко е правилно...защо не минава с метода WhoAmI...честно сега не мога да ти кажа (може и там да ги иска да са .ToString()...не съм пробвал)...нямам мн време да го проучвам защо се чупи. Сложи това парче код в класа StartUp + добави си using System.Text.. По този начин ще ти даде 100/100 иначе решението ти е супер :)

 

if (cars.Any())
            {
                foreach (var car in cars)
                {
                    StringBuilder builder = new StringBuilder();
                    
                    car.Drive(20);
                    
                    builder.AppendLine($"Make: {car.Make}");
                    builder.AppendLine($"Model: {car.Model}");
                    builder.AppendLine($"Year: {car.Year.ToString()}");
                    builder.AppendLine($"HorsePowers: {car.Engine.HorsePower.ToString()}");
                    builder.AppendLine($"FuelQuantity: {car.FuelQuantity.ToString()}");

                    Console.Write(builder);
                }
            }

1
NTonchev avatar NTonchev 4 Точки

Благодаря! Така сработи и успях да открия каква е грешката при мен, а именно опита за форматиране на FuelQuantity по този начин: ($"FuelQuantity: {car.FuelQuantity:F1}");

Като премахнах F1, сработи с използването на метода WhoAmI.

1
Mihail.Tomov92 avatar Mihail.Tomov92 2 Точки

Баси и при мен се оказа тъпото форматиране с :F1, да живее форумът за такива тестове!

0
Elena123456 avatar Elena123456 235 Точки

Здравейте, ако е възможно може ли малко помощ за сортирането накрая на колите- с foreach крайното решение се получава, но само с Linq() не успявам да сумирам налягането в четирите гуми, които от своя страна се държат в Tire[], а самия масив е в listOfTires = new List<Tire[]>();

https://pastebin.com/x25G9MKB - тук е само StartUp с основната логика

Питането ми е за тези редове:

  •   var filterCars = listOfCars.Where(car => car.Year >= 2017 && car.Engine.HorsePower > 330).ToList();

            foreach (var car in filterCars)

            {

                double sumOfPressure = 0;

                foreach (var tire in car.Tires) // Може ли да се направи с Linq и да се помести в по-горната филтрация?

                {

                    sumOfPressure += tire.Pressure;

                }

                if (sumOfPressure >= 9 && sumOfPressure <= 10)

                {

                    car.Drive(20);

                    Console.WriteLine(car.WhoAmI());

                }

            }

 

0
04/02/2021 23:27:08
NTonchev avatar NTonchev 4 Точки

Здравей филтрацията трябва да може да се получи и с Linq по следния начин:

var filterCars = listOfCars.Where(car => car.Year >= 2017 && car.Engine.HorsePower > 330 && car.Tires.Sum(y => y.Pressure) >= 9 && car.Tires.Sum(y => y.Pressure) <= 10).ToList();

По този начин директно ще ти изкара нужните автомобили, върху които може да използваш Drive и WhoAmI методите.

2
Elena123456 avatar Elena123456 235 Точки

@ NTonchev

благодаря Ви много за помощта!

Тествах решението Ви и при мен- работи и всичко е точно.

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

Поздрави!

0
VeselinVeselinov avatar VeselinVeselinov 1 Точки

Искам да благодаря за прекрасното решение! Признавам си помогнах си малко!

0
Blagovest_Todorov avatar Blagovest_Todorov 0 Точки

Благодарим за решението, Сам  не успях да се справя с тази задача.

 

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