<exclude-output /> | <exclude-output /> | ||||
<content url="file://$MODULE_DIR$"> | <content url="file://$MODULE_DIR$"> | ||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||||
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" /> | |||||
</content> | </content> | ||||
<orderEntry type="inheritedJdk" /> | <orderEntry type="inheritedJdk" /> | ||||
<orderEntry type="sourceFolder" forTests="false" /> | <orderEntry type="sourceFolder" forTests="false" /> | ||||
<orderEntry type="library" name="junit.jupiter" level="project" /> | |||||
</component> | </component> | ||||
</module> | </module> |
public void filterZahlen(int start, int end) { | public void filterZahlen(int start, int end) { | ||||
for (int i = start; i <= end; i++) { | for (int i = start; i <= end; i++) { | ||||
if (istDurchFuenfTeilbar(i)) { | |||||
if (checkDivisibleBy5(i)) { | |||||
System.out.println(i + " ist durch 5 teilbar!"); | System.out.println(i + " ist durch 5 teilbar!"); | ||||
} | } | ||||
if (endetAufNeun(i)) { | |||||
if (checkEndsWith9(i)) { | |||||
System.out.println(i + " endet auf 9!"); | System.out.println(i + " endet auf 9!"); | ||||
} | } | ||||
if (ergibtMitVorgaengerDurchDreiTeilbareSumme(i)) { | |||||
if (checkSumDivisibleBy3(i, i - 1)) { | |||||
int vorgaenger = i - 1; | int vorgaenger = i - 1; | ||||
int summe = i + vorgaenger; | int summe = i + vorgaenger; | ||||
System.out.println(i + " und " + vorgaenger + " addiert ergeben " + summe + " und " + summe + " ist durch 3 teilbar."); | 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; | |||||
} | |||||
public static boolean checkEndsWith9(int number) { | |||||
return number % 10 == 9; | |||||
} | } | ||||
private boolean endetAufNeun(int zahl) { | |||||
return zahl % 10 == 9; | |||||
public static boolean checkSumDivisibleBy3(int number, int previousNumber) { | |||||
return (number + previousNumber) % 3 == 0; | |||||
} | } | ||||
private boolean ergibtMitVorgaengerDurchDreiTeilbareSumme(int zahl) { | |||||
int vorgaenger = zahl - 1; | |||||
int summe = zahl + vorgaenger; | |||||
return summe % 3 == 0; | |||||
public static boolean filter(int number, int previousNumber) { | |||||
return !checkDivisibleBy5(number) && | |||||
!checkEndsWith9(number) && | |||||
!checkSumDivisibleBy3(number, previousNumber); | |||||
} | } | ||||
} | } |
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; | |||||
} | |||||
} |
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)); | |||||
} | |||||
} |