java.lang.NullPointerException .

Status
Nicht offen für weitere Antworten.

JoernWilhelm

Mitglied
Hi, probier grad an meiner Praktikumsaufgabe rum und komme bei einer Fehlermeldung nicht weiter.
Hab diese auch gegoogelt und verstanden das obige Fehlermeldung bedeutet dass auf ein array zugegriffen wird der null ist. Das zeigt mir der debugger auch in eclipse an, aber ich versteh nicht warum das so ist und warum das schlimm ist; da nämlich der Konstruktor den pe array ja aus der main beziehen sollte.
Wenn ich die initialisierung in pe[]; am Anfang weglasse kriege ich einen Fehler bei n = pe.length; , allerdings brauch ich für das Programm die Länge des eingegeben Strings... komme nicht weiter !?!

Code:
//---------------------------------------------------------------------------
//		Praktikumsaufgabe2.3
//		Jörn Wilhelm
//---------------------------------------------------------------------------

public class Polynom {

    int[] p;
    int[] pe;
    int n; // Länge eingegebenes Polynom
    int i = 1;
    int k = 0;
    double x;
    double zw;

    public Polynom(int[] pe) { 
        while (i <= pe.length) {
            p[i] = pe[i];
            i++;
        }
    }

    public double evaluate(double x) {
        n = pe.length;
        zw = p[n];
        while (n > 0) {
            zw = p[n] * x + p[n - 1];
            n--;
        }
        return zw;
    }

    public static void main(String[] args) {
        int[] f = { 3, 4, 2, 1 };
        Polynom p = new Polynom(f);
        System.out.print(p.evaluate(2));
        System.out.print(f.length);
    };

}
 
G

Gelöschtes Mitglied 5909

Gast
du erstellst kein array namens p, du deklarierst es nur

=> z.b. im konstruktor: p = new int [ pe.length ]
 

mvitz

Top Contributor
1. Problem:
Du initialisert das Array int[] p nicht. Deswegen funktioniert schonmal die Zuweisung p = pe nicht.

2. Problem:
Initialisert man dieses Array, so funktioniert die Methode evaluate(double x) nicht, da du dort n = pe.length aufrufst. int[] pe ist in diesem Falle aber noch null, da hier die Variable benutzt wird und nicht das im Konstruktor übergebene Array. Hier würde vermutlich n = p.length besser passen. Dann musst du aber auch beachten, dass du eine Stelle zuweit bist, da ein Array nur bis p.length - 1 geht.

Weitere Probleme:
int k = 0 wird nie benutzt
int i = 1. Wieso nicht = 0? Die erste Stelle eines Arrays ist immer 0 und die letzte die Länge des Arrays - 1.
Wieso kopierst du im Konstruktor das Array so umständlich von int[] pe auf int[] p?
Wozu benutzt du soviele Variablen? Das meiste kann man auch innerhalb der Methoden definieren.
Du weißt in der while-Schleife in evaluate immer zu. Damit ist zw nur das letzte Ergebnis und da addierst nicht alle zusammen.

Einfachere Lösung
Code:
package de;
//---------------------------------------------------------------------------
//     Praktikumsaufgabe2.3
//     Jörn Wilhelm
//---------------------------------------------------------------------------

public class Polynom {

	int[] p;

	public Polynom(int[] pe) {
		p = pe;
	}

	public double evaluate(double x) {
		int n = p.length -1;
		double zw = p[n];
		while (n > 0) {
			zw = p[n] * x + p[n - 1];
			n--;
		}
		return zw;
	}

	public static void main(String[] args) {
		int[] f = { 3, 4, 2, 1 };
		Polynom p = new Polynom(f);
		System.out.println(p.evaluate(2));
		System.out.println(f.length);
	};

}
Gibt bei mir als Ausgabe
Code:
11.0
4

Wobei ich nicht genau verstehe, was du generell damit machen möchtest. Eine Erklärung der AUfgabenstellung wäre doch sehr hilfreich.

