Java deklaracja metody

0

Witam mam zadanie z javy, ktorego nie wiem jak ugryźć a mianowiscie, polecenie jest takiego.

Napisz klasę Wielomian. Klasa ta reprezentuje wieomian 2 stopnia a1+a2*x+a3*x^2.

  • Pola a1,a2,a3
  • Konstruktor
  • Metody
    • pochodna - zwraca nowy wielomian a1+2*a2*x
    • wartość - bierze jeden argument x i zwraca wartość wielomianu w punkcie x.

Oto mój kod:

public class Wielomian { // KLASA

    double a1, a2, a3; // POLA

    public Wielomian(double a, double b, double c) { //KONSTRUKTOR
        a1 = a;
        a2 = b;
        a3 = c;
    }

    public double pochodna() { //METODA
        double x = 0; 
        double nowy = a1 + (2 * a2) * x;
        return nowy;
    }
}

Mam problem z tą metodą pochodna. Nie mam pojęcia jak zrobić żeby nie musieć deklarować tego x-sa bo w polach z polecenia wynika, że mam mieć tylko a1,a2 i a3, ale program wymusza zadeklarowania tej zmiennej i przypisania mu wartości:/ Proszę o pomoc. Dodam, że mam to zrobić bez tablic bo to inne zadanie będzie.
Później jeszcze muszę napisać instrukcje utworzenie obiektu i wywołania metod ale z tym raczej sobie poradzę.

Wywołanie metody pochodna mam takie, ale to mi się coś nie podoba :/

public class TestWielomian {

    public static void main(String[] args) {
        Wielomian obiekt = new Wielomian(1,2,3);
        double x = obiekt.pochodna();
        System.out.println(x);
    }
    
}
0

"bierze jeden argument x" czyli musisz mieć:

0

Dziękuję, ale z tym jednym argumentem to juz jest metoda wartość, a pochodna ma zwracać nowy wielomian w takiej postaci jak jest w poleceniu. Pomogłeś mi już z drugim :) ale dalej nie wiem jak mam zwrócić ten drugi wielomian.

1

Zauważ, że oryginalny wzór to a1 + a2*x + a3*x^2 i choć znajduje się w nim x, dałeś radę go przedstawić w formie klasy ;-)
To samo zrób w przypadku pochodnej.

0

Zrobiłem coś takiego, mam nadzieje, że to o to chodziło :)

public class Wielomian { // KLASA

    double a1, a2, a3; // POLA

    public Wielomian(double a, double b, double c) { //KONSTRUKTOR
        a1 = a;
        a2 = b;
        a3 = c;
    }

    public double pochodna(double x) { //METODA
        double nowy = a1 + (2 * a2) * x;
        return nowy;
    }

    public double wartosc(double x) {
        double wartosc = a1 + (2 * a2) * x;
        return wartosc;
    }
}

I WYWOŁANIA TYCH METOD:

public class TestWielomian {

    public static void main(String[] args) {
        Wielomian obiekt = new Wielomian(1, 2, 3);
        double x = obiekt.pochodna(4);
        System.out.println(x);

        Wielomian wartosc = new Wielomian(1, 2, 3);
        double y = wartosc.wartosc(3);
        System.out.println(y);
    }

}

Dziękuje za pomoc bardzo serdecznie i proszę tylko i napisanie czy to o to chodziło w tym zadaniu :)

0

Nie, zrobiłeś źle.

Twoja metoda pochodna powinna zwracać nowy wielomian, a metoda wartosc powinna zwracać wartość wielomianu w danym punkcie, a nie jego pochodnej.

0

No własnie na tym się zablokowałem, mam tego x-sa zadeklarować jako zmienną w klasie czy wrzucić ją w chara i wypisać nowy wielomian w returnie czy co? Może jakaś mała podpowiedź z kodem Patryk27? :)

0

Nijak, x jest tylko symboliczny - zwróć uwagę, że wielomian a + b*x jest tym samym, co a + b*x + 0*x^2 (a ten wielomian już potrafisz reprezentować - masz do niego całą klasę).

1

Tak jak pisał Patryk, twoja metoda pochodna ma zwracać nowy wielomian. Metody nie muszą zwracać tylko typów prostych. Podpowiedź:

public Wielomian pochodna() {

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