skomplikowane argumenty funkcji

0

mam pewien problem do rozwiazania, mianowicie mam klase ocenaTab, argumentem tej klasy jest tablica int albo double (to jest malo istotne) zawierająca zmienne, funkcja ta zwraca ocene tej tablicy czyli w sumie zwraca tablice z ocenami tamtej tablicy :-), tylko teraz mam problem

jakby zrobic zeby funkcje oceny tablicy mogl podac uzytkownik i zeby mogla ona byc naprawde dowolna,
zastanawialem sie nad podawaniem argumentow funkcji, ale jest to troche banalne i ograniczające

0

Jak przykladowo wyglada funkcja oceny? Popatrz na ONP, moze o to chodzi. I co rozumiesz przez 'naprawde dowolna'?

0

Zapewne chodzi o taki system, jak często spotyka się przy sortowaniu, np. metoda Sort klasy TList w VCL. Trzeba podać jej jako parametr funkcję, która otrzymuje 2 elementy i zwraca informacje, który jest większy. Sam algorytm to QuickSort, ale dzięki takiej organizacji można sortować dowolne obiekty, a nie tylko liczby.

0

funkcja oceny to na przykład: (x+2)(x+2)(x-3)(x-3), albo x122-x2x2,
jest mi to potrzebne do algorytmów genetycznych, musze napisac algorytm który będzie liczył dla dowolnej funkcji oceny

0
        private void Wczytaj_Click(object sender, EventArgs e)
        {
            int[] tab = { 1, 2, 3, 4, 5 }; //przykładowa tablica
            foreach (int i in Ocen(tab, funkcjaOceny)) //wyświetlenie tablicy wynikowej
                MessageBox.Show(i.ToString());
        }


        delegate int FunkcjaOceny(int x); //deklaracja własnej funkcji oceny - a raczej jej sygnatury (co zwraca i jakie parametry)

        int funkcjaOceny(int x) //rzeczywista funkcja oceny - może być dowolna, byle odpowiadała sygnaturze powyżej
        {
            return (x + 2) * (x + 2) * (x - 3) * (x - 3);
        }

        int[] Ocen(int[] tab, FunkcjaOceny funkcjaOceny) //to Twoja funkcja - przyjmuje jako parametr tablicę i dowolną funkcję oceny
        {
            int[] wynik = new int[tab.Length];
            for (int i=0; i<tab.Length; i++)
                wynik[i] = funkcjaOceny(tab[i]); //wykonanie funkcji oceny na każdym elemencie tablicy
            return wynik;
        }

takie coś? :)

0

@Marooned: jemu chyba chodzi o wpisywanie funkcji oceny np. do textboxa przez uzytkownika....

0

Aaa, chyba że.. to nie skumałem. No ale to już nie moja wina, że tak niejasno napisane :)

0

No ja tez nie jestem pewien, ale taka jest moja interpretacja :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1