trianglechecker
This commit is contained in:
parent
bc9b69d3b7
commit
be3cde01d8
@ -4,8 +4,10 @@
|
|||||||
<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>
|
@ -9,33 +9,41 @@ public class Zahlenfilter {
|
|||||||
|
|
||||||
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) {
|
public static boolean checkDivisibleBy5(int number) {
|
||||||
return zahl % 5 == 0;
|
return number % 5 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean endetAufNeun(int zahl) {
|
public static boolean checkEndsWith9(int number) {
|
||||||
return zahl % 10 == 9;
|
return number % 10 == 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean ergibtMitVorgaengerDurchDreiTeilbareSumme(int zahl) {
|
public static boolean checkSumDivisibleBy3(int number, int previousNumber) {
|
||||||
int vorgaenger = zahl - 1;
|
return (number + previousNumber) % 3 == 0;
|
||||||
int summe = zahl + vorgaenger;
|
}
|
||||||
return summe % 3 == 0;
|
|
||||||
|
public static boolean filter(int number, int previousNumber) {
|
||||||
|
return !checkDivisibleBy5(number) &&
|
||||||
|
!checkEndsWith9(number) &&
|
||||||
|
!checkSumDivisibleBy3(number, previousNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
72
src/praktikum02/TriangleChecker.java
Normal file
72
src/praktikum02/TriangleChecker.java
Normal file
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
53
test/praktikum02/TriangleCheckerTest.java
Normal file
53
test/praktikum02/TriangleCheckerTest.java
Normal file
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user