You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TriangleChecker.java 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3. public class TriangleChecker {
  4. public enum TriangleType {
  5. NONE,
  6. NORMAL,
  7. ISOSCELES, // Gleichschenklig
  8. EQUILATERAL // Gleichseitig
  9. }
  10. public static void main(String[] args) {
  11. Scanner s = new Scanner(System.in);
  12. System.out.println("Geben Sie die Seitenlängen ein.");
  13. float a = enterFloat(s, "a: ");
  14. float b = enterFloat(s, "b: ");
  15. float c = enterFloat(s, "c: ");
  16. s.close();
  17. printAnalysis(a, b, c);
  18. }
  19. // Eingabe einer Seitenlänge
  20. private static float enterFloat(Scanner s, String prompt) {
  21. System.out.print(prompt);
  22. return s.nextFloat();
  23. }
  24. // Ausgabe der ermittelten Dreiecksart
  25. private static void printAnalysis(float a, float b, float c) {
  26. TriangleType type = checkTriangle(a, b, c);
  27. switch (type) {
  28. case NONE:
  29. System.out.println("Kein Dreieck");
  30. break;
  31. case NORMAL:
  32. System.out.println("Dreieck");
  33. break;
  34. case ISOSCELES:
  35. System.out.println("Gleichschenkliges Dreieck");
  36. break;
  37. case EQUILATERAL:
  38. System.out.println("Gleichseitiges Dreieck");
  39. break;
  40. }
  41. }
  42. // Analyse der Dreiecksart
  43. public static TriangleType checkTriangle(float a, float b, float c) {
  44. //find Hypotenuse
  45. float[] tmp = {a, b, c};
  46. Arrays.sort(tmp);
  47. float hypo = tmp[2];
  48. float a1 = tmp[0];
  49. float b1 = tmp[1];
  50. //normal
  51. if (a1 + b1 > hypo) {
  52. //gleichseitig
  53. if (a1 + b1 + hypo == 3 * a1)
  54. return TriangleType.EQUILATERAL;
  55. //gleichschenklig
  56. if (a1 == b1 || b1 == hypo || a1 == hypo)
  57. return TriangleType.ISOSCELES;
  58. return TriangleType.NORMAL;
  59. }
  60. return TriangleType.NONE;
  61. }
  62. }