From 9e93d39d95def04e88f2de14347fdd63a44eb577 Mon Sep 17 00:00:00 2001 From: Thomas Smits Date: Wed, 6 May 2026 13:22:32 +0200 Subject: [PATCH] Update of exercises --- Assignment_009/img/rabbit.jpg | Bin 0 -> 85211 bytes Assignment_009/readme.md | 71 +++++++++++++++++ Assignment_010/readme.md | 11 +++ readme.md | 2 + .../java/pr2/algorithmen/rnd/DrawRandom.java | 6 +- .../exceptions/fibonacci/FibBerechner.java | 72 ++++++++++++++++++ .../exceptions/fibonacci/FibException.java | 9 +++ .../fibonacci/impl/FibBerechnerFactory.java | 48 ++++++++++++ .../exceptions/fibonacci/test/Benchmark.java | 15 ++++ 9 files changed, 232 insertions(+), 2 deletions(-) create mode 100644 Assignment_009/img/rabbit.jpg create mode 100644 Assignment_009/readme.md create mode 100644 Assignment_010/readme.md create mode 100644 sources/src/main/java/pr2/exceptions/fibonacci/FibBerechner.java create mode 100644 sources/src/main/java/pr2/exceptions/fibonacci/FibException.java create mode 100644 sources/src/main/java/pr2/exceptions/fibonacci/impl/FibBerechnerFactory.java create mode 100644 sources/src/main/java/pr2/exceptions/fibonacci/test/Benchmark.java diff --git a/Assignment_009/img/rabbit.jpg b/Assignment_009/img/rabbit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cf4a5afc404a8d1ac15899f593485c0061ca453 GIT binary patch literal 85211 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%0AG@A)N(wN(w<*_F@{Mk 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 literal 0 HcmV?d00001 diff --git a/Assignment_009/readme.md b/Assignment_009/readme.md new file mode 100644 index 0000000..0e3086a --- /dev/null +++ b/Assignment_009/readme.md @@ -0,0 +1,71 @@ +# Was hoppelt den da? + +**🎓 Benotetes Assignment 🎓** + +📆 **Fällig: 19.05.2026** 📆 + +Nachdem Sie den Reptiloiden "Never gonna give you up" vorgesungen haben und ein Bild von Rick Astley entgegengehalten, sind diese wie zu Stein erstarrt und Sie können aus der Höhle flüchten. Hinter sich hören Sie noch das Grunzen und Schreien der Echsenwesen und glauben auch die Stimme von Mark Zuckerberg zu vernehmen. Nie wieder Facebook, Instagram und WhatsApp – das war einfach zu viel. In Zukunft holen Sie sich Ihren Dopamin-Kick nur noch bei TikTok. + +Geschafft! Sie sind an der Erdoberfläche angekommen und schlagen sich nach Hause durch. Die Reise dauert durchaus eine Weile, auch wegen der ständig verspäteten Züge. Als Sie ankommen, brauchen Sie erst einmal etwas Urlaub und Entspannung. + +Also buchen Sie einen schönen Urlaub in den Alpen. Von Ihrem Zimmer haben Sie einen wunderbaren Blick auf die Wiesen und natürlich die Berge. Das einzige Problem: Es gibt kein Internet und damit entfallen die ganzen schönen Online-Spiele und das Netflixen komplett. Sie tun also das, was man in solch einer Situation macht, und schauen aus dem Fenster. + + + +Sie sehen ein Kaninchen, das freudig über die Wiese hoppelt. "Ach, wie schön die Natur ist", denken Sie und seufzen entspannt. + +Während Sie so den Kaninchen zuschauen, denken Sie an Fibonacci und den Biologieunterricht in der Schule. Dort haben Sie gelernt, dass die Größe einer Kaninchenpopulation – solange man keine davon erlegt und isst (lecker) – der Folge der Fibonacci-Zahlen folgt. Da sowieso nichts zu tun ist, setzen Sie sich in und programmieren ein entsprechendes, kleines Programm. + +Die Fibonacci-Zahlen sind rekursiv definiert als: + +1. F_0 = 0 +2. F_1 = 1 +3. F_n = F_{n-1} + F_{n-2} + +Damit ist der Anfang der Fibonacci-Folge: + +| n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +|-----|---|---|---|---|---|---|---|----|----|----| +| F_n | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | + +## Fibonacci-Berechnung + +Gehen Sie in das Paket [pr2.exceptions.fibonacci](../sources/src/main/java/pr2/exceptions/fibonacci/), in welchem eine Berechnung der Fibonacci-Zahlen durchgeführt wird. + +Das Interface `FibBerechner` für die Fibonacci-Berchnung ist bereits gegeben. + +Fehler, die bei der Berechnung von Fibonacci-Zahlen auftreten, müssen über Subklassen der Ausnahme `FibException` signalisiert werden. Welche Sie hier brauchen, können Sie über die Javadoc des Interfaces erfahren. Sie müssen die Ausnahmen den Methoden des Interfaces hizufügen. + +### Rekursive Berechnung + +Implementieren Sie das Interface mit einer entsprechenden Klasse `FibBerechnerRekursiv`. Verwenden Sie zur Berechnung der Fibonacci-Zahlen einen rekursiven Algorithmus und widerstehen Sie der Versuchung, die Berechnung zu optimieren. + +Diese Klasse ist **nicht** `public` und Instanzen können nur über die Factory erzeugt werden. + +### Iterative Berechnung + +Analog zur rekursiven Berechnung, schreiben Sie eine weitere Klasse `FibBerechnerIterativ`, welche einen iterativen Algorithmus zur Bestimmung verwendet. + +Diese Klasse ist **nicht** `public` und Instanzen können nur über die Factory erzeugt werden. + +### Verwendung einer Tabelle + +Optimieren Sie die Implementierung weiter, indem Sie eine Klasse `FibBerechnerTabelle` schreiben, welche die Zahlen gar nicht mehr berechnet, sondern eine Tabelle verwendet, welche die korrekten Zahlen enthält. + +Diese Klasse ist **nicht** `public` und Instanzen können nur über die Factory erzeugt werden. + +### Factory + +Schreiben Sie eine Factory-Klasse `FibBerechnerFactory` mit deren Hilfe man eine Instanz einer Implementierung von `FibBerechner` erzeugen kann. Verbergen Sie die konkrete Implementierung vor dem Verwender und stellen Sie sicher, dass er nur das Interface verwenden kann. Zur Auswahl der Implementierung wird eine Enumeration verwendet. Schauen Sie sich die vorgegebene [Klasse](../sources/src/main/java/pr2/exceptions/fibonacci/impl/FibBerechnerFactory.java) genau an. + +### Test + +Schreiben Sie automatisierte JUnit-Tests im Paket `pr2.exceptions.fibonacci.test`, welche alle drei Implementierungen testen. Provozieren Sie auch alle denkbaren Fehler der Methoden und überprüfen Sie, ob die richtigen Ausnahmen geworfen werden. + +### Benchmark + +Schreiben Sie eine Klasse `Benchmark`, welche die Perfomance der drei Implementierungen mit den in dem folgenden Array enthaltenen Zahlen: `{ 5, 6, 7, 8, 9, 30, 35, 38, 38, 38 }` testet. + +Welche Implementierung ist am schnellsten? + +**Tipp:** Denken Sie daran, keinen Code zu duplizieren und führen Sie gegebenenfalls weitere Klasse ein, um dies zu vermeiden. Erinnern Sie sich an das Template-Method-Pattern aus der Vorlesung. \ No newline at end of file diff --git a/Assignment_010/readme.md b/Assignment_010/readme.md new file mode 100644 index 0000000..bacfba8 --- /dev/null +++ b/Assignment_010/readme.md @@ -0,0 +1,11 @@ +# Live-Testat + +**🎓 Benotetes Assignment 🎓** + +📆 **Fällig: 13.05.2026** 📆 + +Am **13.05.2025** findet um 12:00 Uhr ein **Live-Testat** statt. Hierbei müssen Sie eine kleine Programmieraufgabe lösen. Das Live-Testat ist auf 60 Minuten angelegt. + +Da diese Aufgabe alleine und nicht im Team ausgeführt wird, bringen Sie bitte einen Laptop (so vorhanden) mit, auf dem Eclipse installiert ist. + +Falls Sie keinen Rechner mitbringen können, haben Sie die Möglichkeit, einen der Poolrechner zu benutzen, d.h. das Laptop ist nicht zwingend notwendig. \ No newline at end of file diff --git a/readme.md b/readme.md index 18754c5..7635d7f 100644 --- a/readme.md +++ b/readme.md @@ -25,6 +25,8 @@ Wichtige Einstellungen für Eclipse sind [hier](help/eclipse.md) beschrieben. | 6. | 15.04.2026 | [Racewars](Assignment_006/readme.md) | **28.04.2026** | | 7. | 22.04.2026 | [Live-Testat](Assignment_007/readme.md) | **22.04.2026** | | 8. | 29.04.2026 | [Ein Traum in Zucker oder kann ich dem Zufallsgenerator trauen?](Assignment_008/readme.md) | **05.05.2026** | +| 9. | 06.05.2026 | [Was hoppelt den da?](Assignment_009/readme.md) | **19.05.2026** | +| 10. | 13.05.2026 | [Live-Testat](Assignment_010/readme.md) | **13.05.2026** | ## 🏛️ Aufbau der Veranstaltung diff --git a/sources/src/main/java/pr2/algorithmen/rnd/DrawRandom.java b/sources/src/main/java/pr2/algorithmen/rnd/DrawRandom.java index 37ae492..57e126b 100644 --- a/sources/src/main/java/pr2/algorithmen/rnd/DrawRandom.java +++ b/sources/src/main/java/pr2/algorithmen/rnd/DrawRandom.java @@ -15,7 +15,7 @@ public class DrawRandom { private static final int W = 100; private static final int H = 100; - private static final int I = 5_000_000; + private static final int I = 50_000_000; private static void generate(RandomGeneratorFactory factory, String fn) throws IOException { @@ -65,7 +65,7 @@ public class DrawRandom { int x = i % W; int y = i / W; - int gray = (int) ((c[i] / (double) max)); + int gray = (int) ((c[i] / (double) max) * 255); int rgb = gray * 65536 + gray * 256 + gray; image.setRGB(x, y, rgb); @@ -77,6 +77,8 @@ public class DrawRandom { public static void main(String[] args) throws Exception { generate(StandardRandomGenerator::new, "standard_random.png"); + generate(SecRandomGenerator::new, "secure_random.png"); + generate(SuperSecRandomGenerator::new, "super_secure_random.png"); System.out.println("Alle Bilder erfolgreich erzeugt."); } } diff --git a/sources/src/main/java/pr2/exceptions/fibonacci/FibBerechner.java b/sources/src/main/java/pr2/exceptions/fibonacci/FibBerechner.java new file mode 100644 index 0000000..a51e6d3 --- /dev/null +++ b/sources/src/main/java/pr2/exceptions/fibonacci/FibBerechner.java @@ -0,0 +1,72 @@ +package pr2.exceptions.fibonacci; + +/** + * Interface für alle Klassen, die Fibonacci-Zahlen berechnen können. + */ +public interface FibBerechner { + + /** + * Die minimale Zahl, welche in eine Fibonacci-Zahl umgewandelt werden kann. + */ + int MIN_FIB = 2; + + /** + * Die maximale Zahl, welche in eine Fibonacci-Zahl umgewandelt werden kann. + */ + int MAX_FIB = 40; + + /** + * Berechnet die Fibonacci-Zahl zu der gegebenen Zahl n. Die Fibonacci-Zahl + * ist definiert als F(0)=0, F(1)=1, F(n)= F(n-1) + F(n-2). + * + * Achtung: Die Methode kann nur Fibonacci-Zahlen für + * {@link #MIN_FIB} <= n <= {@link #MAX_FIB} berechnen. + * + * @param n Zahl, zu der die Fibonacci-Zahl gefunden werden soll + * @return Fibonacci-Zahl zu {@code n} + * @throws FibNumberOutOfBoundsException Wird geworfen, wenn n nicht im + * berechenbaren Bereich liegt. + * @throws FibNegativeNumberException Wird geworfen, wenn der Eingabewert + * negativ ist. + */ + int fib(int n); + + /** + * Gibt ein Array zurück, in dem alle Werte aus der Eingabe durch die + * entsprechende Fibonacci-Zahl ersetzt wurden. + * + * @param numberArray Eingabedaten, die umgewandelt werden sollen + * @return korrespondierende Fibonacci-Zahlen in einem array + * @throws FibNumberOutOfBoundsException Wird geworfen, wenn mindestens ein + * Element des Arrays nicht im berechenbaren Bereich + * liegt. + @throws FibNegativeNumberException Wird geworfen, wenn der Eingabewert + * negativ ist. + */ + int[] fib(int[] numberArray); + + /** + * Liefert zu einer gegebenen Fibonacci-Zahl die zugehörige Zahl n, aus + * der die Fibonacci-Zahl berechnet werden kann. D.h. diese Methode + * ist die Umkehrfunktion von {@link FibBerechner#fib(int)}. + * + * @param fibNumber Fibonacci-Zahl, die zurückgeführt werden soll + * @return die ursprüngliche Zahl + * @throws FibNotAFibonacciNumberException wenn der übergebene Parameter + * keine Fibonacci-Zahl ist, wird die Ausnahme geworfen. + */ + int reverseFib(int fibNumber); + + /** + * Liefert zu einem Array von Fibonacci-Zahlen die zugehörigen Zahlen n, aus + * denen die Fibonacci-Zahl berechnet werden kann. D.h. diese Methode + * ist die Umkehrfunktion von {@link FibBerechner#fib(int[])}. + * + * @param fibNumbers Fibonacci-Zahlen, die zurückgeführt werden sollen + * @return die ursprünglichen Zahlen als Array + * @throws FibNotAFibonacciNumberException wenn das Array Zahlen enthält, + * die keine Fibonacci-Zahlen sind oder die außerhalb + * des Wertebereichs liegen. + */ + int[] reverseFib(int[] fibNumbers); +} diff --git a/sources/src/main/java/pr2/exceptions/fibonacci/FibException.java b/sources/src/main/java/pr2/exceptions/fibonacci/FibException.java new file mode 100644 index 0000000..b12aac6 --- /dev/null +++ b/sources/src/main/java/pr2/exceptions/fibonacci/FibException.java @@ -0,0 +1,9 @@ +package pr2.exceptions.fibonacci; + +/** + * Die Ausnahme, die geworfen wird, wenn die Fibonacci-Zahlen nicht + * berechnet werden können. + */ +public abstract class FibException extends Exception { + +} diff --git a/sources/src/main/java/pr2/exceptions/fibonacci/impl/FibBerechnerFactory.java b/sources/src/main/java/pr2/exceptions/fibonacci/impl/FibBerechnerFactory.java new file mode 100644 index 0000000..84947c9 --- /dev/null +++ b/sources/src/main/java/pr2/exceptions/fibonacci/impl/FibBerechnerFactory.java @@ -0,0 +1,48 @@ +package pr2.exceptions.fibonacci.impl; + +import pr2.exceptions.fibonacci.FibBerechner; + +/** + * Factory für die Fibonacci Berechner. Diese Klasse ist absichtlich nicht als + * static factory modelliert, um sie erweiterbar zu halten. + */ +public class FibBerechnerFactory { + + /** + * Enumeration zur Auswahl der jeweiligen Implementierung. + */ + public enum BerechnerTyp { + /** + * Rekursive Berechnung. + */ + REKURSIV, + + /** + * Berechnung mit Tabelle. + */ + TABELLE, + + /** + * Iterative Berechnung. + */ + ITERATIV; + } + + /** + * Erzeugt eine neue Factory für Fibonacci-Berechner. + */ + public FibBerechnerFactory() { + // nichts zu initialisieren + } + + /** + * Erzeugt einen Fibonacci-Berechner entsprechend dem gewünschten Typ. + * + * @param berechnerTyp Typ des Fibonacci-Berechners + * @return den gewünschten Fibonacci-Berechner + */ + public FibBerechner createFibBerechner(BerechnerTyp berechnerTyp) { + + return null; + } +} diff --git a/sources/src/main/java/pr2/exceptions/fibonacci/test/Benchmark.java b/sources/src/main/java/pr2/exceptions/fibonacci/test/Benchmark.java new file mode 100644 index 0000000..7ebe142 --- /dev/null +++ b/sources/src/main/java/pr2/exceptions/fibonacci/test/Benchmark.java @@ -0,0 +1,15 @@ +package pr2.exceptions.fibonacci.test; + +import pr2.exceptions.fibonacci.FibException; + +public class Benchmark { + + /** + * Testdaten. + */ + public static final int[] TEST_DATEN = {5, 6, 7, 8, 9, 30, 35, 38, 38, 38}; + + + public static void main(String[] args) throws FibException { + } +}