Robie program symulacyjny planowaniu czasu procesora. Musze zawrzeć w nim statystyki. Mam problem ze srednia. Skorzystałem z kolejki Queue, ale nie potrafie odzyskać z niej int. Idea jest taka ze wczytuje do tablicy liczby z kolejki dodaje je potem licze srednia i znowu wrzucam je do kolejki. Co lepsze ze miejsce w ktorym wywala blad działą jakies raz albo dwa potem dopiero debuger zatrzymuje działanie programu.
float[] SJF_przet_tab = new float[SJF_przet.Count];
float dzielnik = SJF_przet.Count;
float dzielna = 0;
for (int i = 0; i < dzielnik; i++)
{
object stos = SJF_przet.Dequeue();
int liczba = (int)stos; // Tutaj wywala blad o invalid cast
SJF_przet_tab[i] = liczba;
}
for (int i = 0; i < dzielnik; i++)
{
dzielna += SJF_przet_tab[i];
}
float wynik = dzielna / dzielnik;
SjfCPS.Text = wynik.ToString();
for (int i = 0; i < dzielnik; i++)
{
SJF_przet.Enqueue(SJF_przet_tab[i]);
}
Co lepsze ten kod:
Queue tablica = new Queue();
tablica.Enqueue(500);
object wy = tablica.Dequeue();
int wy2 = (int)wy;
int wy3 = 25 + wy2;
MessageBox.Show(wy3.ToString());
działa, ale jak sie go wrzuci do petli przestaje działać.
Może ktoś kto ma większa wiedze merytoryczną od mojej potrafi dostrzec problem, albo ma inne rozwiazanie.
A jakby użyc do tego List<int> ?