Dreiecksberechnung

Status
Nicht offen für weitere Antworten.

TheDestroyer

Aktives Mitglied
Hallo, soll ein Programm schreiben, welches mir den Flächeninhalt und den Umfang berrechnet. Ausserdem soll ein try-catch exception vorhanden sein, falls die eingegebenen Seiten kein Dreieck bilden. Hab hier im Forum auch einen Code gefunden, allerdings klappt der nicht richtig. Kann mir jemand sagen woran es liegt.

Code:
package Übung09;
import algds.IOUtils;

public class Dreieck { 
    
   Dreieck() throws InvalidTriException{ 
      int seitea=IOUtils.readInt(); 
      int seiteb=IOUtils.readInt(); 
      int seitec=IOUtils.readInt(); 
       
                boolean pos=true; 
      if(seitea+seiteb <= seitec)pos=false; 
      if(seiteb+seitec <= seitea)pos=false; 
      if(seitea+seitec <= seiteb)pos=false; 
      if (pos!=true) 
         throw new InvalidTriException("Es wird kein Dreieck aufgespannt"); 
       
   flächeninhalt(seitea,seiteb,seitec); 
        umfang(seitea,seiteb,seitec); 
} 
    
    
   double flächeninhalt(int a,int b,int c){ 
	   int s = ((a+b+c)/2);
   	int area = (s*(s-a)*(s-b)*(s-c));
	return area; 
   } 
    
   int umfang(int a,int b,int c){ 
      int umf = a+b+c;
	return umf; 
   } 

   public static void main(String[] args) { 
            
      try { 
          new Dreieck(); 
       } catch(InvalidTriException ite) { 
          System.err.println(ite.getMessage()); 
          ite.printStackTrace(); 
       }
       
   } 
}

Code:
package Übung09;

public class InvalidTriException extends Exception { 
	   /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public InvalidTriException() { 
	      super(); 
	   } 
	    
	   public InvalidTriException(String err) { 
	      super(err); 
	   } 
	}
 

dieta

Top Contributor
Was klappt nicht richtig?
Berechnet er nicht/falsch? Wenn ja wie falsch?
Macht er gar nichts?Zeigt er dir einen Fehler an?

Poste mal eine _etwas_ genauere Fehlerbeschreibung.
 
S

SlaterB

Gast
statt
flächeninhalt(seitea,seiteb,seitec);

mache z.B.

double fl = flächeninhalt(seitea,seiteb,seitec);
System.out.println("Der Flächeninhalt ist: "+fl);

wenn dir solche Grundlagen aber noch nicht klar sind,
dann solltest du unbedingt vermeiden, selber etwas tun zu müssen ;)
schaue dir Lehrbücher/ Tutorials an, führe Beispielprogramme aus

(nene, selber machen ist schon das beste lernen, eigentlich..)
 
S

SlaterB

Gast
weil du das Programm nicht startest? ;)

na vielleicht liegst auch daran, dass am Anfang eine Benutzereingabe erwartet wird, und das Programm solange nix tut ;)

ersetze
int seitea=IOUtils.readInt();
int seiteb=IOUtils.readInt();
int seitec=IOUtils.readInt();

duch

int seitea = 3;
int seiteb = 4;
int seitec = 5;
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben