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