diff --git a/Calculator.java b/Calculator.java new file mode 100644 index 0000000..c1b9cf9 --- /dev/null +++ b/Calculator.java @@ -0,0 +1,71 @@ +/** + * Ein einfacher Rechner. + */ +public class Calculator { + + /** + * Bildet die Summe aller gerader Zahlen die kleiner oder gleich + * pUpperBound sind. Die Eingabe addEvenNumbers(4) + * ergibt also 2 + 4 = 6. + * + * TODO: Benutze den Debugger, um die beiden Fehler in der Methode zu finden. + * + * @param pUpperBound Obere Grenze der Summe + * @return + */ + public int addEvenNumbers( int pUpperBound ) { + int sum = 0, i = 1; + while( i < pUpperBound ) { + // Nur gerade Zahlen addieren + if( i%2 == 0 ) { + sum += i; + i++; + } + } + return sum; + } + + /** + * Wendet den euklidischen Algorithmus zur Suche des größten gemeinsamen + * Teilers bei zwei positiven ganzen Zahlen an. + * + * TODO: Benutze den Debugger, um den Fehler in der Methode zu finden. + * + * @link https://de.wikipedia.org/wiki/Euklidischer_Algorithmus + * @param pNumberA + * @param pNumberB + * @return + */ + public int ggT( int pNumberA, int pNumberB ) { + if( pNumberA < 0 || pNumberB < 0 ) { + return 0; + } else if( pNumberA == 0 ) { + return pNumberB; + } else { + while( pNumberB > 0 ) { + if( pNumberA < pNumberB ) { + pNumberA -= pNumberB; + } else { + pNumberB -= pNumberA; + } + } + return pNumberA; + } + } + + /** + * Berechnet das kleinste gemeinsame Vielfache zweier positiver Ganzzahlen. + * @link https://de.wikipedia.org/wiki/Kleinstes_gemeinsames_Vielfaches#Berechnung_über_den_größten_gemeinsamen_Teiler_(ggT) + * @param pNumberA + * @param pNumberB + * @return + */ + public int kgV( int pNumberA, int pNumberB ) { + return 0; + + // TODO: + // Implementiere die Methode wie unter dem Link oben beschreiben, + // indem du das kgV mit Hilfe des ggT berechnest. + } + +} diff --git a/CalculatorTest.java b/CalculatorTest.java new file mode 100644 index 0000000..7e20519 --- /dev/null +++ b/CalculatorTest.java @@ -0,0 +1,69 @@ + + +import static org.junit.Assert.*; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Test für die Klasse Calculator. + */ +public class CalculatorTest { + + @Test + public void testAddEvenNumbers() { + Calculator calc = new Calculator(); + + int[][] tests = new int[][]{ + new int[]{0, 0}, + new int[]{1, 0}, + new int[]{4, 6}, + new int[]{5, 6}, + new int[]{24, 156} + }; + for( int i = 0; i < tests.length; i++ ) { + int sum = calc.addEvenNumbers(tests[i][0]); + assertEquals("addEvenNumbers(" + tests[i][0] + ")", tests[i][1], sum); + } + } + + @Test + public void testGgT() { + Calculator calc = new Calculator(); + + int[][] tests = new int[][]{ + new int[]{0, 0, 0}, + new int[]{2, 4, 2}, + new int[]{4, 4, 4}, + new int[]{12, 44, 4}, + new int[]{44, 12, 4}, + new int[]{24, 18, 6}, + new int[]{18, 24, 6}, + new int[]{1, 18, 1}, + new int[]{24, 7, 1} + }; + for( int i = 0; i < tests.length; i++ ) { + int ggt = calc.ggT(tests[i][0], tests[i][1]); + assertEquals("ggT(" + tests[i][0] + "," + tests[i][1] + ")", tests[i][2], ggt); + } + } + + @Test + public void testKgV() { + Calculator calc = new Calculator(); + + int[][] tests = new int[][]{ + new int[]{4, 4, 4}, + new int[]{44, 12, 132}, + new int[]{12, 44, 132}, + new int[]{4, 12, 12}, + new int[]{24, 18, 72}, + new int[]{24, 7, 168} + + }; + for( int i = 0; i < tests.length; i++ ) { + int kgv = calc.kgV(tests[i][0], tests[i][1]); + assertEquals("kgV(" + tests[i][0] + "," + tests[i][1] + ")", tests[i][2], kgv); + } + } +} diff --git a/README.md b/README.md deleted file mode 100644 index 8e3f052..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# oop2 - -Benutzung des Debuggers. \ No newline at end of file diff --git a/README.txt b/README.txt new file mode 100755 index 0000000..1a92acf --- /dev/null +++ b/README.txt @@ -0,0 +1,10 @@ +Simuliert ein rudimentäres Zahlen Tippspiel. + +Jeder Spieler wählt sechs Zahlen zwischen 1 und 10 und versucht +so viele Zahlen wie möglich genau zu treffen. + +Zum starten folgende Schritte ausführen: +1. Ein Objekt der Klasse "TippSpiel" erzeugen und die Anzahl der Spieler angeben. +2. Die Methode "erzeugeSpieler()" ausführen um die Spieler-Objekte zu erstellen. +3. Die Methode "neuesSpiel()" ausführen um neue Tipps abzugeben. +4. Die Methode "zahlenZiehen()" ausführen um Lottozahlen zu ziehen. \ No newline at end of file diff --git a/oop2.iml b/oop2.iml new file mode 100644 index 0000000..45e166e --- /dev/null +++ b/oop2.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/package.bluej b/package.bluej new file mode 100755 index 0000000..77c4b19 --- /dev/null +++ b/package.bluej @@ -0,0 +1,25 @@ +#BlueJ package file +editor.fx.0.height=0 +editor.fx.0.width=0 +editor.fx.0.x=0 +editor.fx.0.y=0 +objectbench.height=66 +objectbench.width=1146 +package.divider.horizontal=0.6 +package.divider.vertical=0.8984700973574409 +package.editor.height=639 +package.editor.width=1032 +package.editor.x=100 +package.editor.y=23 +package.frame.height=777 +package.frame.width=1170 +package.numDependencies=0 +package.numTargets=0 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +readme.height=58 +readme.name=@README +readme.width=47 +readme.x=10 +readme.y=10