Luigi Lo Iacono, Stephan Wiefling, Michael Schneider
Programmieren trainieren
Mit über 130 Workouts in Java und Python
Inhalt
6
Vorwort
18
Danksagung
20
1 Einleitung
22
1.1 Wozu sollte ich programmieren lernen?
22
1.2 Wie kann mir dieses Buch dabei helfen?
23
1.3 Was muss ich mitbringen?
23
1.4 Wie geht das vonstatten?
24
1.5 Was muss ich sonst noch wissen?
26
2 Einführung in die Programmierung
28
2.1 Warmup
28
2.2 Workout
32
W.2.1 Three-Two-One – Mein erstes Programm
32
W.2.2 Weihnachtsbaum
33
W.2.3 Perlenkette
35
W.2.4 Die erste Zeichnung
36
W.2.5 Raupe Allzeitappetit
38
W.2.6 Klötzchen-Kunst
39
W.2.7 Nachteule
40
W.2.8 Ghettoblaster
41
W.2.9 Hallo Bello!
43
W.2.10 Haus
44
W.2.11 Daumen
45
3 Variablen, Datentypen, Operatoren und Ausdrücke
46
3.1 Warmup
46
3.2 Workout
49
W.3.1 Einfache Rechenaufgaben
49
W.3.2 Perlenkette 2.0
50
W.3.3 Blutalkoholkonzentration
51
W.3.4 Stoffwechselrate
53
W.3.5 Baumstammvolumen
55
W.3.6 Körperoberfläche
56
W.3.7 RGB nach CMYK
57
W.3.8 Tic-Tac-Toe-Spielfeld
59
W.3.9 Haus mit Garage
60
W.3.10 Fußballtor
61
4 Kontrollstrukturen
64
4.1 Warmup
64
4.2 Workout
68
W.4.1 Maximum bestimmen
68
W.4.2 Summe berechnen
69
W.4.3 Tippspiel
70
W.4.4 PIN-Code-Generator
71
W.4.5 Dominosteine
72
W.4.6 Radialer Farbverlauf
73
W.4.7 Ladevorgang-Rädchen
74
W.4.8 Windrad
76
W.4.9 Rotierte Dreiecke
77
W.4.10 Moderne Kunst
78
W.4.11 Schachbrett
80
W.4.12 Sinuskurve
81
W.4.13 Zahlen-Palindrom
82
W.4.14 Interaktiver Button
83
W.4.15 Ebbe und Flut berechnen
85
W.4.16 Titschender Ball
86
5 Funktionen
88
5.1 Warmup
88
5.2 Workout
90
W.5.1 Endliches Produkt
90
W.5.2 Fakultät
91
W.5.3 Konfektionsgröße
92
W.5.4 Schaltjahr Prüfung
93
W.5.5 Literzahlen umwandeln
94
W.5.6 LKW-Maut
95
W.5.7 Analoger Uhrzeiger
96
W.5.8 Körperoberfläche 2.0
97
W.5.9 Sportwetten
98
W.5.10 GPS-Luftlinie
100
W.5.11 IBAN-Generator
102
W.5.12 Sanduhr
103
W.5.13 Der faire Würfel
104
W.5.14 Quadrat mit Kreisausschnitten
105
W.5.15 Wurfparabel
107
W.5.16 Bogenschießen-Spiel
109
W.5.17 Mondphase berechnen
111
W.5.18 Tortendiagramm
113
W.5.19 Pendelanimation
115
6 Arrays
118
6.1 Warmup
118
6.2 Workout
121
W.6.1 Wochentag
121
W.6.2 Tankfüllung
123
W.6.3 Rückwärtsausgabe
124
W.6.4 Bildvergrößerung
125
W.6.5 Partnervermittlung
126
W.6.6 Sitzplatzreservierung
127
W.6.7 Platztausch
128
W.6.8 Minimale Distanz
129
W.6.9 Morsecode
130
W.6.10 Endlose Animation
131
W.6.11 Spiegeln
132
W.6.12 Reflexion
133
W.6.13 Greenscreen
135
W.6.14 Bild umdrehen und invertieren
136
W.6.15 Bild mit Schatten
137
W.6.16 Bild rotieren
138
W.6.17 Bildverkleinerung
139
W.6.18 Minimale Punktdistanz
140
W.6.19 Glatte Kurven
142
W.6.20 Bildausschnitt
144
W.6.21 Bild mit Rahmen
145
W.6.22 Memory-Spielfeldgenerator
146
W.6.23 Sudoku-Check
148
W.6.24 Medianfilter
149
W.6.25 Geldautomat
151
W.6.26 Postleitzahlen visualisieren
152
W.6.27 Dreiecksfilter
154
7 Strings und Stringverarbeitung
156
7.1 Warmup
156
7.2 Workout
158
W.7.1 String-Kompression
158
W.7.2 Split-Funktion
159
W.7.3 Geldschein-Blütencheck
160
W.7.4 Starkes Passwort
161
W.7.5 E-Mail-Check
162
W.7.6 Prüfen auf eine korrekte Klammerung
163
W.7.7 Sternchenmuster
164
W.7.8 URL-Encoding
165
W.7.9 Telefonbuch bearbeiten
166
W.7.10 Webserver-Antwort verarbeiten
168
W.7.11 IMDB-Einträge verarbeiten
170
W.7.12 Geheimsprache
171
W.7.13 Ähnlich klingende Wörter
172
W.7.14 Textrahmen
174
W.7.15 JSON-Array
175
W.7.16 Barcode-Generator
176
W.7.17 Kennzeichenverarbeitung
178
8 Objektorientierung
180
8.1 Warmup
180
8.2 Workout
183
W.8.1 Schrittzähler
183
W.8.2 Body-Mass-Index
185
W.8.3 Songtextsuche
187
W.8.4 Passwortklasse
188
W.8.5 Kopffitness
190
W.8.6 Fernbedienung
191
W.8.7 Stoppuhr
192
W.8.8 Druckerwarteschlange
193
W.8.9 Tic Tac Toe
195
W.8.10 Zwischenablage
197
W.8.11 Temperaturgraph
198
W.8.12 Ambient Light
200
W.8.13 Verschlüsselung
204
W.8.14 Mastermind
206
W.8.15 Parteistimmen
208
9 Referenzdatentypen
210
9.1 Warmup
210
9.2 Workout
212
W.9.1 Kreis-Klasse
212
W.9.2 Mathematischer Bruch
213
W.9.3 Highscore-Liste
214
W.9.4 Adressbuch
215
W.9.5 Digitaler Bilderrahmen
217
W.9.6 Musikalbenanwendung
218
W.9.7 Koch-Website
220
W.9.8 Hotelzimmerverwaltung
222
W.9.9 Flughafen-Check-in
224
W.9.10 Polygonzug
226
W.9.11 Twitterwall
228
W.9.12 Fototagebuch
230
W.9.13 Partygäste
232
W.9.14 Raumbelegung
234
10 Vererbung
238
10.1 Warmup
238
10.2 Workout
240
W.10.1 Online-Shop
240
W.10.2 Gewässer
242
W.10.3 To-do-Liste
243
W.10.4 Lampen
245
W.10.5 Meeting-Protokoll
246
W.10.6 E-Book
248
W.10.7 Zoo
250
W.10.8 Audioeffekt-Player
251
W.10.9 Fahrtenbuch
252
W.10.10 Webseitengenerator
253
A Lösungen in Java
256
A.1 Download und Verwendung der elektronischen Lösungen
256
A.1.1 Download von GitHub
256
A.1.2 Öffnen der Programme
257
A.1.3 Tipp: Debugger
258
A.2 Einführung in die Programmierung
259
A.2.1 Three-Two-One – Mein erstes Programm
259
A.2.2 Weihnachtsbaum
259
A.2.3 Perlenkette
259
A.2.4 Die erste Zeichnung
260
A.2.5 Nachteule
260
A.2.6 Raupe Allzeitappetit
261
A.2.7 Klötzchen-Kunst
261
A.2.8 Ghettoblaster
262
A.2.9 Hallo Bello!
263
A.2.10 Haus
265
A.2.11 Daumen
265
A.3 Variablen, Datentypen, Operatoren und Ausdrücke
267
A.3.1 Einfache Rechenaufgaben
267
A.3.2 Perlenkette 2.0
268
A.3.3 Blutalkoholkonzentration
268
A.3.4 Stoffwechselrate
269
A.3.5 Baumstammvolumen
269
A.3.6 Körperoberfläche
269
A.3.7 RGB nach CMYK
270
A.3.8 Tic-Tac-Toe-Spielfeld
270
A.3.9 Haus mit Garage
271
A.3.10 Fußballtor
272
A.4 Kontrollstrukturen
274
A.4.1 Maximum bestimmen
274
A.4.2 Summe berechnen
274
A.4.3 Tippspiel
275
A.4.4 PIN-Code-Generator
275
A.4.5 Dominosteine
276
A.4.6 Radialer Farbverlauf
276
A.4.7 Ladevorgang-Rädchen
277
A.4.8 Windrad
277
A.4.9 Rotierte Dreiecke
277
A.4.10 Moderne Kunst
278
A.4.11 Schachbrett
279
A.4.12 Sinuskurve
279
A.4.13 Zahlen-Palindrom
280
A.4.14 Interaktiver Button
281
A.4.15 Ebbe und Flut berechnen
282
A.4.16 Titschender Ball
283
A.5 Funktionen
285
A.5.1 Endliches Produkt
285
A.5.2 Fakultät
285
A.5.3 Konfektionsgröße
286
A.5.4 Schaltjahr Prüfung
287
A.5.5 Literzahlen umwandeln
287
A.5.6 LKW-Maut
288
A.5.7 Analoger Uhrzeiger
289
A.5.8 Körperoberfläche
290
A.5.9 Sportwetten
291
A.5.10 GPS-Luftlinie
292
A.5.11 IBAN-Generator
293
A.5.12 Sanduhr
294
A.5.13 Der faire Würfel
295
A.5.14 Quadrat mit Kreisausschnitten
297
A.5.15 Wurfparabel
298
A.5.16 Bogenschießen-Spiel
299
A.5.17 Mondphase berechnen
303
A.5.18 Tortendiagramm
304
A.5.19 Pendelanimation
306
A.6 Arrays
308
A.6.1 Wochentag
308
A.6.2 Tankfüllung
309
A.6.3 Rückwärtsausgabe
310
A.6.4 Bildvergrößerung
311
A.6.5 Partnervermittlung
312
A.6.6 Sitzplatzreservierung
313
A.6.7 Platztausch
315
A.6.8 Bestimmung minimale Distanz
315
A.6.9 Morsecode
316
A.6.10 Endlose Animation
318
A.6.11 Spiegeln
319
A.6.12 Reflexion
320
A.6.13 Greenscreen
322
A.6.14 Bild umdrehen und invertieren
323
A.6.15 Bild mit Schatten
324
A.6.16 Bild rotieren
326
A.6.17 Bildverkleinerung
327
A.6.18 Minimale Punktdistanz
329
A.6.19 Glatte Kurven
330
A.6.20 Bildausschnitt
331
A.6.21 Bild mit Rahmen
333
A.6.22 Memory-Spielfeldgenerator
334
A.6.23 Sudoku-Check
336
A.6.24 Medianfilter
339
A.6.25 Geldautomat
340
A.6.26 Postleitzahlen visualisieren
341
A.6.27 Dreiecksfilter
342
A.7 Strings und Stringverarbeitung
345
A.7.1 String-Kompression
345
A.7.2 Split-Funktion
346
A.7.3 Geldschein-Blütencheck
347
A.7.4 Starkes Passwort
350
A.7.5 E-Mail-Check
351
A.7.6 Prüfen auf eine korrekte Klammerung
352
A.7.7 Sternchenmuster
353
A.7.8 URL-Encoding
354
A.7.9 Telefonbuch bearbeiten
356
A.7.10 Webserver-Antwort verarbeiten
358
A.7.11 IMDB-Einträge verarbeiten
360
A.7.12 Geheimsprache
361
A.7.13 Ähnlich klingende Wörter
361
A.7.14 Textrahmen
363
A.7.15 JSON-Array
364
A.7.16 Barcode-Generator
365
A.7.17 Kennzeichenverarbeitung
369
A.8 Objektorientierung
371
A.8.1 Schrittzähler
371
A.8.2 Body-Mass-Index
372
A.8.3 Songtextsuche
372
A.8.4 Passwortklasse
373
A.8.5 Kopffitness
376
A.8.6 Fernbedienung
376
A.8.7 Stoppuhr
378
A.8.8 Druckerwarteschlange
380
A.8.9 Tic Tac Toe
381
A.8.10 Zwischenablage
383
A.8.11 Temperaturgraph
385
A.8.12 Ambient Light
388
A.8.13 Verschlüsselung
390
A.8.14 Mastermind
392
A.8.15 Parteistimmen
395
A.9 Referenzdatentypen
397
A.9.1 Kreis-Klasse
397
A.9.2 Mathematischer Bruch
398
A.9.3 Highscore-Liste
399
A.9.4 Adressbuch
401
A.9.5 Digitaler Bilderrahmen
405
A.9.6 Musikalbenanwendung
407
A.9.7 Koch-Website
409
A.9.8 Hotelzimmerverwaltung
412
A.9.9 Flughafen-Check-in
414
A.9.10 Polygonzug
417
A.9.11 Twitterwall
419
A.9.12 Fototagebuch
420
A.9.13 Partygäste
423
A.9.14 Raumbelegung
425
A.10 Vererbung
430
A.10.1 Online-Shop
430
A.10.2 Gewässer
433
A.10.3 To-do-Liste
436
A.10.4 Lampen
440
A.10.5 Meeting-Protokoll
441
A.10.6 E-Book
444
A.10.7 Zoo
449
A.10.8 Audioeffekt-Player
451
A.10.9 Fahrtenbuch
454
A.10.10 Webseitengenerator
456
B Lösungen in Python
462
B.1 Download und Verwendung der elektronischen Lösungen
462
B.1.1 Download von GitHub
462
B.1.2 Öffnen der Programme
462
B.2 Einführung in die Programmierung
464
B.2.1 Three-Two-One - Mein erstes Programm
464
B.2.2 Weihnachtsbaum
464
B.2.3 Perlenkette
464
B.2.4 Die erste Zeichnung
465
B.2.5 Nachteule
465
B.2.6 Raupe Allzeitappetit
466
B.2.7 Klötzchenkunst
466
B.2.8 Ghettoblaster
467
B.2.9 Hallo Bello!
469
B.2.10 Haus
470
B.2.11 Daumen
470
B.3 Variablen, Datentypen, Operatoren und Ausdrücke
472
B.3.1 Einfache Rechenaufgaben
472
B.3.2 Perlenkette 2.0
473
B.3.3 Blutalkoholkonzentration
473
B.3.4 Stoffwechselrate
474
B.3.5 Baumstammvolumen
474
B.3.6 Körperoberfläche
474
B.3.7 RGB nach CMYK
475
B.3.8 Tic-Tac-Toe-Spielfeld
475
B.3.9 Haus mit Garage
476
B.3.10 Fußballtor
477
B.4 Kontrollstrukturen
479
B.4.1 Maximum bestimmen
479
B.4.2 Summe berechnen
479
B.4.3 Tippspiel
479
B.4.4 PIN-Code-Generator
480
B.4.5 Dominosteine
480
B.4.6 Radialer Farbverlauf
481
B.4.7 Ladevorgang-Rädchen
481
B.4.8 Windrad
482
B.4.9 Rotierte Dreiecke
482
B.4.10 Moderne Kunst
482
B.4.11 Schachbrett
483
B.4.12 Sinuskurve
484
B.4.13 Zahlen-Palindrom
485
B.4.14 Interaktiver Button
486
B.4.15 Ebbe und Flut berechnen
486
B.4.16 Titschender Ball
487
B.5 Funktionen
489
B.5.1 Endliches Produkt
489
B.5.2 Fakultät
489
B.5.3 Konfektionsgröße
490
B.5.4 Schaltjahr Prüfung
491
B.5.5 Literzahlen umwandeln
491
B.5.6 LKW-Maut
492
B.5.7 Analoger Uhrzeiger
493
B.5.8 Körperoberfläche
494
B.5.9 Sportwetten
494
B.5.10 GPS-Luftlinie
495
B.5.11 IBAN-Generator
496
B.5.12 Sanduhr
497
B.5.13 Der faire Würfel
498
B.5.14 Quadrat mit Kreisausschnitten
499
B.5.15 Wurfparabel
500
B.5.16 Bogenschießen-Spiel
501
B.5.17 Mondphase berechnen
505
B.5.18 Tortendiagramm
506
B.5.19 Pendelanimation
507
B.6 Arrays
509
B.6.1 Wochentag
509
B.6.2 Tankfüllung
510
B.6.3 Rückwärtsausgabe
511
B.6.4 Bildvergrößerung
511
B.6.5 Partnervermittlung
513
B.6.6 Sitzplatzreservierung
514
B.6.7 Platztausch
515
B.6.8 Bestimmung minimale Distanz
516
B.6.9 Morsecode
517
B.6.10 Endlose Animation
518
B.6.11 Spiegeln
519
B.6.12 Reflexion
520
B.6.13 Greenscreen
521
B.6.14 Bild umdrehen und invertieren
522
B.6.15 Bild mit Schatten
524
B.6.16 Bild rotieren
525
B.6.17 Bildverkleinerung
527
B.6.18 Minimale Punktdistanz
528
B.6.19 Glatte Kurven
529
B.6.20 Bildausschnitt
531
B.6.21 Bild mit Rahmen
532
B.6.22 Memory-Spielfeldgenerator
533
B.6.23 Sudoku-Check
535
B.6.24 Medianfilter
537
B.6.25 Geldautomat
538
B.6.26 Postleitzahlen visualisieren
539
B.6.27 Dreiecksfilter
541
B.7 Strings und Stringverarbeitung
543
B.7.1 String-Kompression
543
B.7.2 Split-Funktion
543
B.7.3 Geldschein-Blütencheck
544
B.7.4 Starkes Passwort
546
B.7.5 E-Mail-Check
547
B.7.6 Prüfen auf eine korrekte Klammerung
548
B.7.7 Sternchenmuster
549
B.7.8 URL-Encoding
550
B.7.9 Telefonbuch bearbeiten
550
B.7.10 Webserver-Antwort verarbeiten
552
B.7.11 IMDB-Einträge verarbeiten
553
B.7.12 Geheimsprache
554
B.7.13 Ähnlich klingende Wörter
555
B.7.14 Textrahmen
556
B.7.15 JSON-Array
557
B.7.16 Barcode-Generator
558
B.7.17 Kennzeichenverarbeitung
561
B.8 Objektorientierung
563
B.8.1 Schrittzähler
563
B.8.2 Body-Mass-Index
563
B.8.3 Songtextsuche
564
B.8.4 Passwortklasse
565
B.8.5 Kopffitness
567
B.8.6 Fernbedienung
568
B.8.7 Stoppuhr
569
B.8.8 Druckerwarteschlange
570
B.8.9 Tic Tac Toe
571
B.8.10 Zwischenablage
573
B.8.11 Temperaturgraph
575
B.8.12 Ambient Light
577
B.8.13 Verschlüsselung
580
B.8.14 Mastermind
583
B.8.15 Parteistimmen
585
B.9 Referenzdatentypen
587
B.9.1 Kreis-Klasse
587
B.9.2 Mathematischer Bruch
588
B.9.3 Highscore-Liste
589
B.9.4 Adressbuch
590
B.9.5 Digitaler Bilderrahmen
593
B.9.6 Musikalbenanwendung
595
B.9.7 Koch-Website
597
B.9.8 Hotelzimmerverwaltung
599
B.9.9 Flughafen-Check-in
601
B.9.10 Polygonzug
602
B.9.11 Twitterwall
604
B.9.12 Fototagebuch
605
B.9.13 Partygäste
607
B.9.14 Raumbelegung
610
B.10 Vererbung
613
B.10.1 Online-Shop
613
B.10.2 Gewässer
615
B.10.3 To-do-Liste
618
B.10.4 Lampen
620
B.10.5 Meeting-Protokoll
622
B.10.6 E-Book
624
B.10.7 Zoo
627
B.10.8 Audioeffekt-Player
630
B.10.9 Fahrtenbuch
632
B.10.10 Webseitengenerator
634
C Installation Processing
640
C.1 Einleitung
640
C.2 Windows
640
C.3 macOS
641
C.4 Linux
642
C.5 Aktivierung des Python Mode
643
D Howto: Buch-Aufgaben ohne Processing lösen
646
D.1 Java
646
D.2 Python
646
D.3 Fazit
649
© 2009-2024 ciando GmbH