2
0
Fork 0
Übungen zur Vorlesung Programmieren 2 (PR2)
Go to file
Thomas Smits 175c7303b6 Update of exercises 2025-04-25 14:09:55 +02:00
Abstrakte Klassen_001 Update of exercises 2024-09-15 15:48:58 +02:00
Abstrakte Klassen_002 Update of exercises 2024-09-15 15:48:58 +02:00
Abstrakte_Klassen_001 Update of exercises 2024-11-11 15:11:31 +01:00
Abstrakte_Klassen_002 Update of exercises 2024-11-11 15:11:31 +01:00
Auffrischung_001 Update of exercises 2024-11-11 15:11:31 +01:00
Auffrischung_002 Update of exercises 2024-11-11 15:11:31 +01:00
Auffrischung_003 Update of exercises 2024-11-11 15:11:31 +01:00
Auffrischung_004 Update of exercises 2024-11-11 15:11:31 +01:00
Auffrischung_005 Update of exercises 2024-11-11 15:11:31 +01:00
Auffrischung_006 Update of exercises 2024-11-11 15:11:31 +01:00
Ausnahmen_001 Update of exercises 2024-11-11 15:11:31 +01:00
Ausnahmen_002 Update of exercises 2024-11-11 15:11:31 +01:00
Ausnahmen_003 Update of exercises 2024-11-11 15:11:31 +01:00
Ausnahmen_004 Update of exercises 2024-11-11 15:11:31 +01:00
Ausnahmen_005 Update of exercises 2024-11-11 15:11:31 +01:00
Collections_001 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_002 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_003 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_004 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_005 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_006 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_007 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_008 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_009 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_010 Update of exercises 2025-01-09 16:58:24 +01:00
Collections_011 Update of exercises 2025-01-09 16:58:24 +01:00
Einfuehrung_001 Update of exercises 2024-11-11 15:11:31 +01:00
Einfuehrung_002 Update of exercises 2024-11-11 15:11:31 +01:00
Einfuehrung_003 Update of exercises 2024-11-11 15:11:31 +01:00
Einführung_001 Update of exercises 2024-09-15 15:48:58 +02:00
Einführung_002 Update of exercises 2024-09-15 15:48:58 +02:00
Einführung_003 Update of exercises 2024-09-15 15:48:58 +02:00
Enumerationen_001 Update of exercises 2024-11-11 15:11:31 +01:00
Enumerationen_002 Update of exercises 2024-11-11 15:11:31 +01:00
Enumerationen_003 Update of exercises 2024-11-11 15:11:31 +01:00
Enumerationen_004 Update of exercises 2024-11-11 15:11:31 +01:00
Generische Typen_001 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_002 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_003 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_004 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_005 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_006 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_007 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_008 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_009 Update of exercises 2024-09-15 15:48:58 +02:00
Generische_Typen_001 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_002 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_003 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_004 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_005 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_006 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_007 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_008 Update of exercises 2024-11-27 14:28:12 +01:00
Generische_Typen_009 Update of exercises 2024-11-27 14:28:12 +01:00
Geschachtelte Klassen_001 Update of exercises 2024-09-15 15:48:58 +02:00
Geschachtelte Klassen_002 Update of exercises 2024-09-15 15:48:58 +02:00
Geschachtelte Klassen_003 Update of exercises 2024-09-15 15:48:58 +02:00
Geschachtelte_Klassen_001 Update of exercises 2024-12-08 18:31:39 +01:00
Geschachtelte_Klassen_002 Update of exercises 2024-12-08 18:31:39 +01:00
Geschachtelte_Klassen_003 Update of exercises 2024-12-08 18:31:39 +01:00
Input und Output_001 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_002 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_003 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_004 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_005 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_006 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_007 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_008 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_009 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_010 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_011 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_012 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_013 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_014 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_015 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_016 Update of exercises 2024-09-15 15:48:58 +02:00
Input_und_Output_001 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_002 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_003 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_004 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_005 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_006 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_007 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_008 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_009 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_010 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_011 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_012 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_013 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_014 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_015 Update of exercises 2024-11-20 11:13:15 +01:00
Input_und_Output_016 Update of exercises 2024-11-20 11:13:15 +01:00
Interfaces_001 Update of exercises 2024-11-11 15:11:31 +01:00
Interfaces_002 Update of exercises 2024-11-11 15:11:31 +01:00
Interfaces_003 Update of exercises 2024-11-11 15:11:31 +01:00
Interfaces_004 Update of exercises 2024-11-11 15:11:31 +01:00
Lambdas_001 Update of exercises 2024-12-08 18:31:39 +01:00
Lambdas_002 Update of exercises 2024-12-08 18:31:39 +01:00
Object und Wrapper_001 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_002 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_003 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_004 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_005 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_006 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_007 Update of exercises 2024-09-15 15:48:58 +02:00
Object_und_Wrapper_001 Update of exercises 2024-11-11 15:11:31 +01:00
Object_und_Wrapper_002 Update of exercises 2024-11-11 15:11:31 +01:00
Object_und_Wrapper_003 Update of exercises 2024-11-11 15:11:31 +01:00
Object_und_Wrapper_004 Update of exercises 2024-11-11 15:11:31 +01:00
Object_und_Wrapper_005 Update of exercises 2024-11-11 15:11:31 +01:00
Object_und_Wrapper_006 Update of exercises 2024-11-11 15:11:31 +01:00
Object_und_Wrapper_007 Update of exercises 2024-11-11 15:11:31 +01:00
Reflection_001 Update of exercises 2024-09-15 15:48:58 +02:00
Reflection_002 Update of exercises 2024-09-15 15:48:58 +02:00
Streams_001 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_002 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_003 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_004 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_005 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_006 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_007 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_008 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_009 Update of exercises 2025-01-09 16:58:24 +01:00
Streams_010 Update of exercises 2025-01-09 16:58:24 +01:00
Strukturierung_001 Update of exercises 2024-11-11 15:11:31 +01:00
Strukturierung_002 Update of exercises 2024-11-11 15:11:31 +01:00
Threads_001 Update of exercises 2025-01-09 16:58:24 +01:00
Threads_002 Update of exercises 2025-01-09 16:58:24 +01:00
Threads_003 Update of exercises 2025-01-09 16:58:24 +01:00
Threads_004 Update of exercises 2025-01-09 16:58:24 +01:00
Threads_005 Update of exercises 2025-01-09 16:58:24 +01:00
Threads_006 Update of exercises 2025-01-09 16:58:24 +01:00
Threads_007 Update of exercises 2025-01-09 16:58:24 +01:00
Threads_008 Update of exercises 2025-01-09 16:58:24 +01:00
Vererbung_001 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_002 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_003 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_004 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_005 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_006 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_007 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_008 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_009 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_010 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_011 Update of exercises 2024-11-11 15:11:31 +01:00
Vererbung_012 Update of exercises 2024-11-11 15:11:31 +01:00
help Update of exercises 2024-09-15 15:44:10 +02:00
solutions Update of exercises 2025-04-25 14:09:55 +02:00
sources Update of exercises 2025-01-09 16:58:24 +01:00
readme.md Update of exercises 2025-01-09 16:58:24 +01:00

