Hallo....
muss für die Uni ein Programm bis morgen fertigstellen aber ich komme einfach nicht auf die Lösung .....
Kann mit jemand helfen das Programm lauffähig zu gestalten? Hier mein Programm bisher.... (Aufgabenstellung im Anhang!)
Java:
importjava.util.Scanner;publicclassFunctionality{publicstaticvoidmain(String[] args){Scanner scanA =newScanner(System.in);Scanner scanB =newScanner(System.in);Scanner scanC =newScanner(System.in);System.out.println("Geben Sie den Wert a ein: ");double a = scanA.nextDouble();System.out.println("Geben Sie den Wert b ein: ");double b = scanB.nextDouble();System.out.println("Geben Sie den Wert c ein: ");double c = scanC.nextDouble();System.out.println(istRechtwinkligesDreieck(a,b,c));}publicstaticbooleanistRechtwinkligesDreieck(double a,double b,double c){double hypo =0;if(a<=b && b<c){
hypo = c;if((a*a)+(b*b)==(hypo*hypo)){}else{returnfalse;}if(b<=c && c<a){
hypo = a;if((b*b)+(c*c)==(hypo*hypo)){returntrue;}}else{returnfalse;}{
hypo = b;if((a*a)+(c*c)==(hypo*hypo)){returntrue;}}{returnfalse;}}returnfalse;}}
Würdest du mir das gesamte Programm einmal exemplarisch aufschreiben (kannst ja meine Teile kopieren soweit die richtig sind) damit ich weiß ob das mit den übergabewerten und dem anderen code stimmt? :x
Dein Code ist viel zu lang und komplex, den würde ich ehrlich gesagt verwerfen.
In meinem Beispiel fehlt nur noch eine Zeile zu der Lösung.
Wenn du drei Seiten eines Dreiecks hast, dann hast du ja schon richtig erkannt, dass die Hypotenuse die längste Seite darstellt.
Wenn du deine drei Eingabewerte in ein Array packst und dieses aufsteigend sortierst, dann ist die größte Zahl (die Hypotenuse) am letzten Index vertreten.
Also:
d[0] = Kathete 1.
d[1] = Kathete 2.
d[2] = Hypotenuse.
Jetzt nur noch Pythagoras anwenden und du hast deine Lösung.
Es geht mir mehr um die methoden und die klassen mit Rückgabewerten... als um die Berechnung
Also wo zb. ich die public static istRechwinkliges... hin schreibe. Wo ich die aufrufe. welche parameter wo hin etc...
Dein Code beinhaltet sehr sehr viele syntaktische Fehler .. nutzt du eine IDE oder schreibst du das ganze einfach in einem Editor? Auf jeden Fall solltest du deinen Code mal ordentlich formatieren. (BTW: Code im Forum bitte in Code Tags [code=Java]Dein Code[/code] setzen)
Meiner Meinung nach solltest du deine Lösung nicht verwerfen. Mag sein, dass es nicht die eleganteste Lösung ist, dennoch solltest du definitiv in der Lage sein, die Fehler in deinem Programm zu beheben.
Weiterhin fehlt sowohl bei deiner Lösung, als auch bei der Lösung von @Tarrew die Überprüfung auf ungültige Eingaben.
Deine Aufrufe als solches sind ja eigentlich richtig. Dir fehlen wirklich nur 3 Sachen zum Ziel, die aber alle schon oben erwähnt sind:
- ein Scanner, nicht 3
- Hypotenuse ist die längste der 3 Seiten, du solltest die vielen if und else loswerden
- ungültige Werte (negative Werte, 0, double-Datentyps-Grenzen)
Dein Code ist viel zu lang und komplex, den würde ich ehrlich gesagt verwerfen.
In meinem Beispiel fehlt nur noch eine Zeile zu der Lösung.
Wenn du drei Seiten eines Dreiecks hast, dann hast du ja schon richtig erkannt, dass die Hypotenuse die längste Seite darstellt.
Wenn du deine drei Eingabewerte in ein Array packst und dieses aufsteigend sortierst, dann ist die größte Zahl (die Hypotenuse) am letzten Index vertreten.
Also:
d[0] = Kathete 1.
d[1] = Kathete 2.
d[2] = Hypotenuse.
Jetzt nur noch Pythagoras anwenden und du hast deine Lösung.
Wobei ein komplettes sortieren unnötig ist, da ja lediglich der maximale Wert benötigt wird. Daher reicht es ja vollkommen aus, drei Variablen für Hypotenuse und die zwei Katheten zu haben um dann erst a und b zu prüfen: kleinerer Wert kommt in die erste Kathete und größerer Wert in die Hypotenuse. Danach Hypotenuse und c prüfen um dann ggf. den Wert aus hypotenuse in die 2. kathete zu schreiben eher c in die hypotenuse kommt (ansonsten ist halt c in die 2. kathete zu schreiben).
Aber ein Dreieck hat drei Seiten, die alle einfach nur eine Länge haben. Daher gefällt mir das Speichern in einem Array deutlich besser als in einzelnen Variablen. Zumal die Namen der Variablen irreführend sein können, denn nur weil ich eine Seitenlänge in hypotenuse und die beiden anderen Seiten in kathete1 und kathete2 speichere, sind da ja keine Hypothenuse oder Katheten. Die Namen sind nur zutreffend, wenn es ein rechtwinkliges Dreieck ist....