+1 Daumen
1,3k Aufrufe

Höchstwahrscheinlich ist diese Frage hier zu belächeln, jedoch stoße ich seit mehreren Stunden gegen eine Wand.

Die Aufgabenstellung lautet:" Mit Hilfe von Arrays können Polynome effizient dargestellt werden. In einem solchen Array bestimmt
der Wert an Stelle i des Array den i-ten Koeffizienten. Der zugehörige Exponent entspricht der
Position des Koeffizienten im Array und muss daher nicht explizit gespeichert werden. Zum Beispiel
entspricht das Polynom 1 + 4x + 2x^3 dem Array [1, 4, 0, 2]. Setzen Sie diese Darstellung für Polynome in der Klasse Polynom Polynomial Polynomial um. Als Annäherung für R können Sie den Datentyp double verwenden"

Nun soll ich eine Methode implementieren, die wie folgt lautet: "public Polynomial getDerivative(): Gibt die Ableitung p'
zu dem aktuellen Polynom p zurückgibt.

Mein Problem ist, dass ich es nicht schaffe ein Objektinstanz zu erstellen ,welche durch den Konstruktor erstellt wird.


Mein Code lautet bis jetzt:

public class Polynomial {

double p[];

Polynomial(int[] h) {
        if (h == null) {
            p = new double[0];
        } else {
            p = new double[h.length];
            for (int i = 0; i<h.length; i++) {
                p[i] = h[i];
            }
        }
    }

public  Polynomial getDerivative() {
if(p.length>1) {
double [] r=new double[p.length-1]; //Da Länge der Ableitung immer um eins kleiner ist als die zu ableitende Funktion
for(int i=0; i<p.length; i++) {
r[i]=p[i]*i;
return r;
}
Avatar von

Zu einer Fehlerbeschreibung gehört:

  1. Was hast du gemacht?
  2. Was hast du erwartet?
  3. Was ist tatsächlich passiert?

Keiner dieser Punkte ist hinreichend klar.Insbesondere solltest du bei Punkt 1 darauf eingehen, ob du das Programm ausführen konntest, oder bereits beim Kompilieren Fehler aufgetreten sind. Bei Punkt 3 solltest du Fehlermeldungen angeben, die du bekommen hast und explizit auf Diskrepanzen zu deinen Erwartungen eingehen.

1 Antwort

+1 Daumen

Hi,

hier ist die Klasse:

public class Polynomial {

private double[] p;

//soll der Konstruktor kein double entgegennehmen können?!
Polynomial(double[] h) {
        this.p = (h == null)? new double[0] : h;
    }

public Polynomial getDerivative() {
double[] derivative;
if(this.p.length > 1) {
derivative = new double[this.p.length-1];
//jeder Koeffzient wird mit dem Exponent von x multipliziert
for(int i=0; i<derivative.length; i++)
r[i]=p[i+1]*(i+1);
}
else
derivative = new double[] {0};
return derivative;
}
}

Probier sie mal aus.

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community