readme.md

Programmieren 2 (Wintersemester 2024/2025)

👋 Willkommen zum Kurs Programmieren 2

In Programmieren 2 lernen Sie die Programmierung in Java auf einem fortgeschrittenen Niveau. Sie werden alle wichtigen Konzepte von Java kennenlernen und diese in praktischen Übungen anwenden. Hierbei werden Sie in kleinen Teams arbeiten und komplexere, objektorientierte Programme in Java entwickeln. Die dazu nötigen objektorientierten Konzepte (Polymorphie, Vererbung, Interfaces, etc.) werden Sie ebenso im Kurs anwenden, wie die dazu grundlegenden Algorithmen und Datenstrukturen.

🎓 Freiwillige Übungen

Hier finden Sie die freiwilligen Übungen zur Vorlesung Programmieren 2 (PR2). Die Übungen sind unten aufgelistet. Die Spalte Ausgabe hat keine Bedeutung.

Hinweise zur nötigen Softwareausstattung finden Sie hier.

# Kapitel Thema Musterlösung
1. Auffrischung String in Großbuchstaben umwandeln ✅
2. Auffrischung Labeled Break ✅
3. Auffrischung Passwortbewertung ✅
4. Auffrischung printf mit Formatstring ✅
5. Auffrischung Maximum in einem Array suchen ✅
6. Auffrischung Taschenrechner ✅
7. Einführung Java-Coding-Standard anwenden ✅
8. Einführung JavaDoc schreiben ✅
9. Einführung Klasse mit JUnit testen ✅
10. Strukturierung Information-Hiding einer Klasse verbessern ✅
11. Strukturierung Vorhandene Bibliotheken als JAR einbinden ✅
12. Vererbung Final anwenden ✅
13. Vererbung Figur und Rechteck ✅
14. Vererbung Figur erweitern ✅
15. Vererbung Figur noch einmal erweitern ✅
16. Vererbung Konstruktoren schreiben ✅
17. Vererbung Polymorphie einsetzen ✅
18. Vererbung Singleton ✅
19. Vererbung Statische Methoden und Attribute ✅
20. Vererbung Methode überladen ✅
21. Vererbung Methoden überschreiben ✅
22. Vererbung Varag-Methode schreiben ✅
23. Vererbung Vererbung von Figuren ✅
24. Abstrakte Klassen Abstrakte Klassen ✅
25. Abstrakte Klassen Abstrakte Klasse ✅
26. Interfaces Comparable implementieren ✅
27. Interfaces Interface Stack entwerfen ✅
28. Interfaces Interface: Uebersetzer ✅
29. Interfaces Interfaces anwenden und entwerfen ✅
30. Object und Wrapper Deep-Copy mit clone() ✅
31. Object und Wrapper Clone ✅
32. Object und Wrapper equals() und hashCode() implementieren und nutzen ✅
33. Object und Wrapper equals und hashCode ✅
34. Object und Wrapper toString()-Methode implementieren ✅
35. Object und Wrapper Optimierung bei Integer ✅
36. Object und Wrapper Methoden der Wrapper-Klassen ✅
37. Enumerationen Eigene Enumeration schreiben und verwenden ✅
38. Enumerationen Enumeration schreiben ✅
39. Enumerationen Singleton-Eigenschaft von Enumerationen ✅
40. Enumerationen Stein, Papier, Schere, Echse, Spock ✅
41. Ausnahmen Ausnahmen testen ✅
42. Ausnahmen Eigene Ausnahmen schreiben und an entsprechender Stelle werfen ✅
43. Ausnahmen Eigene Exception schreiben ✅
44. Ausnahmen Handle-or-Declare-Regel anwenden ✅
45. Ausnahmen Ausnahmen mit try und catch behandeln. ✅
46. Input und Output BufferedReader zum zeilenweisen Lesen einsetzen ✅
47. Input und Output DataOutputStream ✅
48. Input und Output DataOutputStream durch Serialisierung ersetzen ✅
49. Input und Output Daten mit DataOutputStream und DataInputStream verarbeiten ✅
50. Input und Output Daten mit einem InputStream lesen ✅
51. Input und Output Daten mit einem OutputStream schreiben ✅
52. Input und Output Filesystem-Abstraktion mit File ✅
53. Input und Output Fileattribute lesen ✅
54. Input und Output FilterReader ✅
55. Input und Output Konsolen Input/Output ✅
56. Input und Output Zeilen einer Textdatei zählen ✅
57. Input und Output RandomAccessFile ✅
58. Input und Output Reader verwenden ✅
59. Input und Output Rot13-Verschlüsselung ✅
60. Input und Output Datei zerhacken ✅
61. Input und Output Serialisierung ✅
62. Generische Typen Einen generischen Typ schreiben ✅
63. Generische Typen Generische Klasse Pair schreiben ✅
64. Generische Typen Generische Klasse Pair erweitern: NumberPair ✅
65. Generische Typen Generische Klasse Pair erweitern: SamePair ✅
66. Generische Typen PairList ✅
67. Generische Typen Wildcard benutzen ✅
68. Generische Typen Generische Queue ✅
69. Generische Typen super und extends einsetzen ✅
70. Generische Typen Generische Typen zusammen mit Wildcards einsetzen ✅
71. Geschachtelte Klassen Eigene compare-Methode schreiben ✅
72. Geschachtelte Klassen Innere Klasse Beobachter ✅
73. Geschachtelte Klassen Callback mit anonymer Klasse realisieren ✅
74. Lambdas Comparator als Lambda ✅
75. Lambdas Callback mit Lambda realisieren ✅
76. Geschachtelte Klassen MatrixSuche ✅
77. Lambdas StringTransmogrifier ✅
78. Lambdas StringTransmogrifier erweitern ✅
79. Collections Iterator schreiben ✅
80. Collections Iterator programmieren ✅
81. Collections List<T> und dessen Implementierungen ✅
82. Collections Map<T> verwenden ✅
83. Collections ReverserGeneric ✅
84. Collections Strings umgekehrt sortieren: Reverser ✅
85. Collections Set<T> und dessen Implementierungen ✅
86. Collections CommandLineSorter ✅
87. Collections CommandLineSorter -- Version 2 ✅
88. Collections Comparator<T> verwenden und Objekte sortieren ✅
89. Collections Wörterbuchprogramm ✅
90. Streams Kleinbuchstaben in einem String zählen ✅
91. Streams Buchstaben in einer Liste von Strings zählen ✅
92. Streams Kleinbuchstaben in einem String zählen ✅
93. Streams Liste filtern ✅
94. Streams Streams mit interner Iteration ✅
95. Streams Map und Filter auf Streams ✅
96. Streams Map und Reduce auf Streams ✅
97. Streams Reduce ✅
98. Streams Summe über reduce bestimmen ✅
99. Streams Wörter zählen ✅
100. Threads Fakultät parallel berechnen ✅
101. Threads Thread per interrupt beenden ✅
102. Threads wait und notify benutzen ✅
103. Threads Parallele Ausgaben erzeugen ✅
104. Threads Race-Condition finden und beheben ✅
105. Threads Stack und Heap unterscheiden ✅
106. Threads synchronized verwenden ✅
107. Threads Timer und TimerTask verwenden ✅
108. Reflection Klasse per Reflection analysieren
109. Reflection Objekte per Reflection erzeugen