Metoda licząca sumę szeregu funkcyjnego

0

Witam, mam taki problem. Muszę napisać na projekt program liczący sumę szeregu funkcyjnego S(x) = (x+1)^n / n! z dokładnością obliczeń Eps. Całą strukturę programu już mam, zabezpieczenia, wpisywanie wartości x oraz n. Problem został tylko z napisaniem metody na samo liczenie sumy tego ciągu (odwołuję się do niej przy wypisywaniu wyniku). Problem polega na tym, że nie wiem jak poprawnie napisać matematycznie w kodzie by to wszystko się zgadzało. Wrzucę może to co mam do tej pory, nie wiem jak poprawnie zadeklarować mianownik tej funkcji (silnie) oraz jak to wszystko połączyć w całość.

static void Szereg(float Eps, float x, out float Suma, out int n)
        {
            float w;
            Suma = 0.0f;
            w = 1.0f;
            n = 0;
            

            

            do
            {
                Suma += w;
                n++;
                w = Math.Pow((x + 1), silnia);


            } while (Math.Abs(w) > Eps);

        }

Jeśli popełniłem jakieś błędy w pisaniu wątku, wybaczcie mi. Jestem świeży na forum.

1

Kod powinien wyglądać coś w ten deseń:

		static void Szereg(float Eps, float x, out float Suma, out int n)
        {        
            n = 0;
            Suma = 0.0f;
            long silnia=1;

            do
            {
                checked { silnia *= (++n); }
                Suma += (float)Math.Pow((x + 1), n) / silnia;
            } while (Math.Abs(Suma) < Eps);
        }

Teraz tak:

  1. Nazwy zmiennych z małej + najlepiej żeby były po engliszu
  2. instrukcja checked dodana dlatego, że może wystąpić przepełnienie przy liczeniu tej silni, bo nie wiadomo jakie będzie epsilon, no więc jak nie będzie w stanie osiągnąć tego epsilon i wystąpi przepełnienie to zostanie rzucony wyjątek i możesz sobie go odpowiednio obsłużyć (wyświetlić informację o n oraz sumie, którą dało się osiągnąć i po prostu zakończyć metodę), dzięki temu też pętla nie będzie działała w nieskończoność. Jak coś mógłbyś użyć BigInteger zamiast tego long dla silni no i wtedy wywalić ten checked, ale nie wiem czy to ma sens, bo powiedzmy że może Ci wtedy liczyć w nieskończoność
0

Dzięki wielkie za odpowiedź, już ogarnięte było wczoraj. Zrobiłem to po swojemu, silnie dałem w pętli for i wszystko działa jak powinno. Co do zmiennych - wiem, że po angielsku lepiej jednak to projekt na studia i profesorek musi mieć wszystko dopięte tak jak sobie zażyczy więc wolę zrobić to tak. Temat do zamknięcia.

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