Addieren von Polynomen Java

Mika34

Bekanntes Mitglied
Hallo an alle,
Höchstwahrscheinlich ist diese Frage hier zu belächeln, jedoch stoße ich seit mehreren Stunden gegen eine Wand.
Die Aufgabenstellung lautet wie folgt:
In einem Array 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. Auch schaffe ich es nicht einen ordentlichen return der Methode zu setzen. Ich wäre sehr glücklich über eine Hilfe.

Mein Code lautet bis jetzt:
Java:
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;
            }
            
                }
            else { //Wenn es ein Polynom vom Grad 1 ist
                Polynomial r =new Polynomial([0]);//Da die Länge von einem Polynom vom Grad 1 immer die Länge 1 hat bzw. 0 in der Informatik
            }
return Null;
                }
 

mihe7

Top Contributor
Bitte Code-Tags verwenden (die drei Punkte neben dem Smiley im Editor anklicken -> Code -> Java auswählen und Code inkl. Einrückungen einfügen)
 

mihe7

Top Contributor
Hier sind alle per Du. Das ist der Code zum Erzeugen einer Instanz vom Typ Polymonial. Der Konstruktor ist ok.
 

mihe7

Top Contributor
Naja, Dein Konstruktor ist package private und damit außerhalb des Pakets nicht verwendbar. Dazu müsstest Du ein public davorsetzen.
 

abc66

Top Contributor
Mein Problem ist, dass ich es nicht schaffe ein Objektinstanz zu erstellen ,welche durch den Konstruktor erstellt wird. Auch schaffe ich es nicht einen ordentlichen return der Methode zu setzen. Ich wäre sehr glücklich über eine Hilfe
Man sollte im Konstruktor nicht eine neue Instanz derselben Klasse erstellen...
Nimm mal den else-Teil und das nachfolgende return raus.
 

mihe7

Top Contributor
Nein, [0] ist kein gültiger Ausdruck. Wenn Du ein Array der Länge n haben willst, musst Du ein solches erzeugen: new double[n] - wie oben in Deinem Konstruktor.
 

Mika34

Bekanntes Mitglied
Nein, [0] ist kein gültiger Ausdruck. Wenn Du ein Array der Länge n haben willst, musst Du ein solches erzeugen: new double[n] - wie oben in Deinem Konstruktor.
Java:
         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;
     }
    
         }
     else {
         r =new double[0];
     }
return r;
         }
Ich glaube nun stelle ich mich komplett doof an. Nun steht das r keiner Variable zugeordnet werden kann. Das steht im return als auch in der Methode selbst. Obwohl ich diese doch eigentlich damit erstellt habe.
 

mihe7

Top Contributor
Wenn Du das mal vernünftig formatierst, siehst Du recht schnell, dass das r innerhalb des then-Blocks deklariert wurde. Daher steht r unten nicht zur Verfügung.

Abgesehen davon willst Du nicht r zurückgeben, denn r ist ein double-Array und kein Polynomial-Objekt.

Du willst etwas wie:
Java:
    public Polynomial getDerivative() {
        double[] r;
        if(p.length>1) {
            r = new double[p.length-1];
            for(int i=0; i<p.length;i++) {
                r[i]=p[i]*i;
            }
        }
        else {
            r = new double[0];
        }
        return new Polynomial(r);
    }
 

Mika34

Bekanntes Mitglied
Wenn Du das mal vernünftig formatierst, siehst Du recht schnell, dass das r innerhalb des then-Blocks deklariert wurde. Daher steht r unten nicht zur Verfügung.

Abgesehen davon willst Du nicht r zurückgeben, denn r ist ein double-Array und kein Polynomial-Objekt.

Du willst etwas wie:
Java:
    public Polynomial getDerivative() {
        double[] r;
        if(p.length>1) {
            r = new double[p.length-1];
            for(int i=0; i<p.length;i++) {
                r[i]=p[i]*i;
            }
        }
        else {
            r = new double[0];
        }
        return new Polynomial(r);
    }
Vielen Dank mihe7. Der Fehler war wirklich, dass ich keine lokale Variable für die ganze Methode erstellt habe und demnach dann auch kein return dieser Variable stattfinden kann, da dieser im unteren Block gar nicht mehr zur Verfügung steht, wie du gesagt hast. Nochmals vielen vielen lieben Dank
 

abc66

Top Contributor
Java:
import java.util.Arrays;

