Vorwort | 5 |
Inhaltsverzeichnis | 13 |
I Arithmetik, Variablen, Wertzuweisungen | 19 |
1 Dreiecksfläche | 20 |
2 Datumsarithmetik | 23 |
2.1 Wochentag | 23 |
2.2 Osterdatum | 24 |
3 Dutzend, Schock, Gros | 26 |
II Kontrollstrukturen | 29 |
4 Median | 30 |
5 Mäxchen | 33 |
6 Flaggen | 35 |
7 Rechtecke | 39 |
8 S-Bahn in Byteburg | 44 |
9 Newton-Verfahren | 49 |
9.1 Approximation der Quadratwurzel | 49 |
9.2 Kubikwurzel | 50 |
10 Zahlenbasis | 52 |
11 Messwerte | 56 |
12 Reihen | 60 |
12.1 Exponentialfunktion | 60 |
12.2 Hyperbolischer Sinus | 62 |
12.3 Umkehrfunktion des hyperbolischen Sinus | 63 |
13 Potenzieren | 64 |
III Algorithmen | 67 |
14 Kompression | 68 |
15 Perfekte und andere Zahlen | 73 |
15.1 Perfekte Zahlen | 73 |
15.2 Befreundete Zahlen | 77 |
15.3 Quersumme | 79 |
15.4 Lychrel-Zahlen | 80 |
15.5 Fröhliche Zahlen | 84 |
16 Binomialkoeffizienten | 87 |
16.1 Iterative Berechnung | 88 |
16.2 Rekursive Berechnung | 89 |
16.3 Pascal'sches Dreieck | 90 |
16.4 Optimierte Berechnung des Pascal'schen Dreiecks | 93 |
17 Teppiche | 95 |
18 Primzahlen | 99 |
18.1 Exakter Primzahltest | 99 |
18.2 Probabilistischer Primzahltest | 101 |
18.3 Primzahlen-Iterator | 103 |
18.4 Goldbach-Vermutung | 105 |
18.5 Generator zu einer Primzahl | 106 |
18.6 Zufallszahlengenerator | 108 |
19 Permutationen | 111 |
19.1 Permutationsvektoren | 111 |
19.2 Permutationsmatrizen | 112 |
19.3 Sudoku | 114 |
20 Kommentar-Zapper | 119 |
20.1 Blockkommentare | 119 |
20.2 Zeilenkommentare | 124 |
21 Mustervergleich | 130 |
21.1 Jokerzeichen | 130 |
21.2 Super-Joker | 131 |
IV Klassen | 133 |
22 Punkte und Dreiecke | 134 |
22.1 Punkte | 134 |
22.2 Dreiecke | 137 |
23 Intervalle | 143 |
24 Uhrzeit | 149 |
25 Große Ganzzahlen | 154 |
26 Polynom | 159 |
26.1 Polynomklasse | 159 |
26.2 Division von Polynomen | 164 |
27 Boolean-Arrays | 167 |
27.1 Direkte Umsetzung | 168 |
27.2 Logische Operatoren | 177 |
28 Josephusring | 183 |
29 E-Camel | 188 |
29.1 Kamele und Karawanen | 188 |
29.2 Robuste Implementierung | 192 |
V Interfaces und Vererbung | 197 |
30 Mobiles | 198 |
30.1 Sterne und Stäbchen | 198 |
30.2 Glitzersterne | 203 |
31 Kobolde | 206 |
31.1 Zahlen-Kobolde | 206 |
31.2 Zähe Kobolde | 208 |
31.3 Kobold-Verhalten | 210 |
31.4 Ehrliche Kobolde | 214 |
32 Widerstandsnetzwerke | 217 |
32.1 Konstante Widerstände | 217 |
32.2 Potenziometer | 223 |
33 Stoppuhren | 227 |
33.1 Basisklasse | 227 |
33.2 Zurücksetzen | 229 |
33.3 Pauseknopf | 231 |
34 Spielkarten | 234 |
35 Zahlenfolgen | 243 |
35.1 Konkrete Folgen | 243 |
35.2 Filter | 246 |
36 Chiffren | 252 |
36.1 Substitutionschiffren | 253 |
36.2 Xor-Substitution | 254 |
36.3 Additive Substitution | 256 |
36.4 Stromchiffren | 256 |
36.5 Diffie-Hellman | 258 |
37 Bäume | 263 |
38 Physikalische Größen | 270 |
38.1 Längen | 270 |
38.2 Allgemeine Größen | 273 |
38.3 Zusammengesetzte Einheiten | 276 |
VI Containerklassen | 281 |
39 Buchstabensammlungen | 282 |
39.1 Sammlung beliebiger Buchstaben | 282 |
39.2 Sammlung ohne Duplikate | 289 |
39.3 Sammlung als Collection | 291 |
40 Vorlesungsverzeichnis | 297 |
41 Römische Zahlen | 300 |
41.1 Klasse für römische Zahlen | 300 |
41.2 Stringdarstellung | 303 |
41.3 Vergleich | 305 |
41.4 Einsatz eines Aufzählungstyps | 308 |
42 Zählerlisten | 314 |
VII I/O, Netzwerke, Nebenläufigkeit | 323 |
43 Textdateien | 324 |
43.1 Textzeilen-Iterator | 324 |
43.2 Zeilentransformator | 328 |
43.3 Textdatei-Trenner | 330 |
44 I/O-Filter | 333 |
44.1 Textposition | 333 |
44.2 Zeichen umdrehen | 337 |
45 Filesystemsuche | 340 |
45.1 Rekursiver Directory-Durchlauf | 340 |
45.2 Directory-Tiefe | 343 |
45.3 Dubletten | 343 |
45.4 Umfang von Verzeichnissen | 345 |
46 Bitstreams | 347 |
46.1 Einfache Bitstreams | 347 |
46.2 Beliebig lange Bitstreams | 352 |
47 Tittle-Tattle | 356 |
48 Watchdog | 361 |
49 Verkehrsüberwachung | 366 |
50 Nameservice | 373 |
50.1 Nameserver | 373 |
50.2 Persistenter Server | 377 |
50.3 Nameclient | 378 |
51 Vorlesungen | 381 |
51.1 Mathe-Vorlesung | 382 |
51.2 Observer mit mehreren Threads | 386 |
51.3 Wait & Notify | 392 |
VIII Generics | 395 |
52 Objektpaare | 396 |
52.1 Generische Klasse | 396 |
52.2 Vergleich von Paaren | 398 |
53 Generische Methoden | 400 |
53.1 No Null | 400 |
53.2 Median | 401 |
53.3 Klon-Armee | 403 |
54 Relationen | 405 |
54.1 Aufgezählte Relation | 405 |
54.2 Reflexivität, Symmetrie und Transitivität | 408 |
54.3 Verkettete Relation | 409 |
55 Ring-Queue | 412 |
56 Listen und Warteschlangen | 417 |
56.1 Geordnete Listen | 417 |
56.2 Geordnete Warteschlangen | 420 |
56.3 Iteratoren | 422 |
57 Algebraische Strukturen | 425 |
57.1 Gruppe, Ring und Körper | 426 |
57.2 Der Körper Z2 | 427 |
57.3 Aufzählungstyp | 430 |
57.4 Der Körper Zp | 431 |
57.5 Polynomringe | 434 |
IX Anhang | 437 |
A Glossar | 438 |
B Schwerpunkte der Aufgaben | 448 |
C Konventionen | 452 |
D Programmfragmente | 459 |
Literaturverzeichnis | 466 |