[C# OOP Advanced] 01. ListyIterator - информация относно решенията под 100 точки
Здравейте колеги
Погледнах резултатите от тая задача и видях че д/г има 15/20 хора които не са успели да я направят.
Това ми стана интересно тъй като е първа задача и би трябвало да е лесна пък има над 10 човека под 100т и малко си поиграх да намеря колко точки дава в зависимост където сме грешили.
За сега намерих 2 места:
83/100 - 1 тест гърми > проблем при Print(), където се опитаме да принтираме елемент от празен масив. Решение:
try
{
return this.Data[internalIndex].ToString();
}
catch (Exception)
{
return "Invalid Operation!";
}
33/100 - 2/3/4/5 тест грешен отговор > проблем при индекса , което може да е със стойност по подразбиране -1. При тези тестове забелязах също че се пробват и Move() и HasNext() методите. Първо при напълно работещи методи смених индекса от 0 на -1 ми даде 33/100. След това промених HasNext() метода че винаги да връща false, тогава също ми даде 33/100.
Ако и вие сте забелязали дриги коментирайте
кажи кой тест не ти минава
Ето модифицирах решението ти.
Методите HasNext и Move са объркани, трябва да са точно обратното + малко им трябваше корекця
грешките тука са: Move проверява дали сегашния индекс +1 е по-малко от количеството на елементи, и ако е така увеличава индекса с 1;
а HasNext прави същото само че ако може тогава просто връща true, без да прави нещо
ето и с корекциите:
Благодаря на AlucardDracula !
Аз не бях съобразил първо при Move() да проверя дали има следващ индекс и тогава да увелича curentIndex s 1, защото при примерно 3 елемента в листа ако няма команда Print() след всеки Move() минава, но ако има 3 Move() то 3-тият Print() ще опита да печата елемент извън листа.