public List<int> OperaceSPrvocisli()
{
List<int> vysledky = new List<int>();
List<int> prvocisla = PolePrvocisel();
//int hranice = prvocisla.Count - 1;for (int b = 0; b < prvocisla.Count; b++)
{
for(int a = b+1; a <= prvocisla.Count; a++)
{
int soucin = 0;
switch (operace.ToLower())
{
case"soucin":
soucin = prvocisla[b] * prvocisla[a];
break;
case"soucet":
soucin = prvocisla[b] + prvocisla[a];
break;
default:
soucin = prvocisla[b] * prvocisla[a];
break;
}
vysledky.Add(soucin);
}
}
return vysledky;
}
metoda OperaceSPrvocisly má za úkol násobit/sečíst (podle atributu
třídy) prvočísla v poli mezi sebou (tzn. "každý s každým"), tyto
výsledky pak zapisovat do nového pole, které pak metoda vrátí. Pole s
prvočísly (se kterými se pak pracuje) vrátí metoda PolePrvocisel().
Nějakou chybu dělám ve volání hodnot pole při prováděné operaci s
prvočísly:
soucin = prvocisla[b] * prvocisla[a];
Tady to hází chybu:
Index was out of range. Must be non-negative and less than the size of the
collection.
Parameter name: index.
U druhého for máš podmínku <= Count vrací velikost pole. Ovšem
poslední index je Count - 1. Tj. bys tam měl mít jako u prvního <. A u
prvního Count - 1.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.