public class Polynomial {
	public 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) {
			int[] r = new int[p.length - 1];// Da Länge der Ableitung immer um eins kleiner ist als die zu ableitende
											// Funktion
			for (int i = 0; i < r.length; i++) {
				r[i] = (int) (p[i + 1] * (i + 1));
			}
			return new Polynomial(r);
		}
		if (p.length == 1) { // Wenn es ein Polynom vom Grad 1 ist
			Polynomial r = new Polynomial(new int[0]);// Da die Länge von einem Polynom vom Grad 1 immer die Länge 1 hat
														// bzw. 0 in der Informatik
			return r;
		}
		// sonst
		return null;
	}

	@Override
	public String toString() {
		return String.format("Polynomial [p=%s]", Arrays.toString(p));
	}

	public static void main(String[] a) {
		Polynomial p = new Polynomial(new int[] { 1, 4, 0, 2 });
		while (p != null) {
			System.out.println(p);
			p = p.getDerivative();
		}
	}
}

Code:
Polynomial [p=[1.0, 4.0, 0.0, 2.0]]
Polynomial [p=[4.0, 0.0, 6.0]]
Polynomial [p=[0.0, 12.0]]
Polynomial [p=[12.0]]
Polynomial [p=[]]

Wenn ich mich nicht täusche ist die 3. Ableitung 12
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
B Primzahlen bis 100 addieren Java Basics - Anfänger-Themen 16
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
S Arraywerte quadrieren und danach addieren Java Basics - Anfänger-Themen 11
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
G Array Werte addieren Java Basics - Anfänger-Themen 4
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
parrot Binär Addieren Java Basics - Anfänger-Themen 21
K Subklassen mit einzigem Befehl addieren Java Basics - Anfänger-Themen 6
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
M Werte des Arrays addieren Java Basics - Anfänger-Themen 5
W Parameter solange addieren bis 13 auftaucht Java Basics - Anfänger-Themen 11
E Mehrere Arrays addieren mit Übertrag Java Basics - Anfänger-Themen 13
G OOP- Brüche addieren Java Basics - Anfänger-Themen 3
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
J Zahlen addieren Java Basics - Anfänger-Themen 12
S Zahlenstrings addieren Java Basics - Anfänger-Themen 6
x-tshainge Innerhalb von Textdatei addieren Java Basics - Anfänger-Themen 9
A Arrays addieren- Was mache ich falsch?? Java Basics - Anfänger-Themen 2
ArkHeat Erste Schritte Zwei 2-dimensionale Matritzen addieren Java Basics - Anfänger-Themen 0
reza_4247 addieren Nummern Java Basics - Anfänger-Themen 7
R Werte aus Array addieren und Mittelwert bilden Java Basics - Anfänger-Themen 2
Viktormk Methoden Gleitpunktzahlen nach IEEE 754 addieren ! Java Basics - Anfänger-Themen 1
J Arrays erstellen und dann addieren Java Basics - Anfänger-Themen 19
S int addieren geht nicht Java Basics - Anfänger-Themen 13
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
M Werte der Knoten in Binärbaum addieren (iterativ) Java Basics - Anfänger-Themen 6
I Werte zu existierendem int addieren Java Basics - Anfänger-Themen 4
Silvascus Erste Schritte Werte innerhalb eines Arrays addieren Java Basics - Anfänger-Themen 3
C Java Eingabeaufforderung-Basic Zwei Zahlen addieren Java Basics - Anfänger-Themen 2
S ArrayList Gruppieren, "Doppelte Werte" Addieren Java Basics - Anfänger-Themen 5
M Arrays addieren Java Basics - Anfänger-Themen 2
C Rekursion auf einem Array(negative werte addieren) Java Basics - Anfänger-Themen 4
V addieren der ausgabewerte Java Basics - Anfänger-Themen 6
C OOP Probleme beim Addieren von Arrays Java Basics - Anfänger-Themen 4
B Vektor addieren Java Basics - Anfänger-Themen 4
G Summen addieren und Durchschnitt bilden Java Basics - Anfänger-Themen 4
A Erste Schritte aufeinanderfolgende Zahlen addieren Java Basics - Anfänger-Themen 5
J Methoden Einzelne Objekte eines Vectors addieren Java Basics - Anfänger-Themen 10
L Vom Benutzer eingebene Integer addieren und ausgeben. Java Basics - Anfänger-Themen 11
K Rekursion gerade Zahlen addieren Java Basics - Anfänger-Themen 11
M Zweidimensionales Array um 1 addieren Java Basics - Anfänger-Themen 3
J Objektwerte addieren / Konstruktor Java Basics - Anfänger-Themen 19
J arrays miteinander addieren Java Basics - Anfänger-Themen 11
L Erste Schritte Programm Bestellung/Rechnung addieren Java Basics - Anfänger-Themen 3
T Zahl addieren problem Java Basics - Anfänger-Themen 1
H n Zahlen aus einem Array addieren Java Basics - Anfänger-Themen 17
R Scanner-Eingaben addieren Java Basics - Anfänger-Themen 5
putinator Mehrdimensionale Array addieren Java Basics - Anfänger-Themen 10
Eileen Brüche addieren in Zwei Klassen mit JOptionPane Java Basics - Anfänger-Themen 4
K double Arrays addieren Java Basics - Anfänger-Themen 5
L Durchgang addieren Java Basics - Anfänger-Themen 5
L Zufallszahlen addieren Java Basics - Anfänger-Themen 6
S Eigene Klassen addieren Java Basics - Anfänger-Themen 3
O Werte aus ArrayList multiplizieren und dann Ergebnis addieren Java Basics - Anfänger-Themen 3
P Erste Schritte Arrays addieren Java Basics - Anfänger-Themen 18
R Binärzahlen addieren Java Basics - Anfänger-Themen 8
S 2 TimeObjekte Addieren Java Basics - Anfänger-Themen 2
K Arrays zusammen addieren - brauche Denkanstoß:) Java Basics - Anfänger-Themen 4
B Werte eines Arrays addieren Java Basics - Anfänger-Themen 16
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
N NullPointerException beim Addieren von Matrizen Java Basics - Anfänger-Themen 3
D 3 Monate addieren Java Basics - Anfänger-Themen 10
U Diagonalen in 2D Array addieren Java Basics - Anfänger-Themen 4
T Größte und 2. Größte zahl Addieren Java Basics - Anfänger-Themen 29
Jats Zweierpotenzen addieren Java Basics - Anfänger-Themen 39
X 2 Daten addieren Java Basics - Anfänger-Themen 5
S Zahlen in Array speichern und addieren Java Basics - Anfänger-Themen 4
B Zahlenfolge addieren Java Basics - Anfänger-Themen 5
J In einer for Schleife zu einer Zahl 4 addieren? Java Basics - Anfänger-Themen 3
S primitives Objekt mit Primitiv addieren Java Basics - Anfänger-Themen 13
L longwert mit Methode addieren geht nicht! Java Basics - Anfänger-Themen 20
W Binärbaum zahlen addieren Java Basics - Anfänger-Themen 7
J Bitweise addieren Java Basics - Anfänger-Themen 6
P Kopie erstellen / addieren von Arrays Java Basics - Anfänger-Themen 5
M einen Tag addieren Java Basics - Anfänger-Themen 4
S [HILFE] Brüche addieren, multiplizieren, kürzen Java Basics - Anfänger-Themen 17
C ArrayList: Elemente addieren Java Basics - Anfänger-Themen 3
J 2 zahlen addieren Java Basics - Anfänger-Themen 3
T integer Werte einer ArrayList miteinander addieren Java Basics - Anfänger-Themen 5
N Addieren von zwei Arrays Java Basics - Anfänger-Themen 4
D Addieren und ausgeben Java Basics - Anfänger-Themen 28
V Hexadezimal Zahlen addieren Java Basics - Anfänger-Themen 14
S 2 Byte Arrays addieren Java Basics - Anfänger-Themen 45
G Arrays Addieren Java Basics - Anfänger-Themen 5
O Integer addieren - Wo ist der Fehler? Java Basics - Anfänger-Themen 7
X reele Zahlen zwischen zwei Werten addieren Java Basics - Anfänger-Themen 11
M EInfaches Addieren mit Abbruchbedingung Java Basics - Anfänger-Themen 9
G Zahlen addieren in einer Schleife Java Basics - Anfänger-Themen 4
M zwei zweidimensionale Arrays addieren Java Basics - Anfänger-Themen 4
Spin Integer addieren Java Basics - Anfänger-Themen 22
G int zusammenfügen NICHT addieren Java Basics - Anfänger-Themen 9
G Benutzereingaben addieren Java Basics - Anfänger-Themen 14
S Addieren zweier Arrays Java Basics - Anfänger-Themen 10
B Java Dateien zu Projektstruktur addieren Java Basics - Anfänger-Themen 5
M Double Werte exakt addieren Java Basics - Anfänger-Themen 2
A Zahlen an einen Integer-Wert anhängen (nicht addieren!) Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben