# Dreieck Flächenberechnung



## babuschka (16. Jan 2013)

Ich möchte eine Klasse Dreieck schreiben, die testet, ob 3 gegebene Seitenlängen ein Dreieck gegeben.
Wenn ja, will ich die Fläche berechnen und zurückgeben. Wenn nein, will ich eine eigens erstellte Exception NotATriangleException werfen. Mein Programm sieht zur Zeit so aus, aber irgendwo muss  noch ein Fehler stecken...


```
public class Dreieck {
	public static double calculateArea(double a, double b, double c) throws NotATriangleException{
		double ergebnis =0;
		double s=0;
		
		//Pruefe, ob die Seitenlaengen echt positiv sind:
		 if(a<=0.0 || b<=0.0 || c<=0.0){
			throw new NotATriangleException("Mindestens eine Seitenlaenge ist kleiner oder gleich Null, das Dreieck ist nicht konstruierbar!");
		
		}
		 
		//Pruefe, ob Dreieck konstruierbar ist: Nein: Dann NotATriangleException, Ja: Flaechenberechnung
		 
		 //Fall1: Dreieck nicht konstruierbar:
		 else if( (a+b)<=c && (a+c)<=b && (b+c)<=a){
			 throw new NotATriangleException("Dreieck ist nicht konstruierbar!"); 
		 }
			
		
		 //Fall2: Dreieck konstruierbar, Flaechenberechnung:
		else{
			s = (a+b+c)/2;
			ergebnis = Math.sqrt(s*(s-a)*(s-b)*(s-c));
			return ergebnis;
		}
		
	}

}
```


```
public class NotATriangleException extends Exception {
	public NotATriangleException() {
	  super();
    }
	public NotATriangleException(String message){
		super(message);
	}


}
```


----------



## krx (16. Jan 2013)

```
else if( (a+b)<=c && (a+c)<=b && (b+c)<=a){
```
Ich denke, die logische Verknüpfung müsste hier ODER sein, nicht UND.


----------



## Spin (16. Jan 2013)

Hey ho,

schau mal : Dreiecksungleichung

Arbeite doch einfach mit Beträgen ist simpel und schick 
Einfach die mathematische Formel umsetzen und fertig


----------

