public class Szereg { public void szeregDlaKonkretnegoX(double x, double epsilon) { //na razie liczymy wartość dla jednego x, więc musimy go podać. double suma = 1; //dla każdego x suma zaczyna się od 1 + x + x^2/2!... więc od razu możemy założyć, że na początku suma wynoi 1 i doliczać będziemy kolejne kroki. double licznik = x; //pierwszy krok jaki musimy zdefiniować to x^1/1!, więc po prostu x, dlatgo w naszym liczniku będzie podany x. double mianownik = 1; //równolegle mianownik w 1 kroku będzie równy 1! = 1. int mnożenie = 1; //dzięki temu będziemy budować silnię, mianownik mamy na początku 1, jeśli zwiększymy mnożenie o 1, będzie wynosić 2, więc później //mianownik pomnożymy razy 2, później zwiększy znowu mnożenie i będzie 1*2*3... while((licznik / mianownik) > epsilon) { //po to właśnie jest epsilon, żeby nie liczyć w nieskończoność, więc liczmy szereg, dopóki kolejny wyraz nie będzie za mały. suma = suma + (licznik / mianownik); //dodajemy kolejne wyrazy do sumy. licznik = (licznik * x); //pierwzy wyraz to 1, drugi to x, więc w trzecim w liczniku musimy mieć x^2, więc pomnożymy poprzedni licznik razy x. mnożenie++; //zwiększamy mnożenie, by dobudowywać silnię. mianownik = mianownik * mnożenie; //teraz nowy mianownik będzie równo 1*2, w kolejnych krokach 1*2*3... } System.out.println("Wynik dla wartości " + x + " = " + suma + "."); //wyświetlimy nasz wynik. Kalkulator podpowiada, że program działa poprawnie. } public void szeregDlaPrzedziałuZKrokiemH(double a, double b, double h, double epsilon) { //zakładam, że podajemy dolną i górną wartość przedziału, przykładowo [0, 14], gdzie a = 0, b = 1. Krok h oznacza odległości między danymi x, dla których chcemy //liczyć wartości. Dlatego, zakładając, że za h weźmiemy 3, będziemy liczyć wartości dla: 0, 3, 6, 9, 12 (bo one mieszczą się w narzuconym przedziale). double krok = a; //na początku liczymy wartość dla początku naszego przedziału, a więc dla A. double koniec = b; //koniec naszego przediału to liczba B, którą podaliśmy. while(krok <= koniec) { //dopóki nie wyjdziemy za nasz przedział będziemy liczyć wartości dla kolejnych X. Np. mamy przedział [0,3] z krokiem 1. liczym dla 0, 1, 2 oraz 3, dalej już nie pojedziemy. szeregDlaKonkretnegoX(krok, epsilon); //liczymy wartość funkcji krok = krok + h; //robimy krok do następnego X, dla którego będziemy liczyć wartość. } } //wyprowadzenia wyników w słupach nie robię, bo to chyba spokojnie da radę. }