Generell solltest du dir zu Klassen und der Verwendung von Variablen in Klassen/Methoden nochmal etwas anschauen.
 

JoernWilhelm

Mitglied
Danke fuer die Tips - hab versucht alles umzusetzten und hat denk ich geklappt.
Was die Aufgabenstellung angeht: geht es darum ein Polynom beliebiger groesse zu programmieren und von diesem eine ableitung zu machen. In der main soll mit x=-2.5 ausprobiert werden ob es korrekt funktioniert. Bei mir kommt allerdings 0 und 40 raus - es sollte allerdings 0 und 85 rauskommen fuer das Beispielpolynom (siehe im code in main funktion)

Code:
/**
 * ---------------------------------------------------------------------------
 * // Praktikumsaufgabe2.3 Joern Wilhelm
 * //---------------------------------------------------------------------------
 * 
 * @author Joern
 */

public class Polynom {
    /**
     * Definition von Laufindizes und arrays.
     */
    private int[] p;
    int[] pe;
    int n;
    int i = 0;
    int k = 0;
    double x;
    double zw;

    /**
     * Setzt p auf Werte des eingegebenen arrays.
     * 
     * @param pe
     */
    public Polynom(int[] pe) {
        this.p = pe;
    }

    /**
     * Diese Funktion erzeugt aus dem eingegeben Array ein Polynom.
     * 
     * @param x
     * @return double mit Inhalt Polynom mit eingesetztem x.
     */
    public double evaluate(double x) {
        double end = 0;
        n = p.length - 1;
        zw = p[n];
        while (n < 0) {
            zw = p[n];
            while (k < 0)
                zw *= x;
            end = end + zw;
            n--;

        }
        return end;
    }

    /**
     * Funktion leitet Polynom ab. Dabei unterscheidet sie zwei faelle. Naemlich
     * einstellig und mehrstellige Polynome.
     * 
     * @return
     */
    public Polynom derivative() {
        if (p.length > 1) {
            int[] pe = new int[p.length - 1];
            for (int i = p.length - 1; i > 0; i--) {
                pe[i - 1] = p[i] * i;
            }
            return new Polynom(pe);
        } else {
            int[] pe = new int[1];
            return new Polynom(pe);
        }
    };

    /**
     * Main Funktion ueberprueft fuer eingegebenes Polynom f ob die Funktionen
     * evaluate und derivative fuer x= -2.5 den korrekten Wert ergeben.
     * 
     * @param args
     */
    public static void main(String[] args) {
        int[] f = { 75, 0, -2, 4 };
        Polynom p = new Polynom(f);
        System.out.print(p.evaluate(-2.5) + " ");
        System.out.print(f.length);
        System.out.print(p.derivative().evaluate(-2.5));
    };

}

Wollte die Aufgabenstellung nicht posten damit mir das nicht als "Loesung erschleichen" ausgelegt wird ;) tummelt sich bestimmt der eine oder andere uebungsgruppenleiter hier.
 

mvitz

Top Contributor
Ich habe in einer Version von mir nun bei einer Main von:
Code:
public static void main(String[] args) {
	int[] poly = { 75, 0, -2, 4 };
	Polynom polynom = new Polynom(poly);
	System.out.println("f(x) = " + polynom);
	double result = polynom.evaluate(-2.5);
	System.out.println("f(-2,5) = " + result);
	Polynom derivate = polynom.derivative();
	System.out.println("f'(x) = " + derivate);
	double result2 = derivate.evaluate(-2.5);
	System.out.println("f'(-2,5) = " + result2);
}
Code:
f(x) = 4*x^3 + -2*x^2 + 0*x + 75
f(-2,5) = 0.0
f'(x) = 12*x^2 + -4*x + 0
f'(-2,5) = 85.0
raus.

Edit:
Sehe gerade, dass du es hast. Wenn du magst, poste ich mal meine Lösung.

