Hallo COmmunity,
ich habe 3 verschiedene Methoden, die verschiedene Aufgaben haben. Jetzt nun meine Frage bei allen kommt das Ergebnis 0 raus, obwohl ich die Zahlen umändere etc. an was kann das liegen?
ich habe 3 verschiedene Methoden, die verschiedene Aufgaben haben. Jetzt nun meine Frage bei allen kommt das Ergebnis 0 raus, obwohl ich die Zahlen umändere etc. an was kann das liegen?
Java:
package test;
public class Punkt{
private int x; //Variable x vom Typ int ist nur innerhalb der eigenen Klasse sichtbar da private
private int y; //Variable y vom Typ int ist nur innerhalb der eigenen Klasse sichtbar da private
private String bezeichnung; //Variable bezeichnung vom typ String wird erzeugt
private static int anzahl; //Variable anzahlObjekte vom Typ int wird erzeugt
//leere Konstruktor ohne Parameter
public Punkt() {
anzahl = anzahl + 1; //anzahl wird immer um 1 erhöht, wenn ein OBjekt von diesem Konstrukor erzeugt wird!
}
//Konstruktor mit x, y und String b als Paramter
public Punkt(int x, int y, String b) {
this.x = x; //x wird dem x zugewiesen
this.y = y; //y wird dem y zugewiesen
this.bezeichnung = b; //b wird dem bezeichnung zugewiesen
}
public void berechneAbstand(Punkt p) {
if(0 <= x && x <= 100 && 0 <= y && y <= 100) { //Wenn x=0 und x<=100 und y=0 und <=100, dann führe untere Bedinung aus!
double ddx = p.x - this.x;
double ddy = p.y - this.y;
System.out.println(Math.sqrt(ddx * ddx + ddy * ddy));
} else {
System.out.println("Nur Zahlen zwischen 0 und 100 eingeben!"); //Falls x oder y größer als 100 dann wird diese Zeile ausgegeben!
}
}
//Berechnung des Richtungwinkels zweier Punkte in Altgrad
public void richt(Punkt p) {
if(0 <= x && x <= 100 && 0 <= y && y <= 100) { // Wenn x=0 und x<=100 und y=0 und y<=100 dann führe untere If Anweisung aus!
double dt = 0;
double ddx = p.x - this.x;
double ddy = p.y - this.y;
if (ddy != 0) { // If Anweisung wenn ddy ungleich 0 dann wird die untere Bedinung ausgeführt
dt = Math.atan(ddx / ddy);
// dy ungleich 0, Berechnung Richtungswinkel t
if (ddy < 0) { // Wenn ddy kleiner als 0 dann untere Bedinung ausführen
dt = dt + Math.PI; // +Pi wenn Ay entgegengesetzt
}
} else { // Wenn ddy nicht kleiner als 0 dann wird untere if anweisung ausgeführt
if (ddx != 0) { //Wenn ddx ungleich 0 dann führe untere Bedinung aus
if (ddx > 0) {
dt = 1.0 / 2 * Math.PI;
} else {
dt = 3.0 / 2 * Math.PI;
}
} else {
System.out.println("Falsche Eingabe ddx darf nicht 0 sein!"); // wenn ddy == 0 dann wird Falsche Eingabe ausgegeben!
}
}
dt = dt * 180 / Math.PI;
System.out.println(dt); //Ergebnis dt wird ausgegeben!
}
}
//Berechnung der Dreiecksfläche
public void dreiecksflaeche(Punkt p1, Punkt p2) {
if(0 <= x && x <= 100 && 0 <= y && y <= 100) { //Wenn x=0 oder x<=100 und y=0 und y<=100, dann führe untere Bedinung aus!
double a = Math.sqrt(Math.pow((p1.x - this.x), 2) + Math.pow((p1.y - this.y), 2));
double b = Math.sqrt(Math.pow((p2.x - p1.x), 2) + Math.pow((p2.y - p1.y), 2));
double c = Math.sqrt(Math.pow((p2.x - this.x), 2) + Math.pow((p2.y - this.y), 2));
double summe = (a + b + c) / 2; //Summe wird berechnet
double ergebnis = Math.sqrt(summe * (summe - a) * (summe - b) * (summe - c)); //Endgültige Ergebnis wird berechnet!
System.out.println(ergebnis); //Ergebnis wird ausgegeben!
} else {
System.out.println("Nur Zahlen zwischen 0-100 eingeben!"); //Wenn die If-Anweisung nicht erfüllt wird, wird die Zeile ausgegeben!
}
}
}
Java:
package test;
public class Testklasse {
public static void main(String[] args) {
Punkt p1 = new Punkt(2, 3, "A");
Punkt p2 = new Punkt(4, 5, "B");
p1.berechneAbstand(p2);
p1.dreiecksflaeche(p1, p2);
p2.richt(p2);
}
}