This commit is contained in:
Luca Conte 2022-11-10 17:55:07 +01:00
parent d56716ca41
commit c7e805e9cb
2 changed files with 34 additions and 0 deletions

BIN
uebungen/u14/Winkel.class Normal file

Binary file not shown.

View File

@ -3,7 +3,41 @@ import java.util.Scanner;
* Klasse zum Berechnen von Winkeln eines Dreiecks
*/
public class Winkel {
public static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Dieses Programm errechnet die drei Winkel eines Dreiecks.");
double sideA = getSideInput("a");
double sideB = getSideInput("b");
double sideC = getSideInput("c");
System.out.println("alpha = " + determineAngle(sideA, sideB, sideC));
System.out.println("beta = " + determineAngle(sideB, sideC, sideA));
System.out.println("gamma = " + determineAngle(sideC, sideA, sideB));
}
/**
* Druckt die Eingabeaufforderung fuer eine bestimmte Seite und gibt naechsten
* eingegebenen Double zurueck
*/
public static double getSideInput(String sidename) {
System.out.print("Bitte Seitenlänge " + sidename + " eingeben: ");
return console.nextDouble();
}
/**
* Nutzt den Kosinussatz um aus drei Seitenlaengen den Winkel alpha zwischen b und c zu errechnen
* Rueckgabewert ist in Gradmass und mit round1 auf eine Nachkommastelle gerundet
*/
public static double determineAngle(double a, double b, double c) {
return round1(Math.acos((b * b + c * c - a * a)/(2 * b * c)) / Math.PI * 180);
}
/** Rundet eine gegebene Zahl auf eine Nachkommastelle. */
public static double round1(double value) {
if (Double.isNaN(value)) return value;
if (Double.isInfinite(value)) return value;
return Math.round(value * 10) / 10.0;
}
}