programmieren-1-java/uebungen/u14/Winkel.java

44 lines
1.6 KiB
Java

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;
}
}