praktikum 2: testcode TriangleCheckerNORMAL

This commit is contained in:
2024-11-05 16:20:32 +01:00
parent 43ed9d5a70
commit 0ec28b9db9
5 changed files with 141 additions and 19 deletions
+74
View File
@@ -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
}}
+19 -19
View File
@@ -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);
}
}
}