mfg
Michael
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 4
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
P Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 3
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
S Fehler: "java.lang.NullPointerException" Java Basics - Anfänger-Themen 6
I Erste Schritte Ausführfehler: java.lang.NullPointerException Java Basics - Anfänger-Themen 3
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
V [Greenfoot] java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 10
J java.lang.NullPointerException Java Basics - Anfänger-Themen 18
K Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 6
K OOP java.lang.NullPointerException Java Basics - Anfänger-Themen 2
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
S Fehlermeldung: java.lang.NullPointerException Java Basics - Anfänger-Themen 10
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
K java.lang.NullPointerException in Array bei Arraylistübergabe Java Basics - Anfänger-Themen 7
G java.lang.NullPointerException Was tun? Java Basics - Anfänger-Themen 7
G java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException - Bitte helft mir! Java Basics - Anfänger-Themen 5
S java.lang.NullPointerException Fehler bei Umrechnung Java Basics - Anfänger-Themen 3
P java.lang.NullPointerException Java Basics - Anfänger-Themen 19
M java.lang.NullPointerException at . Java Basics - Anfänger-Themen 4
S java.lang.nullpointerexception bei arrayübergabe Java Basics - Anfänger-Themen 30
S java.lang.NullPointerException bei Bildern Java Basics - Anfänger-Themen 13
P java.lang.NullPointerException was ist das? Java Basics - Anfänger-Themen 7
G java.lang.NullPointerException beim objekt Java Basics - Anfänger-Themen 3
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
H JUnit in Eclipse: java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 9
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
B java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 3
P java.lang.ClassCastException Bedeutung und Lösung Java Basics - Anfänger-Themen 3
J Erste Schritte java.lang.NoClassDefFoundError Java Basics - Anfänger-Themen 4
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
T Compiler-Fehler java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 2
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
N jodaTime java.lang.IllegalArgumentException: Invalid format Java Basics - Anfänger-Themen 3
F Erste Schritte java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
R java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 1
V java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
C Hilfe!!! java.lang.ClassCastException Java Basics - Anfänger-Themen 1
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
W Methoden Rückgabedatentyp java.util.Map<java.lang.String,? extends ...> Java Basics - Anfänger-Themen 4
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
K Caused by: java.lang.NoClassDefFoundError: org/mindrot/jbcrypt/BCrypt Java Basics - Anfänger-Themen 0
OnDemand java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 9
J Klassen java.lang.String - lexikographisches Sortieren Java Basics - Anfänger-Themen 5
T Erste Schritte import java.lang.System.out Java Basics - Anfänger-Themen 4
H Classpath java.lang.NoClassDefFoundError externe Libary Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
B java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
H java.lang.IndexOutOfBoundsException bei verschachtelter ArrayList Java Basics - Anfänger-Themen 9
V java.lang.NoSuchMethodError Java Basics - Anfänger-Themen 2
J java.lang.math asin() Java Basics - Anfänger-Themen 18
R Compiler-Fehler java.lang.ArrayIndexOutOfBoundsException, warum? Java Basics - Anfänger-Themen 6
K Error: java.lang.NoSuchMethodException Java Basics - Anfänger-Themen 2
M Compiler-Fehler Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 2
G java.lang.ClassNotFoundException Java Basics - Anfänger-Themen 4
S String index out of range: 8 at java.lang.String.substring(Unknown Source) Java Basics - Anfänger-Themen 13
X Interpreter-Fehler "java.lang.NullPionterException: null" bei BlueJ Java Basics - Anfänger-Themen 10
P java.lang.ClassCastException Java Basics - Anfänger-Themen 2
D java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 11
S expected java.lang.string but found char Java Basics - Anfänger-Themen 5
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
S Compiler-Fehler java.lang.SecurityException: Invalid signature file digest for Manifest main attributes Java Basics - Anfänger-Themen 5
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
A Compiler-Fehler unreported exception java.lang.Exception; must be caught or declared to be thrown Java Basics - Anfänger-Themen 7
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
F Ich kenn mich nicht mehr aus - 'java.lang.NoSuchMethodError: main' in Applet? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben