diff --git a/prog 3a.iml b/prog 3a.iml
index c90834f..5dfd50f 100644
--- a/prog 3a.iml
+++ b/prog 3a.iml
@@ -4,8 +4,10 @@
+
+
\ No newline at end of file
diff --git a/src/praktikum01/Zahlenfilter.java b/src/praktikum01/Zahlenfilter.java
index 7307f07..d04086f 100644
--- a/src/praktikum01/Zahlenfilter.java
+++ b/src/praktikum01/Zahlenfilter.java
@@ -9,33 +9,41 @@ public class Zahlenfilter {
public void filterZahlen(int start, int end) {
for (int i = start; i <= end; i++) {
- if (istDurchFuenfTeilbar(i)) {
+ if (checkDivisibleBy5(i)) {
System.out.println(i + " ist durch 5 teilbar!");
}
- if (endetAufNeun(i)) {
+ if (checkEndsWith9(i)) {
System.out.println(i + " endet auf 9!");
}
- if (ergibtMitVorgaengerDurchDreiTeilbareSumme(i)) {
+ if (checkSumDivisibleBy3(i, i - 1)) {
int vorgaenger = i - 1;
int summe = i + vorgaenger;
System.out.println(i + " und " + vorgaenger + " addiert ergeben " + summe + " und " + summe + " ist durch 3 teilbar.");
}
+
+ if (filter(i, i - 1)) {
+ System.out.println(i + " erfüllt keine der Filterkriterien.");
+ }
}
}
- private boolean istDurchFuenfTeilbar(int zahl) {
- return zahl % 5 == 0;
+ public static boolean checkDivisibleBy5(int number) {
+ return number % 5 == 0;
}
- private boolean endetAufNeun(int zahl) {
- return zahl % 10 == 9;
+ public static boolean checkEndsWith9(int number) {
+ return number % 10 == 9;
}
- private boolean ergibtMitVorgaengerDurchDreiTeilbareSumme(int zahl) {
- int vorgaenger = zahl - 1;
- int summe = zahl + vorgaenger;
- return summe % 3 == 0;
+ public static boolean checkSumDivisibleBy3(int number, int previousNumber) {
+ return (number + previousNumber) % 3 == 0;
+ }
+
+ public static boolean filter(int number, int previousNumber) {
+ return !checkDivisibleBy5(number) &&
+ !checkEndsWith9(number) &&
+ !checkSumDivisibleBy3(number, previousNumber);
}
}
\ No newline at end of file
diff --git a/src/praktikum02/TriangleChecker.java b/src/praktikum02/TriangleChecker.java
new file mode 100644
index 0000000..ec33dee
--- /dev/null
+++ b/src/praktikum02/TriangleChecker.java
@@ -0,0 +1,72 @@
+package praktikum02;
+
+import java.util.Scanner;
+
+public class TriangleChecker {
+
+ public enum TriangleType {
+ NONE,
+ NORMAL,
+ ISOSCELES, // Gleichschenklig
+ EQUILATERAL // Gleichseitig
+ }
+
+
+ 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) {
+ // Überprüfen auf ungültige Seitenlängen
+ if (a <= 0 || b <= 0 || c <= 0 || a + b <= c || a + c <= b || b + c <= a) {
+ return TriangleType.NONE;
+ }
+
+ // Gleichseitiges Dreieck
+ if (a == b && b == c) {
+ return TriangleType.EQUILATERAL;
+ }
+
+ // Gleichschenkliges Dreieck
+ if (a == b || b == c || a == c) {
+ return TriangleType.ISOSCELES;
+ }
+
+ // Normales Dreieck
+ return TriangleType.NORMAL;
+ }
+
+
+}
\ No newline at end of file
diff --git a/test/praktikum02/TriangleCheckerTest.java b/test/praktikum02/TriangleCheckerTest.java
new file mode 100644
index 0000000..1d84499
--- /dev/null
+++ b/test/praktikum02/TriangleCheckerTest.java
@@ -0,0 +1,53 @@
+package praktikum02;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.Test;
+
+public class TriangleCheckerTest {
+ @Test
+ public void testNormalTriangle() {
+ assertEquals(TriangleChecker.TriangleType.NORMAL, TriangleChecker.checkTriangle(3, 4, 5));
+ }
+
+ @Test
+ public void testEquilateralTriangle() {
+ assertEquals(TriangleChecker.TriangleType.EQUILATERAL, TriangleChecker.checkTriangle(3, 3, 3));
+ }
+
+ // Testfall: Eine Seite ist zu lang
+ @Test
+ public void testNoTriangle_OneSideTooLong() {
+ assertEquals(TriangleChecker.TriangleType.NONE, TriangleChecker.checkTriangle(1, 2, 10));
+ }
+
+ // Testfall: Eine andere Seite ist zu lang
+ @Test
+ public void testNoTriangle_SecondSideTooLong() {
+ assertEquals(TriangleChecker.TriangleType.NONE, TriangleChecker.checkTriangle(10, 1, 2));
+ }
+
+ // Testfall: Eine dritte Seite ist zu lang
+ @Test
+ public void testNoTriangle_ThirdSideTooLong() {
+ assertEquals(TriangleChecker.TriangleType.NONE, TriangleChecker.checkTriangle(2, 10, 1));
+ }
+
+ // Testfall: Eine Seite ist negativ
+ @Test
+ public void testNoTriangle_NegativeSide() {
+ assertEquals(TriangleChecker.TriangleType.NONE, TriangleChecker.checkTriangle(-3, 4, 5));
+ }
+
+ // Testfall: Zwei Seiten sind negativ
+ @Test
+ public void testNoTriangle_TwoSidesNegative() {
+ assertEquals(TriangleChecker.TriangleType.NONE, TriangleChecker.checkTriangle(-3, -4, 5));
+ }
+
+ // Testfall: Alle Seiten sind negativ
+ @Test
+ public void testNoTriangle_AllSidesNegative() {
+ assertEquals(TriangleChecker.TriangleType.NONE, TriangleChecker.checkTriangle(-3, -4, -5));
+ }
+
+}
\ No newline at end of file