Inhalt | 7 |
Vorwort | 19 |
Danksagung | 21 |
1 Einleitung | 23 |
1.1 Wozu sollte ich programmieren lernen? | 23 |
1.2 Wie kann mir dieses Buch dabei helfen? | 24 |
1.3 Was muss ich mitbringen? | 24 |
1.4 Wie geht das vonstatten? | 25 |
1.5 Was muss ich sonst noch wissen? | 27 |
2 Einführung in die Programmierung | 29 |
2.1 Warmup | 29 |
2.2 Workout | 33 |
W.2.1 Three-Two-One – Mein erstes Programm | 33 |
W.2.2 Weihnachtsbaum | 35 |
W.2.3 Perlenkette | 37 |
W.2.4 Die erste Zeichnung | 38 |
W.2.5 Raupe Allzeitappetit | 40 |
W.2.6 Klötzchen-Kunst | 41 |
W.2.7 Nachteule | 42 |
W.2.8 Ghettoblaster | 43 |
W.2.9 Hallo Bello! | 45 |
3 Variablen, Datentypen, Operatoren und Ausdrücke | 47 |
3.1 Warmup | 47 |
3.2 Workout | 50 |
W.3.1 Einfache Rechenaufgaben | 50 |
W.3.2 Perlenkette 2.0 | 51 |
W.3.3 Blutalkoholkonzentration | 52 |
W.3.4 Stoffwechselrate | 54 |
W.3.5 Baumstammvolumen | 56 |
W.3.6 Körperoberfläche | 57 |
W.3.7 RGB nach CMYK | 58 |
W.3.8 Tic-Tac-Toe-Spielfeld | 60 |
4 Kontrollstrukturen | 61 |
4.1 Warmup | 61 |
4.2 Workout | 65 |
W.4.1 Maximum bestimmen | 65 |
W.4.2 Summe berechnen | 66 |
W.4.3 Tippspiel | 67 |
W.4.4 PIN-Code-Generator | 68 |
W.4.5 Dominosteine | 69 |
W.4.6 Radialer Farbverlauf | 70 |
W.4.7 Ladevorgang-Rädchen | 71 |
W.4.8 Windrad | 73 |
W.4.9 Rotierte Dreiecke | 74 |
W.4.10 Moderne Kunst | 75 |
W.4.11 Schachbrett | 77 |
W.4.12 Sinuskurve | 78 |
W.4.13 Zahlen-Palindrom | 79 |
W.4.14 Interaktiver Button | 80 |
5 Funktionen | 83 |
5.1 Warmup | 83 |
5.2 Workout | 85 |
W.5.1 Endliches Produkt | 85 |
W.5.2 Fakultät | 86 |
W.5.3 Konfektionsgröße | 87 |
W.5.4 Schaltjahr Prüfung | 88 |
W.5.5 Literzahlen umwandeln | 89 |
W.5.6 LKW-Maut | 90 |
W.5.7 Analoger Uhrzeiger | 91 |
W.5.8 Körperoberfläche 2.0 | 92 |
W.5.9 Sportwetten | 93 |
W.5.10 GPS-Luftlinie | 95 |
W.5.11 IBAN-Generator | 97 |
W.5.12 Sanduhr | 99 |
W.5.13 Der faire Würfel | 100 |
W.5.14 Quadrat mit Kreisausschnitten | 101 |
W.5.15 Wurfparabel | 103 |
W.5.16 Bogenschießen-Spiel | 105 |
6 Arrays | 107 |
6.1 Warmup | 107 |
6.2 Workout | 110 |
W.6.1 Wochentag | 110 |
W.6.2 Tankfüllung | 112 |
W.6.3 Rückwärtsausgabe | 113 |
W.6.4 Bildvergrößerung | 114 |
W.6.5 Partnervermittlung | 115 |
W.6.6 Sitzplatzreservierung | 116 |
W.6.7 Platztausch | 117 |
W.6.8 Bestimmung minimale Distanz | 118 |
W.6.9 Morsecode | 119 |
W.6.10 Endlose Animation | 120 |
W.6.11 Spiegeln | 121 |
W.6.12 Reflexion | 122 |
W.6.13 Greenscreen | 124 |
W.6.14 Bild umdrehen und invertieren | 125 |
W.6.15 Bild mit Schatten | 126 |
W.6.16 Bild rotieren | 127 |
W.6.17 Bildverkleinerung | 128 |
W.6.18 Minimale Punktdistanz | 129 |
W.6.19 Glatte Kurven | 131 |
W.6.20 Bildausschnitt | 133 |
W.6.21 Bild mit Rahmen | 134 |
W.6.22 Memory-Spielfeldgenerator | 135 |
W.6.23 Sudoku-Check | 137 |
W.6.24 Medianfilter | 138 |
7 Strings und Stringverarbeitung | 141 |
7.1 Warmup | 141 |
7.2 Workout | 143 |
W.7.1 String-Kompression | 143 |
W.7.2 Split-Funktion | 144 |
W.7.3 Geldschein-Blütencheck | 145 |
W.7.4 Starkes Passwort | 147 |
W.7.5 E-Mail-Check | 148 |
W.7.6 Prüfen auf eine korrekte Klammerung | 149 |
W.7.7 Sternchenmuster | 150 |
W.7.8 URL-Encoding | 151 |
W.7.9 Telefonbuch bearbeiten | 152 |
W.7.10 Webserver-Antwort verarbeiten | 154 |
W.7.11 IMDB-Einträge verarbeiten | 156 |
W.7.12 Geheimsprache | 157 |
W.7.13 Ähnlich klingende Wörter | 158 |
W.7.14 Textrahmen | 160 |
W.7.15 JSON-Array | 161 |
W.7.16 Barcode-Generator | 162 |
8 Objektorientierung | 165 |
8.1 Warmup | 165 |
8.2 Workout | 168 |
W.8.1 Schrittzähler | 168 |
W.8.2 Body-Mass-Index | 170 |
W.8.3 Songtextsuche | 172 |
W.8.4 Passwortklasse | 173 |
W.8.5 Kopffitness | 175 |
W.8.6 Fernbedienung | 177 |
W.8.7 Stoppuhr | 178 |
W.8.8 Druckerwarteschlange | 179 |
W.8.9 Tic Tac Toe | 181 |
W.8.10 Zwischenablage | 183 |
W.8.11 Temperaturgraph | 185 |
W.8.12 Ambient Light | 187 |
W.8.13 Verschlüsselung | 191 |
W.8.14 Mastermind | 193 |
9 Referenzdatentypen | 195 |
9.1 Warmup | 195 |
9.2 Workout | 197 |
W.9.1 Kreis-Klasse | 197 |
W.9.2 Mathematischer Bruch | 198 |
W.9.3 Highscore-Liste | 199 |
W.9.4 Adressbuch | 201 |
W.9.5 Digitaler Bilderrahmen | 203 |
W.9.6 Musikalbenanwendung | 205 |
W.9.7 Koch-Website | 207 |
W.9.8 Hotelzimmerverwaltung | 209 |
W.9.9 Flughafen-Check-in | 211 |
W.9.10 Polygonzug | 213 |
W.9.11 Twitterwall | 215 |
W.9.12 Fototagebuch | 217 |
W.9.13 Partygäste | 219 |
10 Vererbung | 221 |
10.1 Warmup | 221 |
10.2 Workout | 223 |
W.10.1 Online-Shop | 223 |
W.10.2 Gewässer | 225 |
W.10.3 To-do-Liste | 226 |
W.10.4 Lampen | 228 |
W.10.5 Meeting-Protokoll | 230 |
W.10.6 E-Book | 232 |
W.10.7 Zoo | 234 |
W.10.8 Audioeffekt-Player | 235 |
W.10.9 Fahrtenbuch | 236 |
A Lösungen in Java | 237 |
A.1 Download und Verwendung der elektronischen Lösungen | 237 |
A.1.1 Download von GitHub | 237 |
A.1.2 Öffnen der Programme | 238 |
A.1.3 Tipp: Debugger | 239 |
A.2 Einführung in die Programmierung | 241 |
A.2.1 Three-Two-One – Mein erstes Programm | 241 |
A.2.2 Weihnachtsbaum | 241 |
A.2.3 Perlenkette | 241 |
A.2.4 Die erste Zeichnung | 242 |
A.2.5 Raupe Allzeitappetit | 242 |
A.2.6 Klötzchen-Kunst | 243 |
A.2.7 Nachteule | 244 |
A.2.8 Ghettoblaster | 245 |
A.2.9 Hallo Bello! | 246 |
A.3 Variablen, Datentypen, Operatoren und Ausdrücke | 248 |
A.3.1 Einfache Rechenaufgaben | 248 |
A.3.2 Perlenkette 2.0 | 249 |
A.3.3 Blutalkoholkonzentration | 249 |
A.3.4 Stoffwechselrate | 250 |
A.3.5 Baumstammvolumen | 250 |
A.3.6 Körperoberfläche | 250 |
A.3.7 RGB nach CMYK | 251 |
A.3.8 Tic-Tac-Toe-Spielfeld | 251 |
A.4 Kontrollstrukturen | 252 |
A.4.1 Maximum bestimmen | 252 |
A.4.2 Summe berechnen | 252 |
A.4.3 Tippspiel | 253 |
A.4.4 PIN-Code-Generator | 253 |
A.4.5 Dominosteine | 254 |
A.4.6 Radialer Farbverlauf | 254 |
A.4.7 Ladevorgang-Rädchen | 255 |
A.4.8 Windrad | 255 |
A.4.9 Rotierte Dreiecke | 255 |
A.4.10 Moderne Kunst | 256 |
A.4.11 Schachbrett | 257 |
A.4.12 Sinuskurve | 257 |
A.4.13 Zahlen-Palindrom | 258 |
A.4.14 Interaktiver Button | 259 |
A.5 Funktionen | 261 |
A.5.1 Endliches Produkt | 261 |
A.5.2 Fakultät | 261 |
A.5.3 Konfektionsgröße | 262 |
A.5.4 Schaltjahr Prüfung | 263 |
A.5.5 Literzahlen umwandeln | 264 |
A.5.6 LKW-Maut | 264 |
A.5.7 Analoger Uhrzeiger | 266 |
A.5.8 Körperoberfläche 2.0 | 267 |
A.5.9 Sportwetten | 267 |
A.5.10 GPS-Luftlinie | 268 |
A.5.11 IBAN-Generator | 269 |
A.5.12 Sanduhr | 271 |
A.5.13 Der faire Würfel | 272 |
A.5.14 Quadrat mit Kreisausschnitten | 273 |
A.5.15 Wurfparabel | 274 |
A.5.16 Bogenschießen-Spiel | 275 |
A.6 Arrays | 280 |
A.6.1 Wochentag | 280 |
A.6.2 Tankfüllung | 281 |
A.6.3 Rückwärtsausgabe | 282 |
A.6.4 Bildvergrößerung | 283 |
A.6.5 Partnervermittlung | 284 |
A.6.6 Sitzplatzreservierung | 285 |
A.6.7 Platztausch | 287 |
A.6.8 Bestimmung minimale Distanz | 287 |
A.6.9 Morsecode | 288 |
A.6.10 Endlose Animation | 290 |
A.6.11 Spiegeln | 291 |
A.6.12 Reflexion | 292 |
A.6.13 Greenscreen | 294 |
A.6.14 Bild umdrehen und invertieren | 295 |
A.6.15 Bild mit Schatten | 296 |
A.6.16 Bild rotieren | 298 |
A.6.17 Bildverkleinerung | 299 |
A.6.18 Minimale Punktdistanz | 301 |
A.6.19 Glatte Kurven | 302 |
A.6.20 Bildausschnitt | 303 |
A.6.21 Bild mit Rahmen | 305 |
A.6.22 Memory-Spielfeldgenerator | 306 |
A.6.23 Sudoku-Check | 308 |
A.6.24 Medianfilter | 311 |
A.7 Strings und Stringverarbeitung | 313 |
A.7.1 String-Kompression | 313 |
A.7.2 Split-Funktion | 314 |
A.7.3 Geldschein-Blütencheck | 315 |
A.7.4 Starkes Passwort | 318 |
A.7.5 E-Mail-Check | 319 |
A.7.6 Prüfen auf eine korrekten Klammerung | 320 |
A.7.7 Sternchenmuster | 321 |
A.7.8 URL-Encoding | 323 |
A.7.9 Telefonbuch bearbeiten | 324 |
A.7.10 Webserver-Antwort verarbeiten | 326 |
A.7.11 IMDB-Einträge verarbeiten | 328 |
A.7.12 Geheimsprache | 329 |
A.7.13 Ähnlich klingende Wörter | 330 |
A.7.14 Textrahmen | 331 |
A.7.15 JSON-Array | 332 |
A.7.16 Barcode-Generator | 333 |
A.8 Objektorientierung | 338 |
A.8.1 Schrittzähler | 338 |
A.8.2 Body-Mass-Index | 339 |
A.8.3 Songtextsuche | 340 |
A.8.4 Passwortklasse | 340 |
A.8.5 Kopffitness | 343 |
A.8.6 Fernbedienung | 344 |
A.8.7 Stoppuhr | 345 |
A.8.8 Druckerwarteschlange | 347 |
A.8.9 Tic Tac Toe | 348 |
A.8.10 Zwischenablage | 351 |
A.8.11 Temperaturgraph | 352 |
A.8.12 Ambient Light | 355 |
A.8.13 Verschlüsselung | 357 |
A.8.14 Mastermind | 360 |
A.9 Referenzdatentypen | 363 |
A.9.1 Kreis-Klasse | 363 |
A.9.2 Mathematischer Bruch | 364 |
A.9.3 Highscore-Liste | 365 |
A.9.4 Adressbuch | 367 |
A.9.5 Digitaler Bilderrahmen | 371 |
A.9.6 Musikalbenanwendung | 373 |
A.9.7 Koch-Website | 375 |
A.9.8 Hotelzimmerverwaltung | 378 |
A.9.9 Flughafen-Check-in | 380 |
A.9.10 Polygonzug | 383 |
A.9.11 Twitterwall | 385 |
A.9.12 Fototagebuch | 386 |
A.9.13 Partygäste | 389 |
A.10 Vererbung | 392 |
A.10.1 Online-Shop | 392 |
A.10.2 Gewässer | 395 |
A.10.3 To-do-Liste | 398 |
A.10.4 Lampen | 402 |
A.10.5 Meeting-Protokoll | 403 |
A.10.6 E-Book | 406 |
A.10.7 Zoo | 411 |
A.10.8 Audioeffekt-Player | 413 |
A.10.9 Fahrtenbuch | 416 |
B Lösungen in Python | 419 |
B.1 Download und Verwendung der elektronischen Lösungen | 419 |
B.1.1 Download von GitHub | 419 |
B.1.2 Öffnen der Programme | 419 |
B.2 Einführung in die Programmierung | 421 |
B.2.1 Three-Two-One – Mein erstes Programm | 421 |
B.2.2 Weihnachtsbaum | 421 |
B.2.3 Perlenkette | 421 |
B.2.4 Die erste Zeichnung | 422 |
B.2.5 Raupe Allzeitappetit | 422 |
B.2.6 Klötzchenkunst | 423 |
B.2.7 Nachteule | 424 |
B.2.8 Ghettoblaster | 425 |
B.2.9 Hallo Bello! | 426 |
B.3 Variablen, Datentypen, Operatoren und Ausdrücke | 428 |
B.3.1 Einfache Rechenaufgaben | 428 |
B.3.2 Perlenkette 2.0 | 429 |
B.3.3 Blutalkoholkonzentration | 429 |
B.3.4 Stoffwechselrate | 430 |
B.3.5 Baumstammvolumen | 430 |
B.3.6 Körperoberfläche | 430 |
B.3.7 RGB nach CMYK | 431 |
B.3.8 Tic-Tac-Toe-Spielfeld | 431 |
B.4 Kontrollstrukturen | 432 |
B.4.1 Maximum bestimmen | 432 |
B.4.2 Summe berechnen | 432 |
B.4.3 Tippspiel | 432 |
B.4.4 PIN-Code-Generator | 433 |
B.4.5 Dominosteine | 433 |
B.4.6 Radialer Farbverlauf | 434 |
B.4.7 Ladevorgang-Rädchen | 434 |
B.4.8 Windrad | 435 |
B.4.9 Rotierte Dreiecke | 435 |
B.4.10 Moderne Kunst | 436 |
B.4.11 Schachbrett | 436 |
B.4.12 Sinuskurve | 437 |
B.4.13 Zahlen-Palindrom | 438 |
B.4.14 Interaktiver Button | 439 |
B.5 Funktionen | 440 |
B.5.1 Endliches Produkt | 440 |
B.5.2 Fakultät | 440 |
B.5.3 Konfektionsgröße | 441 |
B.5.4 Schaltjahr Prüfung | 442 |
B.5.5 Literzahlen umwandeln | 442 |
B.5.6 LKW-Maut | 443 |
B.5.7 Analoger Uhrzeiger | 444 |
B.5.8 Körperoberfläche 2.0 | 445 |
B.5.9 Sportwetten | 445 |
B.5.10 GPS-Luftlinie | 446 |
B.5.11 IBAN-Generator | 447 |
B.5.12 Sanduhr | 448 |
B.5.13 Der faire Würfel | 449 |
B.5.14 Quadrat mit Kreisausschnitten | 450 |
B.5.15 Wurfparabel | 451 |
B.5.16 Bogenschießen-Spiel | 452 |
B.6 Arrays | 456 |
B.6.1 Wochentag | 456 |
B.6.2 Tankfüllung | 457 |
B.6.3 Rückwärtsausgabe | 458 |
B.6.4 Bildvergrößerung | 458 |
B.6.5 Partnervermittlung | 460 |
B.6.6 Sitzplatzreservierung | 461 |
B.6.7 Platztausch | 462 |
B.6.8 Bestimmung minimale Distanz | 463 |
B.6.9 Morsecode | 464 |
B.6.10 Endlose Animation | 465 |
B.6.11 Spiegeln | 466 |
B.6.12 Reflexion | 467 |
B.6.13 Greenscreen | 468 |
B.6.14 Bild umdrehen und invertieren | 469 |
B.6.15 Bild mit Schatten | 470 |
B.6.16 Bild rotieren | 472 |
B.6.17 Bildverkleinerung | 473 |
B.6.18 Minimale Punktdistanz | 475 |
B.6.19 Glatte Kurven | 476 |
B.6.20 Bildausschnitt | 477 |
B.6.21 Bild mit Rahmen | 479 |
B.6.22 Memory-Spielfeldgenerator | 480 |
B.6.23 Sudoku-Check | 482 |
B.6.24 Medianfilter | 484 |
B.7 Strings und Stringverarbeitung | 486 |
B.7.1 String Kompression | 486 |
B.7.2 Split-Funktion | 487 |
B.7.3 Geldschein-Blütencheck | 487 |
B.7.4 Starkes Passwort | 489 |
B.7.5 E-Mail-Check | 490 |
B.7.6 Prüfen auf eine korrekten Klammerung | 491 |
B.7.7 Sternchenmuster | 492 |
B.7.8 URL-Encoding | 493 |
B.7.9 Telefonbuch bearbeiten | 493 |
B.7.10 Webserver-Antwort verarbeiten | 495 |
B.7.11 IMDB-Einträge verarbeiten | 496 |
B.7.12 Geheimsprache | 497 |
B.7.13 Ähnlich klingende Wörter | 498 |
B.7.14 Textrahmen | 499 |
B.7.15 JSON-Array | 500 |
B.7.16 Barcode-Generator | 501 |
B.8 Objektorientierung | 504 |
B.8.1 Schrittzähler | 504 |
B.8.2 Body-Mass-Index | 504 |
B.8.3 Songtextsuche | 505 |
B.8.4 Passwortklasse | 506 |
B.8.5 Kopffitness | 508 |
B.8.6 Fernbedienung | 509 |
B.8.7 Stoppuhr | 510 |
B.8.8 Druckerwarteschlange | 511 |
B.8.9 Tic Tac Toe | 512 |
B.8.10 Zwischenablage | 514 |
B.8.11 Temperaturgraph | 516 |
B.8.12 Ambient Light | 518 |
B.8.13 Verschlüsselung | 521 |
B.8.14 Mastermind | 524 |
B.9 Referenzdatentypen | 526 |
B.9.1 Kreis-Klasse | 526 |
B.9.2 Mathematischer Bruch | 527 |
B.9.3 Highscore-Liste | 528 |
B.9.4 Adressbuch | 529 |
B.9.5 Digitaler Bilderrahmen | 532 |
B.9.6 Musikalbenanwendung | 533 |
B.9.7 Koch-Website | 535 |
B.9.8 Hotelzimmerverwaltung | 537 |
B.9.9 Flughafen-Check-in | 539 |
B.9.10 Polygonzug | 541 |
B.9.11 Twitterwall | 542 |
B.9.12 Fototagebuch | 544 |
B.9.13 Partygäste | 546 |
B.10 Vererbung | 549 |
B.10.1 Online-Shop | 549 |
B.10.2 Gewässer | 551 |
B.10.3 To-do-Liste | 554 |
B.10.4 Lampen | 556 |
B.10.5 Meeting-Protokoll | 558 |
B.10.6 E-Book | 560 |
B.10.7 Zoo | 563 |
B.10.8 Audioeffekt-Player | 565 |
B.10.9 Fahrtenbuch | 567 |
C Installation Processing | 571 |
C.1 Einleitung | 571 |
C.2 Windows | 571 |
C.3 Mac OS X | 572 |
C.4 Linux | 573 |
C.5 Aktivierung des Python Mode | 574 |
Leere Seite | 2 |