Browse Source

trianglechecker

master
mertb 2 weeks ago
parent
commit
be3cde01d8

+ 2
- 0
prog 3a.iml View File

<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>

+ 19
- 11
src/praktikum01/Zahlenfilter.java View File



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);
} }
} }

+ 72
- 0
src/praktikum02/TriangleChecker.java View File

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
- 0
test/praktikum02/TriangleCheckerTest.java View File

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…
Cancel
Save