# Dreiecksfläche berechnen



## Yoshi86 (13. Nov 2011)

Guten Abend allerseits,

ich habe eine kleine Frage zu meienr Aufgabe. Ich soll eine Klasse Dreieck mit einigen Methoden schreiben. Bin noch nicht ganz fertig. Habe aber schonmal kompilieren lassen um zu schauen, ob alles funktioniert was ich bis jetzt implementiert habe...

Meine Problem ist an der Stelle von der main Methode. In der Methode flaeche() der Klasse Dreieck lasse ich die Fläche berechnen (Die Formel ist leider vorgegeben). In der main Methode möchte ich dann einfach das Ergebnis ausgeben von der Berechnung in flaeche(). Hab da meinen Fehler irgendwie nicht gefunden. Habe ich da Fehler bei der Parameterübergabe? Oder habe ich Fehler bei den Referenzen? Wäre sehr dankbar für einen kleinen Tipp .



```
public class Dreieck{
    double x1, x2, x3, y1, y2, y3;
    //a
    double flaeche(){
        return Math.abs((1/2)*((x1*(y2-y3))+(x2*(y3-y1))+(x3*(y1-y2))));
    }
    
    //b
    double minimalX(){
        return Math.min(x1, x2);
    }
    
    double minimalY(){
        return Math.min(y1, y2);
    }
    
    double maximalX(){
        return Math.max(x1, x2);
    }
    
    double maximalY(){
        return Math.max(y1,y2);
    }
    
    void verschiebe(double dx, double dy){
        x1 = x1 + dx;
        x2 = x2 + dx;
        x3 = x3 + dx;
        y1 = y1 + dy;
        y2 = y2 + dy;
        y3 = y3 + dy;
    }
    
    //c
    
    
    //d
    public static void main(String[] args){
        
        Dreieck d = new Dreieck();
        
        System.out.print("Geben Sie die X-Koordinate des 1. Punktes ein: ");
        d.x1 = Double.parseDouble(System.console().readLine());
        System.out.print("Geben Sie die Y-Koordinate des 1. Punktes ein: ");
        d.y1 = Double.parseDouble(System.console().readLine());
        System.out.print("Geben Sie die X-Koordinate des 2. Punktes ein: ");
        d.x2 = Double.parseDouble(System.console().readLine());
        System.out.print("Geben Sie die Y-Koordinate des 2. Punktes ein: ");
        d.y2 = Double.parseDouble(System.console().readLine());
        System.out.print("Geben Sie die X-Koordinate des 3. Punktes ein: ");
        d.x3 = Double.parseDouble(System.console().readLine());
        System.out.print("Geben Sie die Y-Koordinate des 3. Punktes ein: ");
        d.y3 = Double.parseDouble(System.console().readLine());
        
        System.out.println(" Die Fläche Beträgt: " + d.flaeche());
            
        
    }


}
```


----------



## eRaaaa (13. Nov 2011)

(1/2)*
int /int = int -> 1/2 = 0
Probiere mal 
(1/2.)*


----------



## Yoshi86 (13. Nov 2011)

stimmt . hatte ich total vergessen auf die 1/2 zu achten . Danke dir vielmals hat geklappt.


----------



## Yoshi86 (13. Nov 2011)

Aber noch ne kleine Frage... Ich habe ja in den Methoden minimal..() / maximal..() den Minimum bzw Maximum Wert dreier Variablen berechnen. Hatte es mit Math.min bzw Math.max versucht. Das geht allerdings nicht. In der API hab ich gesehen, dass man Math.min/max nur für zwei Variablen benutzen kann. Ich habe mir deshalb überlegt an der stelle eine for-schleife einzubauen... Wäre das so richtig? oder gibts eine einfachere Lösung?


----------



## eRaaaa (13. Nov 2011)

Benutze die Methode doch einfach nochmal, quasi geschachtelt? 
min(a,min(b,c,))


----------



## Yoshi86 (13. Nov 2011)

danke perfekt


----------

