# Aufgabe über java



## Ligainsider (15. Jan 2015)

Hallo Leute! Ich habe ein kleines Problem und habe statt einer Klausur eine Aufgabe für zu hause bekommen. Da ich erst seit 1/4 Jahr das fach Informatik ablege. 
Hier ist die folgende Aufgabe:

Das Programm "Dreiecksberechnung" nimmt drei Seitenlängen (der Größe nach sortiert) entgegen (die kürzeste Seite zuerst). Es macht dann eine Aussage zur Art des Dreiecks (rechtwinklig, gleichschenklig, gleichseitig) und berechnet den Umfang, die Winkel und die Fläche. 
Erstelle das Programm inkl. grafischer Oberfläche. Alle Berechnungen sollen dabei in eine entsprechende Klasse "Dreieck" ausgelagert werden. 

Bis jetzt habe ich folgendes hinbekommen.


```
public class dreiecksberechnung
    
    {
      public static void main ( String args [] ) {
        double a, b, c, alpha=0, beta=0, gamma=0, A=0, galpha=0, gbeta=0, ggamma=0;
        JConsole fenster = new JConsole ("Dreieck");
        
        try {
          fenster.println ("Programm startet");
          a = fenster.readDouble (" Bitte Wert für Seite a eingeben : ");
          b = fenster.readDouble (" Bitte Wert für Seite b eingeben : ");
          c = fenster.readDouble (" Bitte Wert für Seite c eingeben : ");
          fenster.println ("Programm arbeitet...");
          if ((a+b)>c && (a+c)>b && (b+a)>c && (b+c)>a && (c+a)>b && (c+b)>a ){
            
            alpha = Math.acos((b*b + c*c - a*a) / (2*b*c));
            galpha = alpha*(180/java.lang.Math.PI);
            beta = Math.asin( ( b/a)*(Math.sin(alpha)));
            gbeta = beta*(180/java.lang.Math.PI);
            gamma = java.lang.Math.PI - (alpha+beta);
            ggamma = gamma*(180/java.lang.Math.PI);
            A = 0.5*a*b*Math.sin(gamma); 
          }
          else { 
            fenster.println ("Variablen ergeben kein Dreieck");
            a = fenster.readDouble (" Bitte Wert für Seite a eingeben : ");
            b = fenster.readDouble (" Bitte Wert für Seite b eingeben : ");
            c = fenster.readDouble (" Bitte Wert für Seite c eingeben : ");
            fenster.println ("Programm arbeitet...");
            
          }
        }
        catch (InterruptedException ie ) {}
        fenster.print ( "alpha = ") ;
        fenster.print ( galpha,7,4 ) ;
        fenster.println ("°") ;
        fenster.print ( "beta = " ) ;
        fenster.print ( gbeta,7,4 ) ;
        fenster.println ("°") ;
        fenster.print ( "gamma = " );
        fenster.print ( ggamma,7,4 ) ;
        fenster.println ("°") ;
        fenster.print ( "A = " ) ;
        fenster.print ( A,10,2 ) ;
        fenster.println ("m²") ;
        fenster.println( "Ende des Programms");
      }
    }
    // Ende Komponenten
    
    setVisible(true);
  } // end of public dreiecksberechnung
  
  // Anfang Methoden
  // Ende Methoden
  
  public static void main(String[] args) {
    new dreiecksberechnung("dreiecksberechnung");
    public class Viereck implements Geometry {
      
      private double a;
      private double b;
      
      public Viereck(int a, int b) {
          setUmfang(a,b);
      }
      
      public void setUmfang(int a, int b) {
          this.a = a;
          this.b = b;
        
      }
      public double getUmfang() {
          
          
          return 2*a+2*b;
      }
```

Ich bitte um Hilfe

Danke im Voraus 

ligainsider


----------



## Saheeda (15. Jan 2015)

1. Für Java-Code bitte die Tags benutzen: 
	
	
	
	





```
2. Was genau ist dein Problem oder deine Frage?

3. Was mir auffällt: Du hast einen ziemlich großen Try-Catch-Block drin. Solche Blöcke sollten a) so klein wie möglich sein und b) sollte die gefangene Exception geloggt oder irgendwie ausgegeben werden.
```


----------



## Ligainsider (15. Jan 2015)

Danke für den tipp. Meine Frage ist, ob mir das jemand berichtigen könnte und gegebenenfalls das zeichnen hinzufügen könnte. Es soll hallt so ausgegebne werden, wie es die Aufgabe verlangt


----------



## Saheeda (15. Jan 2015)

Es ist hier nicht üblich, kompletten Code bereitzustellen. 

Inwiefern soll dein Code berichtigt werden? Kommen falsche Ausgaben? Wenn ja: Was erwartest du? Was passiert stattdessen? Welche Fehlermeldungen kommen?

Was soll gezeichnet werden? Ich lese nichts von "malen Sie das Dreieck", sondern nur, dass die berechneten Werte angezeigt werden sollen.


----------



## Ligainsider (15. Jan 2015)

Als fehler kommt dieser 

Compiliere C:\Users\Maxi\Desktop\JAva\Dreieck.java mit Java-Compiler
Dreieck.java:34:5: error: illegal start of expression
    public class Dreieck
    ^
1 error


----------



## Khal Drogo (15. Jan 2015)

Deine Dreieck.java hast du uns nie bereitgestellt 

Mit freundlichen Grüßen
Xelsarion


----------



## Ligainsider (15. Jan 2015)

Man soll halt die erhaltenen werte in einer graphischen oberfläche wiedergeben. Da weis ich nicht was ich machen soll.
Ein kompleter code ist auch gar nicht verlangt. nur eine berichtigung damit es funktionsfähig wird


----------



## Saheeda (15. Jan 2015)

Dann zeig bitte auch mal deine Dreieck-Klasse.

Zu dem obigen Code:
- die Klasse Dreiecksbeziehung hat zwei main-Methoden
- diese Zeile 

```
if ((a+b)>c && (a+c)>b && (b+a)>c && (b+c)>a && (c+a)>b && (c+b)>a ){
```
ergibt keinen Sinn. (a+b)>c ist dasselbe wie (b+a)>c.
- in der zweiten main-Methode ist eine Klasse definiert. Das ist falsch, schreib die in eine eigene Datei. (Ja, es gibt innere Klassen, aber die werden anders definiert und ich würde ich dir für den Anfang dringend davon abraten, überhaupt damit zu arbeiten)
- wozu brauchst du die Viereck-Klasse?
- was sind gAlpha, gBeta und gGamma für Winkel?


Ich habe in Java noch nie ne grafische Oberfläche gebaut, aber zur Textausgabe benutzt man üblicherweise Label, Textboxen o.ä. Du müsstest also mal suchen, wie man die einbindet und mit Text befüllt.
Womöglich hat auch dein JConsole-Objekt eine Methode Write() o.ä.


----------

