diff --git a/Prog A.iml b/Prog A.iml
index 31b127f..8910f6d 100644
--- a/Prog A.iml
+++ b/Prog A.iml
@@ -4,6 +4,7 @@
+
@@ -11,5 +12,6 @@
+
\ No newline at end of file
diff --git a/src/Praktikum3/TriangleChecker.java b/src/Praktikum3/TriangleChecker.java
new file mode 100644
index 0000000..2238cd5
--- /dev/null
+++ b/src/Praktikum3/TriangleChecker.java
@@ -0,0 +1,74 @@
+
+package Praktikum3;
+import java.util.Scanner;
+
+public class TriangleChecker {
+
+ public static void main(String[] args) {
+ Scanner s = new Scanner(System.in);
+ System.out.println("Geben Sie die Seitenlängen ein.");
+ float a = enterFloat(s, "a: ");
+ float b = enterFloat(s, "b: ");
+ float c = enterFloat(s, "c: ");
+ s.close();
+ printAnalysis(a, b, c);
+ }
+
+ // Eingabe einer Seitenlänge
+ private static float enterFloat(Scanner s, String prompt) {
+ System.out.print(prompt);
+ return s.nextFloat();
+ }
+
+ // Ausgabe der ermittelten Dreiecksart
+ private static void printAnalysis(float a, float b, float c) {
+ TriangleType type = checkTriangle(a, b, c);
+ switch (type) {
+ case NONE:
+ System.out.println("Kein Dreieck");
+ break;
+ case NORMAL:
+ System.out.println("Dreieck");
+ break;
+ case ISOSCELES:
+ System.out.println("Gleichschenkliges Dreieck");
+ break;
+ case EQUILATERAL:
+ System.out.println("Gleichseitiges Dreieck");
+ break;
+ }
+ }
+
+// Analyse der Dreiecksart
+ public static TriangleType checkTriangle(float a, float b, float c) {
+
+ if (a <= 0 || b <= 0 || c <= 0) {
+ return TriangleType.NONE;
+ }
+
+ if (a + b <= c || a + c <= b || b + c <= a) {
+ return TriangleType.NONE;
+ }
+
+ if (a == b && b == c) {
+ return TriangleType.EQUILATERAL;
+ }
+
+ if (a == b || b == c || a == c) {
+ return TriangleType.ISOSCELES;
+ }
+ return TriangleType.NORMAL;
+ }
+
+
+
+
+
+
+
+ public enum TriangleType {
+ NONE,
+ NORMAL,
+ ISOSCELES, // Gleichschenklig
+ EQUILATERAL // Gleichseitig
+ }}
\ No newline at end of file
diff --git a/src/Praktikum3/ZahlenFilter.java b/src/Praktikum3/ZahlenFilter.java
index b221e80..1e79c3f 100644
--- a/src/Praktikum3/ZahlenFilter.java
+++ b/src/Praktikum3/ZahlenFilter.java
@@ -3,34 +3,34 @@ package Praktikum3;
public class ZahlenFilter {
public void durchlaufenUndPruefen(int maxZahl) {
for (int zahl = 1; zahl <= maxZahl; zahl++) {
- pruefeDurch5Teilbar(zahl);
- pruefeEndetAuf9(zahl);
- pruefeDurch3TeilbarMitVorgaenger(zahl);
+ if (filter(zahl)){
+ System.out.println(zahl + " erfüllt keins der Kriterien ");
+ }
+
}
}
+public static boolean filter(int zahl){
+ return (!istDurch5Teilbar(zahl) && !endetAuf9(zahl) && !istDurch3TeilbarMitVorgaenger(zahl));
+
+
+}
+ public static boolean istDurch5Teilbar(int zahl) {
+ return zahl % 5 == 0;
+ }
- private void pruefeDurch5Teilbar(int zahl) {
- if (zahl % 5 == 0) {
- System.out.println(zahl + " ist durch 5 teilbar!");
- }
- }
- //umwandeln zahlen zu string damit ich mit z.20 auf den letzten Ziffer zugreifen kann
- private void pruefeEndetAuf9(int zahl) {
+ public static boolean endetAuf9(int zahl) {
String zahlAlsString = Integer.toString(zahl);
- char letzteZiffer = zahlAlsString.charAt(zahlAlsString.length()-1);
- if(letzteZiffer == '9'){
- System.out.println(zahl + " endet auf 9!");
- }
+ char letzteZiffer = zahlAlsString.charAt(zahlAlsString.length() - 1);
+ return letzteZiffer == '9';
}
- private void pruefeDurch3TeilbarMitVorgaenger(int zahl) {
+ public static boolean istDurch3TeilbarMitVorgaenger(int zahl) {
if (zahl > 1) {
int vorgaenger = zahl - 1;
int summe = zahl + vorgaenger;
- if (summe % 3 == 0) {
- System.out.println(zahl + " und " + vorgaenger + " addiert ergeben " + summe + " und " + summe + " ist durch 3 teilbar");
- }
+ return summe % 3 == 0;
}
+ return false;
}
public static void main(String[] args) {
@@ -46,4 +46,4 @@ public class ZahlenFilter {
ZahlenFilter pruefung = new ZahlenFilter();
pruefung.durchlaufenUndPruefen(maxZahl);
}
-}
\ No newline at end of file
+}
diff --git a/test/Praktikum3/TriangleCheckerTest.java b/test/Praktikum3/TriangleCheckerTest.java
new file mode 100644
index 0000000..fea385c
--- /dev/null
+++ b/test/Praktikum3/TriangleCheckerTest.java
@@ -0,0 +1,13 @@
+package Praktikum3;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class TriangleCheckerTest {
+
+ @Test
+ void checkTriangle() {
+ assertEquals(TriangleChecker.TriangleType.NORMAL, TriangleChecker.checkTriangle(3, 4, 5 ));
+ }
+}
\ No newline at end of file
diff --git a/test/Praktikum3/ZahlenFilterTest.java b/test/Praktikum3/ZahlenFilterTest.java
new file mode 100644
index 0000000..1d22166
--- /dev/null
+++ b/test/Praktikum3/ZahlenFilterTest.java
@@ -0,0 +1,33 @@
+package Praktikum3;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class ZahlenFilterTest {
+
+ @Test
+ void istDurch3TeilbarMitVorgaenger() {
+ assertTrue (ZahlenFilter.istDurch3TeilbarMitVorgaenger(5));
+ assertFalse(ZahlenFilter.istDurch3TeilbarMitVorgaenger(3));
+ }
+
+ @Test
+ void filter() {
+ assertTrue (ZahlenFilter.filter(3));
+ assertFalse(ZahlenFilter.filter(2));
+ }
+
+ @Test
+ void istDurch5Teilbar() {
+ assertTrue (ZahlenFilter.istDurch5Teilbar(10));
+ assertFalse(ZahlenFilter.istDurch5Teilbar(21));
+ }
+
+ @Test
+ void endetAuf9() {
+ assertTrue (ZahlenFilter.endetAuf9(19));
+ assertFalse(ZahlenFilter.endetAuf9(21));
+
+ }
+}
\ No newline at end of file