Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Inhaltsverzeichnis
Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 Elementare Datentypen, Konstanten und Variablen . . . . . . . . . . . . . . 23
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Verwenden von Funktionen und Klassen . . . . . . . . . . . . . . . . . . . . . . 33
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4 Ein- und Ausgaben mit Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5 Operatoren für elementare Datentypen . . . . . . . . . . . . . . . . . . . . . . . . 57
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Inhaltsverzeichnis
6
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7 Symbolische Konstanten und Makros . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8 Umwandlung arithmetischer Datentypen . . . . . . . . . . . . . . . . . . . . . . 99
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
9 Die Standardklasse string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
10 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
11 Speicherklassen und Namensbereiche . . . . . . . . . . . . . . . . . . . . . . . . . 139
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
12 Referenzen und Zeiger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
13 Definition von Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Inhaltsverzeichnis
7
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
14 Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
15 Teilobjekte und statische Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
16 Vektoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
17 Zeiger und Vektoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
18 Grundlagen der Dateiverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
19 Operatoren überladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
20 Typumwandlung für Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Inhaltsverzeichnis
8
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
21 Speicherreservierung zur Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
22 Dynamische Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
23 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
24 Typumwandlungen in Klassenhierarchien . . . . . . . . . . . . . . . . . . . . . . 429
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
25 Polymorphe Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
26 Abstrakte Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Inhaltsverzeichnis
9
27 Mehrfachvererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
28 Ausnahmebehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 549
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
29 Mehr über Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Lösungen zu den Verständnisfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Lösungen zu den Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Einleitung
Dieses Buch wendet sich an Leser, die ihre C++-Kenntnisse durch »Learning byDoing« vertiefen möchten. Es ist ideal, um sich im Stil eines Workshops auf Prü-fungen oder auf die Mitarbeit in einem C++-Projekt vorzubereiten.
Die Gliederung des Stoffs entspricht der des Buches »C++ Lernen und professio-nell anwenden«, das ab der 8. Auflage den neuesten C++-Standard von 2017 (kurzC++17) berücksichtigt. Neue Sprachelemente von C++17 sind in aktuellen Compi-lern noch nicht voll integriert und werden deshalb in diesem Buch mit (*) gekenn-zeichnet.
Aber es ist nicht wesentlich, wie Sie C++ gelernt haben. Jedes Kapitel beginnt miteiner Zusammenfassung des Stoffs, zu dem anschließend Fragen und Aufgabengestellt werden. Beispielsweise ist das Thema des 9. Kapitels »Die Standardklassestring«. Wenn Ihnen dann der Inhalt der Zusammenfassung zur string-Klassevertraut ist, sollten Sie auch ohne größere Probleme die anschließenden Fragenund Aufgaben lösen können.
Jedes Kapitel besteht neben der einführenden Beschreibung des Themas aus dreiweiteren Teilen: Verständnisfragen, Programmieraufgaben und den Musterlösun-gen zu allen Fragen und Aufgaben. Mit jeweils 20 Verständnisfragen können Sietesten, wie gut Sie sich in dem jeweiligen Themenbereich auskennen. Die Art derFragen sind entweder Ja-Nein-Fragen, Multiple-Choice-Fragen oder es muss eineAussage vervollständigt werden.
Im Aufgabenteil können Sie dann Ihr Wissen praktisch umsetzen. In jedem Kapitelgibt es mindestens zehn Aufgaben mit steigendem Schwierigkeitsgrad. Die Bear-beitung einfacher Aufgaben ist oft in wenigen Minuten erledigt. Dagegen kann dieLösung umfänglicher Aufgaben auch Tage in Anspruch nehmen. Dies gilt insbe-sondere bei Aufgaben zu den Themen »Dynamische Elemente«, »Vererbung« und»Polymorphie«. Umfangreichere Problemstellungen sind dabei oft auf mehrereAufgaben verteilt.
Bei der Auswahl der Problemstellungen für Aufgaben wurde stets darauf geachtet,dass sie typisch und praxisnah sind. Auf diese Weise lernen Sie viele interessanteAlgorithmen und Datenstrukturen kennen. Auch durch die eigenständige Imple-mentierung von »Iteratoren« und »Intelligenten Zeigern« vertiefen Sie Ihr Ver-ständnis für die Konzepte der Standardbibliothek. In jedem Fall verfügen Sie nach
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Einleitung
12
der Durcharbeitung des Buches über fundierte Programmiererfahrungen undeinen umfangreichen Fundus von Beispiel-Code.
Trotz ausfühlicher Aufgabenstellungen und vieler Hinweise kann es immer malvorkommen, dass man nicht zum Ziel kommt. Dann hilft ein Blick in die kommen-tierten Musterlösungen. Außerdem ist es sicher immer interessant, die eigeneLösung mit der im Buch zu vergleichen. Die Musterlösungen finden Sie auch imInternet unter http://www.mitp.de/802.
Dem Leser wünschen wir viele Erfolgserlebnisse beim Lösen der Übungen.
Ulla Kirch Peter [email protected] [email protected]
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Kapitel 1
Grundlagen
Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung vonC++-Programmen. Hierzu zählen auch das
� Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die von einem C++-Programmverwendet werden. In der Header-Datei iostream beispielsweise sind Infor-mationen enthalten, die zur Ein-/Ausgabe von Daten erforderlich sind. EineHeader-Datei wird mit der #include-Direktive in ein Programm kopiert.
� Verwenden der using-DirektiveVordefinierte Namen, wie z.B. cout, gehören zum Namensbereich std. DieDirektive using namespace std; ermöglicht es, diese Namen ohne den Vor-satz std:: direkt zu verwenden.
� Formulieren von Anweisungen Eine Anweisung legt fest, was das Programm tun soll, und wird stets miteinem Semikolon abgeschlossen. Zur Ausgabe von Daten auf den Bildschirmwird in C++ der Stream cout verwendet, z.B. cout << "Hallo";
� Definieren einer main-FunktionDie erste Funktion, die in einem C++-Programm ausgeführt wird, ist stets diemain-Funktion. Die auszuführenden Anweisungen stehen im Funktions-block, d.h. innerhalb der Klammern { }. Bei Erreichen der return-Anweisungwird die Funktion verlassen.
� Kommentieren von QuelldateienKommentare dienen zur Dokumentation in einem Programm. Sie verbesserndie Lesbarkeit und können bei der Fehlersuche nützlich sein. Jede Zeichen-folge, die in /* ... */ eingeschlossen ist oder mit // beginnt, ist ein Kom-mentar. Der Compiler ignoriert Kommentare.
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Kapitel 1C++. Das Übungsbuch – Testfragen und Aufgaben mit Lösungen
14
Verständnisfragen
1.1 C++ ist eine rein objektorientierte Sprache.
[_] Richtig [_] Falsch
1.2 Die umfangreiche in C entwickelte Software kann auch in C++-Programmenverwendet werden.
[_] Richtig [_] Falsch
1.3 Eine Quelldatei wird zur Übersetzung an den _____________ übergeben.
1.4 Der ___________ bindet eine Objektdatei mit anderen Modulen zu einer aus-führbaren Datei.
1.5 Die gebräuchlichsten Endungen im Namen von Quelldateien sind
a) .c b) .cpp c) .cc
1.6 Standardisierte Funktionen und Klassen sind in der ____________________enthalten.
1.7 Bei der Suche nach Fehlern in einem C++-Programm beginnen Sie immermit
a) dem letzten vom Compiler angezeigten Fehler.
b) irgendeinem angezeigten Fehler.
c) dem ersten angezeigten Fehler.
1.8 Eine Warnung kann einen
a) Syntaxfehler anzeigen.
b) logischen Fehler anzeigen.
c) Laufzeitfehler anzeigen.
1.9 Jedes C++-Programm enthält die Funktion __________.
1.10 In einem C++ Programm bedeutet das Doppelkreuz # am Anfang einer Zeile,dass diese Zeile für
a) den Compiler bestimmt ist.
b) den Präprozessor bestimmt ist.
c) die Header-Datei bestimmt ist.
1.11 Vordefinierte Namen der C++-Standardbibliothek befinden sich im Namens-bereich ________.
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Grundlagen
15
1.12 Die Programmausführung beginnt (abgesehen von der Initialisierung globa-ler Objekte) mit
a) der ersten #include-Direktive.
b) der ersten Anweisung in der Funktion main().
c) der zuerst definierten Funktion.
1.13 Der Name cout bezeichnet ein Objekt, das zuständig ist für
a) Eingaben.
b) den Programmstart.
c) Ausgaben.
1.14 In der Funktion main() bewirkt die Anweisung
a) das Verlassen von main().
b) die Beendigung des Programms.
c) die Rückgabe des Exitcode 0 an das aufrufende Programm.
1.15 Die kürzeste Anweisung besteht aus _______________.
1.16 C++-Funktionen müssen in einer bestimmten Reihenfolge definiert werden.
[_] Richtig [_] Falsch
1.17 Die erste Funktion, die in einer Quelldatei definiert wird, ist stets die Funk-tion main().
[_] Richtig [_] Falsch
1.18 Die Anweisungen, die in der Funktion main() ausgeführt werden, stehen im
__________________________.
1.19 Zeichenfolgen werden als Kommentare interpretiert, wenn sie
a) mit /* beginnen.
b) in /* */ eingeschlossen sind.
c) mit // beginnen.
1.20 In einer Zeile können mehrere Präprozessor-Direktiven angeführt werden.
[_] Richtig [_] Falsch
return 0;
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Kapitel 1C++. Das Übungsbuch – Testfragen und Aufgaben mit Lösungen
16
Aufgaben
1.1 Was gibt das folgende Programm auf dem Bildschirm aus?
1.2 Formulieren Sie die entsprechenden Anweisungen, um
a) beginnend bei der aktuellen Cursorposition auszugeben.
b) am Anfang der nächsten Zeile auszugeben.
1.3 Jedes der folgenden Programme enthält einen Fehler. Bestimmen und korri-gieren Sie jeden Fehler.
a)
b)
#include <iostream>
using namespace std;
int main()
{
cout << "Hi Leute, ";
cout << endl;
cout << "was habt Ihr heute noch vor";
cout << "?" << endl;
return 0;
}
Mir geht's gut!
#include <iostream>
int main()
{ // Und jetzt kommt der berühmteste Spruch
// aus der Welt der Programmiersprachen:
cout << "Hello, World!" << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
cout >> "Hello, World!" >> endl;
}
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Grundlagen
17
c)
d)
1.4 Schreiben Sie ein C++-Programm, das Ihren Namen, Ihre Adresse, Telefon-nummer und E-Mail-Adresse in je einer Zeile auf dem Bildschirm ausgibt.
1.5 Fügen Sie Kommentare in die Lösung zur Aufgabe 1.4 ein, und zwar einenProgrammnamen, den Namen des Programmierers sowie eine Beschrei-bung, was das Programm macht.
1.6 Schreiben Sie ein C++-Programm, das folgendes Menü ausgibt:
#include <iostream>
using namespace std;
int main()
{
/ Wer zum Teufel hat das gesagt? /
cout << "Hello, World!" << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
cout << "Hallo, Universum! ";
<< endl;
return 0;
}
******** Telefonverzeichnis ********
E = Neuen Eintrag einfügen
L = Eintrag löschen
S = Telefonnummer suchen
A = Alle Einträge anzeigen
B = Programm beenden
Ihre Wahl:
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Kapitel 1C++. Das Übungsbuch – Testfragen und Aufgaben mit Lösungen
18
1.7 Sind die folgenden C++-Programme vollständig und fehlerfrei?
a)
b)
c)
1.8 Angenommen, die folgenden Anweisungen befinden sich in einer main-Funktion. Was ist falsch?
a) cout >> "Weiter mit <return>" >> endl;
b) return "Alles klar!";
c) cout "<< Geben Sie eine Zahl ein: <<" endl;
1.9 Verfolgen Sie den Ablauf des folgenden C++-Programms und beschreibenSie, was auf dem Bildschirm ausgegeben wird.
int main()
{
return 0;
}
include <iostream>
using namespace std;
int main()
{
cout << "Hey, los!" << return 0;
}
#include <iostream>
using namespace std;
int main(
){
cout <<
"Das wär's für heute!" << endl; return 0
;}
#include <iostream>
using namespace std;
void star1(), star2(), star3();
int main()
{
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Grundlagen
19
1.10 Ändern Sie die main-Funktion aus der letzten Aufgabe so, dass folgende Gra-fik ausgegeben wird:
Fügen Sie außerdem Kommentare in den Quellcode ein und erklären Sie,was das Programm macht.
Lösungen zu den Verständnisfragen
1.1 Falsch (C++ ist eine Erweiterung der prozeduralen Programmiersprache C.)
1.2 Richtig
1.3 Compiler
1.4 Linker
1.5 b) und c)
1.6 C++-Standardbibliothek
1.7 c)
1.8 b)
1.9 main()
1.10 b)
star1();
star2();
star3();
star2();
star1();
return 0;
}
void star1() { cout << "****" << endl; }
void star2() { cout << "********" << endl; }
void star3() { cout << "************" << endl; }
************
********
****
********
************
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Kapitel 1C++. Das Übungsbuch – Testfragen und Aufgaben mit Lösungen
20
1.11 std
1.12 b)
1.13 c)
1.14 a), b) und c)
1.15 einem Semikolon
1.16 Falsch
1.17 Falsch
1.18 Funktionsblock
1.19 b) und c)
1.20 Falsch
Lösungen zu den Aufgaben
1.1
1.2
1.3 a) Hinter der Direktive #include <iostream> fehlt in einer neuen Zeile:
Alternativ kann auch std::cout und std::endl verwendet werden.
b) Statt >> ist der Operator << zu verwenden. Die abschließende Anweisungreturn 0; darf fehlen. Sie wird dann vom Compiler eingefügt.
c) Innerhalb der main()-Funktion ist der Kommentar syntaktisch nicht kor-rekt. Richtig wäre beispielsweise:
d) In der ersten Zeile im Rumpf der main()-Funktion muss das Semikolonentfernt werden.
Hi Leute,
was habt Ihr heute noch vor?
cout << "Mir geht's gut!";
cout << endl << "Mir geht's gut!";
(oder: cout << "\nMir geht's gut!"; )
using namespace std;
// Wer zum Teufel hat das gesagt?
/* Wer zum Teufel hat das gesagt? */
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Grundlagen
21
1.4
1.5
1.6
#include <iostream>
using namespace std;
int main()
{
cout << "Sarah Miller" << endl
<< "Karenstr. 123 " << endl
<< "80123 München" << endl
<< "Tel. (089) 6543210" << endl
<< "[email protected]" << endl;
return 0;
}
// ----------------------------------------------------
// Programmname: ex01_05.cpp
// Autor: Sarah Miller
// Das Programm gibt einen Namen, eine Adresse, eine
// Tel.-Nr. und eine E-Mail-Adresse auf dem Bildschirm aus.
// ----------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
// Wie in der Lösung zur Aufgabe 1.4.
}
// ----------------------------------------------------
// ex01_06.cpp
// Gibt ein Menü für ein Telefonverzeichnis aus.
// -----------------------------------------------------#include <iostream>
using namespace std;
int main()
{
cout << "******** Telefonverzeichnis ********"
<< endl << endl;
cout << " E = Neuen Eintrag einfuegen" << endl;
cout << " L = Eintrag loeschen" << endl;
cout << " S = Telefonnummer suchen" << endl;
cout << " A = Alle Eintraege anzeigen" << endl;
cout << " B = Programm verlassen" << endl
<< endl;
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Kapitel 1C++. Das Übungsbuch – Testfragen und Aufgaben mit Lösungen
22
1.7 a) Das Programm tut zwar nichts, der Quellcode ist aber fehlerfrei und voll-ständig.
b) Im Quellcode liegen zwei Fehler vor:
1. Das Zeichen # fehlt vor include.
2. return 0; muss als separate Anweisung angeführt werden, d.h. nichtals Teil der Anweisung cout << ....;.
c) Der Quellcode ist fehlerfrei und vollständig, aber schlecht lesbar.
1.8 a) Anstelle von >> ist das Symbol << zu verwenden, um den Text in denAusgabestrom einzufügen.
b) Bei dem Return-Wert der main-Funktion muss es sich um eine Ganzzahlhandeln.
c) Die Symbole << müssen sich außerhalb des Strings "Geben Sie eineZahl ein: " befinden.
1.9
1.10
cout << "Ihre Wahl: ";
cout << endl;
return 0;
}
****
********
************
********
****
// ----------------------------------------------------
// ex01_10.cpp
// Modifizierung des Programms aus Aufgabe 1.9.
// ----------------------------------------------------
int main()
{
star3(); // Gibt 3*4 = 12 Sterne aus.
star2(); // Gibt 2*4 = 8 Sterne aus.
star1(); // Gibt 4 Sterne aus.
star2(); // Gibt 8 Sterne aus.
star3(); // Gibt 12 Sterne aus.
return 0;
}
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
Symbole#define 85#ifdef 85#ifndef 85#include 13, 33#undef 85=default 189=delete 189
AAbleitung 393
mehrfache 515Absolutbetrag
komplexer Zahl 291Abstand
Punkte- 461Addition
Polynom 359von Zeigern 243
Address 401Adresse 157
Vektorelement 243Adressoperator 157Algorithmus
Boyer-Moore 335Euklid 130Kongruenzmethode 144Quick-Sort 366Tree-Sort 366
Aliasname 157Analyse
objektorientierte 171Anker 461Anweisung 13
break 69catch 541continue 69do-while 69for 69goto 69if-else 69return 13, 124switch 69throw 541while 69
Argument 33Default- 123Objekt 189
argv 243Array 223ASCII
-Code 27assert.h 90assert() 90assoziativ
Vektor 292at() 109atof() 251Aufräumarbeit 189Aufruf
Funktions- 33, 124Aufrufumgebung 541Aufzählung 207, 214Ausdruck 57Ausgabe
formatierte 45unformatierte 47
Ausnahmebehandlung 541Auswahloperator 69AutoPtr 361
Bback() 465bad_cast 453Bad-Character shift 337Basis
Zahlensystem 45Basisinitialisierer 393, 515Basisklasse 393, 515
mehrfache indirekte 515virtuelle 515
Basisklassenzeiger 429, 431, 453Baum
binärer 362durchlaufen 365-Ebene 364Höhe 364Lücke 365
Bedingung 62, 69
bedingungsfrei 69begin() 465Bereichsoperator 139, 393, 515Bereichsprüfung 333Bezeichner 142Beziehung
Hat- 394Ist- 393
BibliothekStandard- 33
Bild 464binär 283
Baum 362Operator 57Suchbaum 363Ziffernfolge 75
Binärmodus 261Bindung
dynamische 453, 456statisch 456
Binomialkoeffizient 229Blank 25, 114Blatt 362Block 69bool 57Boyer, R.S. 335break 69Brief 401Buchstabe
Groß/Klein- 126
CC
Header-Datei 33Kompatibilität 171
C++Standardbibliothek 33
C++17 11Call
by Reference 157, 189by Value 189
Call by Reference 123Call by Value 123cassert 90
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
600
CastDown- 429, 453dynamic- 429Operator 429static- 429Typ- 99Up- 429
catch-Block 541cctype 85ceil() 39Celsius 61char16_t 23char32_t 23cin 45Circle 462class 171clear() 466Client 499climits 49, 335close() 259Code 262
ASCII- 27Exit- 262
Compilierungbedingte 85, 88
Complex 290, 317const
Datenelement 207Methode 191Parameter 243
const_iterator 465continue 69cos() 37Cosinus 37cout 13, 15, 25, 35, 45cstdlib 177, 251C-String 223, 225cstring 223ctime 145, 522ctime() 522ctype.h 400Customer 264CustomerFile 264
DDarstellung
binär 75dezimal 75hexadezimal 23, 45oktal 23Potenz- 115
Data 435Datei 259
einlesen 263, 290
Header- 33mischen 266öffnen 259-Position 260schließen 259schreiben 263, 290
Dateizugriff 260Datenabstraktion 393Datenelement 33
dynamisches 353konstantes 207statisches 207
Datenkapselung 283Datentyp 23, 24
const_iterator 465Hierarchie 99iterator 465list 465time_t 404
DayTime 315dec 45Default
-Argument 123-Destruktor 189-Konstruktor 190, 515-Methode 356
DefinitionFunktions- 123Klassen- 171Methode 172Objekt- 171String- 39Union 171Variable 23, 25Vektor 223, 227
Deklaration 140extern 139, 140friend 283Funktions- 33using 139, 141
Dekrementoperator 58delete 327, 453Dereferenzieren 157Destruktor 189
virtuell 453, 455dezimal 23Dezimalzahl 48Differenz 57, 126
komplexer Zahlen 290Zeiger 243
DimensionVektor- 223
Direktive#define 85
#include 13, 33#undef 85using 13, 139
Division 57Polynom 359
Divisionsrest 163Dokumentation 13Dollar 214Doppelkreuz 14double 23do-while 69Down-Cast 429, 453
sicherer 435, 453Dreieck
Pascal’sches 229Durchlauf
sequentieller 464Durchschnitt 60, 144, 227, 251dynamic_cast<> 429, 453dynamisch
Bindung 456Speicher 327Vektor 330
EEbene 364Eigenschaft 171, 175Eingabe
formatierte 45unformatierte 47
Einheitimaginäre 290
Einheitswürfel 195Element
Klassen- 171private 171protected 396public 171redefiniertes 393
Elementfunktion 171Elementinitialisierer 207Ellipse 462Elternknoten 362empty() 465end() 465Entfernungstabelle 335enum 207eof 259eof() 259erase 109erase() 111, 466Eratosthenes
Sieb des 568
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
601
Eröffnungsmodus 259, 261Ersatztext 86Erweiterung
Ganzzahl 99Escape-Sequenz 23, 25Euklid 130Exception 109
auslösen 541bad_cast 453Deklaration 541-Handler 541
exceptionStandardfehlerklasse
543, 546exception handling 541Exit-Code 262explicit 309explizit
Typumwandlung 99exponentiell
Notation 23, 45extern 139, 140
FFähigkeit
von Klassen 171Fahrenheit 60fail() 259false 23, 57Farbe 195Fehler
Dateizugriff 259-Flags 47
Fehlerbehandlung 541Fehlerklasse 541Fehlermeldung 33Fehlerobjekt 541Fehlersuche 13, 14Feldbreite 45, 47Festpunkt-Notation 46Festpunktzahl 45Fibonaccizahl 130Figur
zweidimensionale 460Filterprogramm 85find() 109, 114, 162fixed 45Fläche
Kreis- 146Flächeninhalt
Quadrat 27Flag
Fehler- 47Formatierungs- 45
Öffnungsmodus 259Status- 259
float 23FloatULong 178floor() 127fmod() 164for 69, 71Formatierung
-Flags 46Freund 363friend
Funktion 283Klasse 283
front() 465fstream 259Füllzeichen 45Funktion
Aufruf 38, 124-Block 123Deklaration 33friend- 283inline 123, 125Konvertierungs- 309-Kopf 123main() 27Operator 283rekursiv 123, 126Speicherklasse 139static- 139überladen 123, 128Zeigerversion 243
fußgesteuert 69
GGanzzahl 25, 46
-Erweiterung 99Garbarge Collector 327Geldbetrag
runden 214Geldbörse 286Geldstück 176Geldwechsel 214Geltungsbereich 207Genauigkeit 24, 45Generator
Zufallszahlen- 145geometrisch 248get() 48, 259getline() 48, 259, 437Gleitpunktdarstellung 49Gleitpunkttyp 23Gleitpunktzahl 23, 37, 45, 49
runden 106
global 25, 35, 139Operatorfunktion 283
Good-Suffix Shift 337goto 69, 73Grad
Polynom 248, 358Grenzwert 26Groß-/Kleinbuchstabe 126Groß-/Kleinschreibung 23
HHalbachse 463Handler
Exception- 541New- 329
Handy 193Hanoi 230Hat-Beziehung 208, 394Header-Datei 13, 33, 49, 109
assert.h 90cassert 90cctype 85climits 49, 335cstdlib 177, 251cstring 223ctime 145ctype.h 400fstream 260iostream 13list 464math.h 164stdlib.h 177string 109time.h 145typeinfo 459
hex 45Hexadezimalzahl 47, 48Hierarchie
Datentyp 99Hochkomma 23Höhe
Baum 364Rechteck 463Zylinder 127
Horner-Schema 115, 248, 359
Iif-else 69ifstream 259imaginär 290Imaginärteil 290implizit
Typumwandlung 99
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
602
ImportNamesbereich 142
Index 109, 112, 223, 224Indexoperator 109, 289
überladen 292inhomogen 464Initialisierung
Liste 327Teilobjekte SieheVariablen- 23, 25Vektor 223
Inkrementoperator 58inline 125
-Methode 189insert() 109, 466Instanz 35IntArr 333, 357intelligent 361Interface
öffentliches 364Invertieren
String 163ios 45, 259iostream 35isalpha() 85iscntrl() 91isdigit() 85islower() 85ISO-Standard 11isspace() 400Ist-Beziehung 393istream 45isupper() 85iterativ 364Iterator 360, 464iterator 465
JJob 333JobList 335
Kkartesisch 178, 288Keim 144, 177Kette
else-if 69Kindknoten 362Klammer 57Klasse 33, 290, 335
abgeleitete 393abstrakte 493Address 401AutoPtr 361
Basis- 393Circle 398, 462Complex 317Customer 264Data 435DayTime 315definieren 171Ellipse 462Email 547friend 283IntArr 333, 357Iterator 360Job 333JobList 335konkrete 493KundenService 523Letter 402Line 462LongArr 354Mail 401MailService 402MeasureArr 354mehrfach vererben 515MobilePhone 193, 213,
250MoneyChanger 214MyData 436, 460MyString 400NameValueArr 292Node 363PackedFood 499Pair 313, 316Parcel 402PhoneCall 521PiggyBank 176, 194Player 177Point 461Point3D 288, 313Polygon 462Polyline 461polymorph 453Polynomial 358PrioQueue 501Product 499Random 177, 193Rectangle 399, 462RGB_Color 195, 215RGB-Color 195SearchTree 363Shape2D 398ShapePtrList 464Square 399StringMatching 336TimeStamp 522
TowersOfHanoi 230TraceParcel 403UnpackedFood 499Wallet 286
Klasse siehe auch Standard-klasseKlasse.Point2D 314Klassen-Array 223Klassenhierarchie 396, 403, 429Klassenvariable 207Kloster 231Knoten 362
einfügen 364innerer 362löschen 366
Kommandozeile 243, 251Kommentar 13, 17komplex 290Komprimieren
Vektor 333Kongruenzmethode 144Konstante 24
klassenspezifische 207numerische 23String- 23symbolische 85
Konstruktor 189, 190Default- 190Konvertierungs- 309Kopier- 353Move- 353
Kontrollstruktur 69Konvertierung
Datentyp 99-Funktion 309in Klassenhierarchien
429-Konstruktor 309
Konvertierung siehe Typum-wandlungKoordinaten
kartesische 288zweidimensionale 314
Koordinatensystemkartesisches 178
Kopieflache 466tiefe 353
Kopierkonstruktor 353Kredit 61Kreis 127, 146, 463kubisch 128Kugel 90
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
603
LLänge
String- 36, 110Laufbedingung 69Laufzeit
Algorithmen 366Typinformation 453
left 45length() 109Letter 402Line 462linear
Polynom 128Linie 463Linienzug 463list 464Liste
inhomogene 464Initialisierung 223konstante 465sortierte 500verkettete 330, 464
list-Klasse 465Literal 23
String- 109logic_error 543lokal 35, 139long double 23long long 23LONG_MAX 62LONG_MIN 62LongArr 355LRN-Schema 365
MMail 401MailService 402main() 27Makro 85, 123Manipulator 45, 46Marke 69Maschinencode 123, 172Matrix 223, 228, 245Maximum 227MeasureArr 354Median 77, 127Mehrdeutigkeit
bei Mehrfachvererbung 515
bei Typumwandlungen 309
Mehrfach-Inkludierung 85
Mehrfachvererbung 515Mehrfachzuweisung 57Memory Leaks 361Menü 17merge() 250Methode 33, 171, 189
aktivieren 189const 191deaktivieren 189Default- 356Definition 172inline 189Read-Only 189rein virtuelle 493statische 210virtuell 453
Methodentabellevirtuell 456, 493
Minimum 69, 227Minute 61, 165Mischen
sortierter Vektoren 249von Dateien 266
Mittelarithmetisches 60, 144,
227, 251geometrisches 128, 248
MobilePhone 193, 213, 250Modul 14Modulodivision 57, 130Modus
Binär- 261Eröffnungs- 259
Mönch 231MoneyChanger 214Moore, J.S. 335Move
-Konstruktor 353-Zuweisung 353
Multiplikation 57Polynom 359
Münzen 176, 286Murphy 27, 43MyData 436, 460MyString 400
NNachfolger 362Name 13, 25
Alias- 157Header-Datei 33Programm- 243Variablen- 23
Namensbereich 14, 35, 139, 141
verschachteln 142namespace 13NameValue 292NameValueArr 292new 327New-Handler 329Newline 25, 114NLR-Schema 366Node 363Norm
komplexer Zahl 291noshowpos 45Notation
exponentielle 45, 49nouppercase 45npos 162NULL 251
OOberfläche
Kugel 90Objekt 33, 35, 171
-Adresse 157aktuelles 189Auf-/Abbau 393definieren 171global 139, 140konstantes 189Konvertierung 309lokal 139persistentes 259Speicherklasse 139statisches 140Teil- 207
Objektdatei 14objektorientiert 14
Analyse 171oct 45Öffnen
Datei 259ofstream 259oktal 23OOP 393open() 259Operand 57Operator 57, 429
Adress- 157arithmetischer 57Bereichs- 139binär 283Cast- 99, 429delete 327, 453
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
604
dynamic_cast<> 453-Funktion 283Index 109, 289logischer 57new 327Pfeil- 173Präfix- 286Punkt- 173sizeof() 224-Symbol 283typeid() 453überladen 283unär 283Vergleichs- 57Verweis- 157virtueller 493Zuweisung- 57, 173
operatorSchlüsselwort 283
Operatorfunktionvirtuelle 493
ostream 45, 46
PPaar 113, 292Pair 313, 316Paket 401Parameter 33
const 243Makro- 85Zeiger 243
Parcel 402Pascal 229permanent 139Persistenz
von Objekt 259Pfeiloperator 173Pi 90PiggyBank 176, 194Player 177Point 178, 461Point2D 314Point3D 288, 313Pointer
Smart 361, 466Polygon 462, 463Polyline 461Polymorphie 453Polynom 248
auswerten 359kubisches 128lineares 128, 129n-ten Grades 248, 358quadratisches 129
Polynomial 358pop_back() 466pop_front() 466Position 111
Datei- 260Potenz 129Potenzdarstellung 115Präfix
Operator 286Präprozessor 85Primzahl 127, 568Priorität 57Priority Queue 500private 393Produkt
komplexer Zahlen 291Skalar- 289
Programm-Dokumentation 13-Erstellung 13-Name 243
Programmierungmodulare 144
protected 393, 396-Element 396
Prototyp 33, 36, 124Proxy 499Prüfungsergebnis 289Pseudo-Zufallszahlen 144, 177, 193public 171, 393Punkt 33
dreidimensionaler 288zweidimensionaler 178,
314Punktestand 177Punktoperator 173push_back() 465push_front() 465put() 259
QQuadrat 27, 75Quelldatei 14, 124, 144Queue 334Quick-Sort Algorithmus 366Quotient
komplexer Zahlen 291quotient 163
RRadius
Kreis 127rand() 177
Random 177, 193Ratenzahlung 61Raum
dreidimensionaler 288zweidimenionaler 314
read() 259Read-Only
-Methode 189Referenz 157Zeiger 243
Realteil 290Rechteck 463Rectangle 399, 462Redefinition
Element- 393Referenz 157, 158
auf Basisklasse 429, 493
Read-Only 157-Typ 157
rein virtuell 493rekursiv 123
Funktion 126replace() 109, 114, 162reserve() 163return 13Return-Wert
Objekt 189Zeiger 243
rfind() 109, 114RGB_Color 195, 215RGB-Einheitswürfel 195right 45RTTI 459Rückgabe 189Runden
Geldbetrag 214Gleitpunktzahl 106
runtime_error 543Run-Time-Type-Informati-on 459
SSchachteln
Fehlerbehandlung 541if-else 69
Schaltjahr 63Schema
Horner 115, 359LRN 365
Schleife 69Schleifenkopf 69Schließen
Datei 259
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
605
Schlüssel 363Schlüsselwort 23Schnittstelle 172
Klassen 172öffentliche 393
scientific 45SearchTree 363Seiteneffekt 123Sekunde 61, 165Semikolon 13sequentiell
Durchlauf 464Sequenz
-Escape 23setfill() 45setprecision() 45setw() 45Shape 461Shape2D 398ShapePtrList 464Shift
Bad-Character 337Good-Suffix- 337
showpos 45Sieb
Eratosthenes- 568Signatur 123, 125, 454
von Konstruktoren 190Simulation
Würfelspiel 177sin() 37Sinus 37size() 465sizeof() 24, 224Skalarprodukt 289Smart Pointer 361, 466Software
Wiederverwendbarkeit 393
Sparschwein 176Speicheplatz 171Speicher
dynamischer 327freigeben 328-Leck 361, 466reservieren 328
Speicherklasse 139Spezialisierung 393, 429Spezifizierer 139Sprung
goto 69Unterprogramm- 123
Square 399srand() 177
Stack-Unwinding 541
Standard-Bibliothek 33-Ein-/Ausgabe 85-Fehlerklasse 541-Funktion 33-Header-Datei 33Kopierkonstruktor 353-Makro 85-Methode 189
Standardfehlerklasseexception 543logic_error 543runtime_error 543
Standardklassefstream 259ifstream 259ios 45istream 45list 465ofstream 259ostream 45string 33, 109type_info 459
Standard-Template-Library 464static 139static_cast<> 429statisch
Funktion 141Objekt 140
Status-Flag 259Stream 259
std 13, 35, 139stdlib.h 177Steuerzeichen 91STL 464strcpy() 436Stream 45
-Klassen 33-Status 259, 561
Stream siehe auch DateiString
Definition 113-Endezeichen 25, 223ersetzen 162extrahieren 113, 292invertieren 163-Konstante 25Länge 109, 110Literal 109Suche 162, 335
verketten 36verschlüsseln 114zerlegen 251
string 33, 109StringMatching 336strlen() 436struct 171Struktur 171Stunde 61, 165Subtraktion
bei Vektoren 243Polynom 359
Suchbaum 363Suchstring 335Suchverfahren
Boyer-Moore 335Suffix 337Summe 57, 74, 144
komplexer Zahlen 290Vektor 332
switch 69, 72Symbol
Operator 283system() 293
TTabelle
Such- 335Tabulator 25, 114Teilbaum 362Teiler 128
größter gemeinsamer 130
Teilobjekt 207, 515Teilstring 162Temperatur 61Template 464Textdatei 85Textzeile 36
einlesen 437this 189throw 541time_t 404, 522time.h 145time() 145, 522Token 251tolower() 85, 400Ton 26toupper() 85, 400TowersOfHanoi 230TraceParcel 403Tree-Sort Algorithmus. 366true 23, 57
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802
Stichwortverzeichnis
606
try-Block 541Türme von Hanoi 230Typ 23type_info 459typeid() 453typeinfo 459Typinformation
zur Laufzeit 453Typumwandlung
explizit 99für Klassen 309in Klassenhierarchien
429Mehrdeutigkeit 309übliche arithmetische
99
UÜberladen
Funktionen 123Überladung
Operator- 283Zuweisungsoperator
353Überlauf 62Übersetzungseinheit 140UCHAR_MAX 335UINT_MAX 49Umfang
Ellipse 463Kreis- 146Quadrat 27
Umgebungsvariable 293Umlenken
Ein-/Ausgabe 89Umrechnung
binär->dezimal 75dezimal->binär 75
Umwandlungarithmetischer Typen
99dezimal -> hex 115hex -> dezimal 115Sekunden 165
unär 283Operator 57
Union 171Unterprogrammsprung 123Unterstrich 23Up-Cast 429uppercase 45using 139, 141
VVariable 23, 25
Definition 25Vektor 223, 243
assoziativer 292dynamischer 327, 330,
333komprimieren 333mehrdimensionaler 223mischen 249-Name 243Summme 332Zeiger- 243
Vererbung 393Vererbungsart 515Vergleich 57, 59
von Strings 109Verketten
Strings 110Verschlüsseln
Strings 114Verweisoperator 157Verzweigung 69Vielfaches 128Viereck 463virtual 453virtuell
Basisklasse 515Destruktor 453Methode 453Methodentabelle 456
void 33Volumen
Kugel 90Zylinder 127
Vorgänger 362Vorrang 57Vorzeichen 45, 46
WWallet
Klasse 286Warnung 14Warteschlange 334Wechselkurs 214Wert
Default- 123Wertebereich 26while 69, 74Wiederverwendbarkeit 393write() 259Würfelspiel 177Wurzel 128, 362
YYen 214
ZZahl
Festpunkt- 45komplexe 290konjugiert 291Norm 291
Zahlensystem 45Zeichen
-Konstante 23Newline 114Steuer- 91Zwischenraum- 25, 92
Zeichenkette 33Zeiger 157, 160, 243
als Parameter 243, 493Basisklassen- 429intelligenter 361, 466NULL 251Read-Only 243, 246this 189-Vektor 243
Zeigerarithmetik 243Zeigerversion 243Zeile
Kommando- 243Ziffer 23Zufallszahl 35, 144, 193
ganzzahlig 145gebrochen 145
Zufallszahlengenerator 145, 177Zugriffsmethode 189, 192Zugriffsproxy 499Zugriffsrecht
Datei- 259Zuweisung 58
einfache 57Move- 353von Objekten 173
Zuweisungsoperatorüberladen 353, 357virtueller 493
Zweigif-/else- 69
Zwischenraumzeichen 25, 91
entfernen 114Zylinder 127
© des Titels »C++ Das Übungsbuch« (ISBN 9783958458024) 2018 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/802