Имам проблем със задача.
На zero test-а ми дава 100/100 но на другите само 0. Става дума за задача 5 от Objects and Classes - Exercise. Ето линк към кода https://pastebin.com/KvPa9FMD
https://judge.softuni.org/Contests/Compete/Index/1215#4
На zero test-а ми дава 100/100 но на другите само 0. Става дума за задача 5 от Objects and Classes - Exercise. Ето линк към кода https://pastebin.com/KvPa9FMD
https://judge.softuni.org/Contests/Compete/Index/1215#4
Здравей,
Като погледнах решението видях няколко неща(не всички засягат резултата):
1. Използваш лист за да пазиш какво трябва да се изпише като резултат. Класа StringBuilder върши точно тази работа.
2. Създаваш нов отбор като правиш нова инстанция на клас Teams. Името на класа е в множествено число, което е малко объркващо. Всяка инстанция на този клас е отделен отбор, а не списък от отбори.
3. Класа ти от тип Team пази информация в public fields. Това не е препоръчително. Прави метода AddMember ненужен, защото дори извън класа може да се направи манипулация на листа Members. Field-овете се правят private или protected. В зависимост какво се изисква, се създават методи вадещи информация или манипулиращи тези field-ове.
4. Въртиш ненужен брой пъти цикъла за да провериш дали съществува такъв отбор или създателя вече има отбор.
5. Въртиш for цикъл върху лист teams, като при всяка итерация въртиш отново цикъл върху същия лист с метод Any. Така се губи смисъла от for цикъла.
6. С for цикъл проверяваш и добавяш отборите с 0 играчи към лист, който пази изходните данни. Заедно с това премахваш такива отбори и връщаш итератора. Не ги сортираш както се изисква. Може да филтрираш тези с нула играчи, след това да ги сортираш и да ги добавиш към изхода на един ред.
7. Създаваш нова променлива, която да пази сортирания(сортиран грешно) лист. Така имаш две променливи от тип лист с еднакви отбори. Може да сортираш в самото условие на foreach-a.
8. Въпреки че, използваш лист за да ограничиш използването на клас Console, имаш на няколко места използване на Console.WriteLine.
9 . При изписването на информация за Име, създател и членове на всеки отбор въртиш цикъл по сортираните отбори, като директно достъпваш field-ве на класа. Тук е по-добре да създадеш овъррайд на метод ToString в класа с отбора, който връща тази информация..
Въпреки големия брой от проблеми на пръв поглед, реших да променя решението ти.
Използвах максимално малко промени, с които да го направя достатъчно четимо и да не се загуби връзката с твоето решение.
Направих промени само за StringBuilder, смених част от условията да използват Any и промених сортиранията.
Благодаря ти за поправките по кода! Сега ми дава 100/100.Доста тъпи грешки като се загледам