Polynom Problem

berti99

Mitglied
Hi,
kann mir jemand sagen wo hier mein Fehler ist:
Ich hab eine Klasse Polynom gechrieben und will in der hier angegebenen Klasse Polynomtest, ein neues Polynom mit den Werten au int b erzeugen.

Fehlermeldung:
Multiple markers at this line
- Polynom.a cannot be resolved to a type
- Syntax error on token "]", VariableDeclaratorId expected after this
token

Java:
public class PolynomTest {
	
	public static void main(String[]args){
		int b[]={3,2,1};
		
		//Polynom polynom = new Polynom();
		Polynom. a[]= new Polynom[b];	
		
		
	}
}
 
Jetzt hab ich folgenden Folgefehler bei der Ausführung:

Exception in thread "main" java.lang.NullPointerException
at Polynom.<init>(Polynom.java:12)
at PolynomTest.main(PolynomTest.java:8)


Die Klasse Polynom Test:
Java:
public class PolynomTest {
	
	public static void main(String[]args){
		int b[]={3,2,1};
		
		//Polynom polynom = new Polynom();
		Polynom a= new Polynom(b);	
		a.auswerten(2);
		
	}

}

die Polynomklasse:

Java:
public class Polynom {
	
	private int x;
	private int pol[];
		
		public Polynom(int a[]){
			for(int i=a.length-1;i>=0;i--){
				
				int j=0;
				
				this.pol[j]=a[i]*(int)Math.pow(x, i);
				
			j=j+1;	
			}
	}

		public void auswerten(int x){
			this.x=x;
			
				for(int i=0;i<pol.length;i++){
					System.out.println(pol[i]+" + ");
				}
		}		
}
 
Moinsen ein Array fängt bei 0 an zu zählen. Das heißt du musst in deiner letzten Methoden und dort in der schleifen <= einsetzen.


Java:
public void auswerten(int x){
            this.x=x;
            
                for(int i=0;i<[B]=[/B]pol.length;i++){
                    System.out.println(pol[i]+" + ");
                }

grüße

müsste jetzt klappen ^^
ohne gewähr
 
Java:
for(int i=a.length-1;i>=0;i--){
    int j=0;
                
    this.pol[j]=a[i]*(int)Math.pow(x, i);
    j=j+1;  
}

j ist bei dir immer nur 0 .. das heisst du setzt zwar pol[0] aber nie die anderen Elemente, daher die NullPointer beim Auswerten

du kannst auch i als Zähler verwenden .. und könntst auch eigentlich von 0 bis Ende der Daten laufen (also ++ statt --) .. oder muss das so sein!?


@Spin bei <= rennt er zwangsläufig in eine ArrayIndexOutOfBoundsException .. wenn du kein -1 an das length hängst 😉

und viel wichtiger: welchen Wert hat denn x?
 
Zuletzt bearbeitet:
Moinsen ein Array fängt bei 0 an zu zählen. Das heißt du musst in deiner letzten Methoden und dort in der schleifen <= einsetzen.


Java:
public void auswerten(int x){
            this.x=x;
            
                for(int i=0;i<[B]=[/B]pol.length;i++){
                    System.out.println(pol[i]+" + ");
                }

grüße

müsste jetzt klappen ^^
ohne gewähr

da schmeisst er dir im letzten Loop aber mit Sicherheit ne ArrayIndexOutOfBounds Exception.

grüße

edit: also das "=" ist imho quatsch

kurze erklärung noch zu deiner aussage "ein Array fängt bei 0 an zu zählen":
das stimmt schon, aber du instanziierst ein Array, das 3 Felder haben soll, auch nicht mit int[2] (0, 1, 2), sondern ganz normal mit int[3]. array.length gibt genau diesen wert zurück, also die tatsächliche länge vom array. in diesem fall 3, obwohl der höchste index 2 ist, weil das array von 0 anfängt zu counten...

edit2: seh grad.. ich war mal wieder zu langsam 😉
 
Zuletzt bearbeitet:
Ja stimmt 😉 Ich dachte ich würde es sehen 😉 Und ihr habt natürlich vollkommen recht.
<---- digga hat ja jetzt das vermeindlich richtige problem angesprochen .
 

Zurück
Oben