C
Carsten1312
Gast
Hey ich hab mal ne Frage, ich soll für die Uni ein Polygon schreiben.
wenn ich meinen Code ausführen lasse kommt die Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at Polygon.<init>(Polygon.java:12)
at Polygon.main(Polygon.java:120)
Gemeint sind die Color Zeilen
Ich finde allerdings das Problem nicht.
Kann mir jemand helfen?
wenn ich meinen Code ausführen lasse kommt die Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at Polygon.<init>(Polygon.java:12)
at Polygon.main(Polygon.java:120)
Gemeint sind die Color Zeilen
Ich finde allerdings das Problem nicht.
Kann mir jemand helfen?
Java:
// teilaufgabe 1
public class Polygon {
// teilaufgabe 2
private Point[] p;
// teilaufgabe 3
public Polygon(Point[] points) {
[COLOR="Red"]for (int i = 0; i < p.length; i++) {[/COLOR]
if (p == null) {
System.err.println("Null übergeben");
} else {
if (p[i] == null) {
p[i] = new Point(0, 0);
}
}
}
}
// teilaufgabe 4
public int maximum(String var) {
int maximum = Integer.MIN_VALUE;
if (var == "x") {
for (int i = 0; i < p.length; i++) {
if (p[i].getX() > maximum) {
maximum = p[i].getX();
}
}
} else if (var == "y") {
for (int i = 0; i < p.length; i++) {
if (p[i].getY() > maximum) {
maximum = p[i].getY();
}
}
if (p == null) {
return Integer.MAX_VALUE;
}
}
return maximum;
}
// teilaufgabe 5
// Berechnung?
public int minimum(String var2) {
int minimum = Integer.MAX_VALUE;
if (var2 == "x") {
for (int i = 0; i < p.length; i++) {
if (p[i].getX() < minimum) {
minimum = p[i].getX();
}
}
} else if (var2 == "y") {
for (int i = 0; i < p.length; i++) {
if (p[i].getY() < minimum) {
minimum = p[i].getY();
}
}
if (p == null) {
return Integer.MAX_VALUE;
}
}
return minimum;
}
// teilaufgabe 6
public double singleDistance(Point a, Point b) {
double dist = 0;
if (a == null || b == null) {
return 0;
} else {
dist = Math.sqrt(Math.pow(a.getX() - b.getX(), 2)
+ Math.pow(a.getY() - b.getY(), 2));
return dist;
}
}
// teilaufgabe 7
public double[] distances() {
double[] c = new double[p.length];
if (p.length < 2 || p == null) {
double[] d = new double[0];
return d;
}
for (int i = 0; i < p.length; i++) {
c[i] = singleDistance(p[i], p[i - 1]);
}
return c;
}
// teilaufgabe 8
public void printArray(double[] dist) {
for (int i = 0; i < dist.length; i++) {
if (i == dist.length - 1) {
System.out.println(dist[i]);
} else {
System.out.println(dist[i] + ", ");
}
}
}
// teilaufgabe 9
public double polygonLength() {
double sum = 0;
double einzeldist = 0;
for (int i = 0; i < p.length; i++) {
sum = einzeldist + distances()[i];
}
return sum;
}
// teilaufgabe 10
public static void main(String[] args) {
Point[] points = { new Point(14, 25), new Point(-30, -52),
new Point(2, 1), new Point(66, 42), new Point(21, -12),
new Point(21, -66) };
[COLOR="red"]Polygon e = new Polygon(points);[/COLOR]
System.out.println("Maximum von X" + e.maximum("x"));
System.out.println("Maximum von Y" + e.maximum("y"));
System.out.println("Minimum von X" + e.minimum("x"));
System.out.println("Minimum von Y" + e.minimum("y"));
System.out.println("Einzeldistanzen: ");
e.printArray(e.distances());
System.out.println("Polygonlänge: " + e.polygonLength());
}
}