Die C++-Challenge - Echte Probleme lösen und zum C++-Experten werden - 100 Aufgaben und ausprogrammierte Lösungen
von: Marius Bancila
dpunkt, 2018
ISBN: 9783960886532
Sprache: Deutsch
306 Seiten, Download: 2459 KB
Format: PDF, auch als Online-Lesen
Mehr zum Inhalt
Die C++-Challenge - Echte Probleme lösen und zum C++-Experten werden - 100 Aufgaben und ausprogrammierte Lösungen
Die C++-Challenge | 1 | ||
Inhalt | 5 | ||
Vorwort | 13 | ||
Zielgruppe | 14 | ||
Der Inhalt dieses Buches | 15 | ||
Die bestmögliche Nutzung dieses Buches | 16 | ||
Das Begleitmaterial herunterladen | 16 | ||
Den Code erstellen | 16 | ||
Projekte für Visual Studio 2017 generieren | 17 | ||
Projekte für Xcode generieren | 18 | ||
Schreibweisen | 19 | ||
Kapitel 1:Mathematische Aufgaben | 21 | ||
Aufgaben | 21 | ||
1. Summe der durch 3 und 5 teilbaren natürlichen Zahlen | 21 | ||
2. Größter gemeinsamer Teiler | 21 | ||
3. Kleinstes gemeinsames Vielfaches | 21 | ||
4. Größte Primzahl kleiner als die gegebene Zahl | 21 | ||
5. Sexy Primzahlpaare | 21 | ||
6. Abundante Zahlen | 21 | ||
7. Befreundete Zahlen | 22 | ||
8. Armstrong-Zahlen | 22 | ||
9. Primfaktorzerlegung | 22 | ||
10. Gray-Code | 22 | ||
11. Numerische Werte in römische Zahlen umwandeln | 22 | ||
12. Größte Collatz-Folge | 22 | ||
13. Den Wert von Pi berechnen | 22 | ||
14. ISBNs validieren | 22 | ||
Lösungen | 23 | ||
1. Summe der durch 3 und 5 teilbaren natürlichen Zahlen | 23 | ||
2. Größter gemeinsamer Teiler | 23 | ||
3. Kleinstes gemeinsames Vielfaches | 24 | ||
4. Größte Primzahl kleiner als die gegebene Zahl | 25 | ||
5. Sexy Primzahlpaare | 26 | ||
6. Abundante Zahlen | 26 | ||
7. Befreundete Zahlen | 27 | ||
8. Armstrong-Zahlen | 28 | ||
9. Primfaktorzerlegung | 29 | ||
10. Gray-Code | 30 | ||
11. Numerische Werte in römische Zahlen umwandeln | 31 | ||
12. Größte Collatz-Folge | 33 | ||
13. Den Wert von Pi berechnen | 34 | ||
14. ISBNs validieren | 35 | ||
Kapitel 2:Sprachmerkmale | 37 | ||
Aufgaben | 37 | ||
15. Datentyp für IPv4 | 37 | ||
16. Die IPv4-Adressen eines Bereichs auflisten | 37 | ||
17. Ein 2D-Array mit grundlegenden Operationen erstellen | 37 | ||
18. Minimumfunktion mit beliebiger Anzahl von Argumenten | 37 | ||
19. Werte zu einem Container hinzufügen | 38 | ||
20. Vorhandensein von Elementen in einem Container prüfen | 38 | ||
21. Wrapper für ein System-Handle | 38 | ||
22. Literale für Temperatureinheiten | 38 | ||
Lösungen | 39 | ||
15. Datentyp für IPv4 | 39 | ||
16. Die IPv4-Adressen eines Bereichs auflisten | 40 | ||
17. Ein 2D-Array mit grundlegenden Operationen erstellen | 42 | ||
18. Minimumfunktion mit beliebiger Anzahl von Argumenten | 45 | ||
19. Werte zu einem Container hinzufügen | 46 | ||
20. Vorhandensein von Elementen in einem Container prüfen | 46 | ||
21. Wrapper für ein System-Handle | 47 | ||
22. Literale für Temperatureinheiten | 52 | ||
Kapitel 3:Strings und reguläre Ausdrücke | 57 | ||
Aufgaben | 57 | ||
23. Binärwerte in Strings konvertieren | 57 | ||
24. Strings in Binärwerte konvertieren | 57 | ||
25. Großschreibung eines englischen Artikeltitels | 57 | ||
26. Strings verknüpfen | 58 | ||
27. Strings aufteilen | 58 | ||
28. Längster Palindrom-Teilstring | 58 | ||
29. Kfz-Kennzeichen validieren | 58 | ||
30. URL-Bestandteile extrahieren | 58 | ||
31. Datumsangaben in Strings umwandeln | 59 | ||
Lösungen | 60 | ||
23. Binärwerte in Strings konvertieren | 60 | ||
24. Strings in Binärwerte konvertieren | 61 | ||
25. Großschreibung eines englischen Artikeltitels | 62 | ||
26. Strings verknüpfen | 63 | ||
27. Strings aufteilen | 64 | ||
28. Längster Palindrom-Teilstring | 65 | ||
29. Kfz-Kennzeichen validieren | 66 | ||
30. URL-Bestandteile extrahieren | 68 | ||
31. Datumsangaben in Strings umwandeln | 70 | ||
Kapitel 4:Streams und Dateisysteme | 71 | ||
Aufgaben | 71 | ||
32. Pascalsches Dreieck | 71 | ||
33. Tabellarische Ausgabe einer Liste von Prozessen | 71 | ||
34. Leere Zeilen aus einer Textdatei entfernen | 71 | ||
35. Die Größe eines Verzeichnisses berechnen | 72 | ||
36. Dateien löschen, die ein gegebenes Alter überschritten haben | 72 | ||
37.Mit einem regulären Ausdruck übereinstimmende Dateien in einem Verzeichnis finden | 72 | ||
38. Temporäre Protokolldateien | 72 | ||
Lösungen | 73 | ||
32. Pascalsches Dreieck | 73 | ||
33. Tabellarische Ausgabe einer Liste von Prozessen | 74 | ||
34. Leere Zeilen aus einer Textdatei entfernen | 76 | ||
35. Die Größe eines Verzeichnisses berechnen | 77 | ||
36. Dateien löschen, die ein gegebenes Alter überschritten haben | 78 | ||
37.Mit einem regulären Ausdruck übereinstimmende Dateien in einem Verzeichnis finden | 79 | ||
38. Temporäre Protokolldateien | 80 | ||
Kapitel 5:Datum und Uhrzeit | 83 | ||
Aufgaben | 83 | ||
39. Die Ausführungszeit von Funktionen messen | 83 | ||
40. Anzahl der Tage zwischen zwei Kalenderdaten | 83 | ||
41. Wochentage | 83 | ||
42. Kalendertag und Kalenderwoche | 83 | ||
43. Termine für mehrere Zeitzonen | 83 | ||
44. Monatskalender | 84 | ||
Lösungen | 85 | ||
39. Die Ausführungszeit von Funktionen messen | 85 | ||
40. Anzahl der Tage zwischen zwei Kalenderdaten | 86 | ||
41. Wochentage | 87 | ||
42. Kalendertag und Kalenderwoche | 88 | ||
43. Termine für mehrere Zeitzonen | 89 | ||
44. Monatskalender | 91 | ||
Kapitel 6:Algorithmen und Datenstrukturen | 93 | ||
Aufgaben | 93 | ||
45. Prioritätswarteschlange | 93 | ||
46. Zyklischer Puffer | 93 | ||
47. Doppelpuffer | 94 | ||
48. Häufigstes Element in einem Bereich | 94 | ||
49. Texthistogramm | 94 | ||
50. Eine Liste von Telefonnummern filtern | 94 | ||
51. Eine Liste von Telefonnummern umwandeln | 94 | ||
52. Alle Permutationen eines Strings generieren | 95 | ||
53. Durchschnittliche Bewertung von Filmen | 95 | ||
54. Paarbildungsalgorithmus | 95 | ||
55. Reißverschlussalgorithmus | 95 | ||
56. Auswahlalgorithmus | 95 | ||
57. Sortieralgorithmus | 96 | ||
58. Kürzester Pfad zwischen zwei Knoten | 96 | ||
59. Wieselprogramm | 97 | ||
60. Spiel des Lebens | 97 | ||
Lösungen | 98 | ||
45. Prioritätswarteschlange | 98 | ||
46. Zyklischer Puffer | 100 | ||
47. Doppelpuffer | 104 | ||
48. Häufigstes Element in einem Bereich | 106 | ||
49. Texthistogramm | 107 | ||
50. Eine Liste von Telefonnummern filtern | 108 | ||
51. Eine Liste von Telefonnummern umwandeln | 110 | ||
52. Alle Permutationen eines Strings generieren | 111 | ||
53. Durchschnittliche Bewertung von Filmen | 113 | ||
54. Paarbildungsalgorithmus | 115 | ||
55. Reißverschlussalgorithmus | 116 | ||
56. Auswahlalgorithmus | 117 | ||
57. Sortieralgorithmus | 118 | ||
58. Kürzester Pfad zwischen zwei Knoten | 121 | ||
59. Wieselprogramm | 125 | ||
60. Spiel des Lebens | 128 | ||
Kapitel 7:Parallelität | 133 | ||
Aufgaben | 133 | ||
61. Paralleler Transformationsalgorithmus | 133 | ||
62. Parallele Minimum- und Maximumalgorithmen mithilfe von Threads | 133 | ||
63.Parallele Minimum- und Maximumalgorithmen mithilfe von asynchronen Funktionen | 133 | ||
64. Paralleler Sortieralgorithmus | 133 | ||
65. Threadsichere Konsolenausgabe | 134 | ||
66. Kundendienstsystem | 134 | ||
Lösungen | 135 | ||
61. Paralleler Transformationsalgorithmus | 135 | ||
62. Parallele Minimum- und Maximumalgorithmen mithilfe von Threads | 136 | ||
63.Parallele Minimum- und Maximumalgorithmen mithilfe von asynchronen Funktionen | 138 | ||
64. Paralleler Sortieralgorithmus | 140 | ||
65. Threadsichere Konsolenausgabe | 142 | ||
66. Kundendienstsystem | 144 | ||
Kapitel 8:Entwurfsmuster | 149 | ||
Aufgaben | 149 | ||
67. Passwörter validieren | 149 | ||
68. Zufällige Passwörter generieren | 149 | ||
69. Sozialversicherungsnummern generieren | 149 | ||
70. Genehmigungssystem | 150 | ||
71. Beobachtbarer Vektor | 150 | ||
72. Auftragspreise mit Rabatten berechnen | 151 | ||
Lösungen | 152 | ||
67. Passwörter validieren | 152 | ||
68. Zufällige Passwörter generieren | 155 | ||
69. Sozialversicherungsnummern generieren | 159 | ||
70. Genehmigungssystem | 164 | ||
71. Beobachtbarer Vektor | 167 | ||
72. Auftragspreise mit Rabatten berechnen | 172 | ||
Kapitel 9:Datenserialisierung | 179 | ||
Aufgaben | 179 | ||
73. Daten ins XML-Format serialisieren und XML-Daten deserialisieren | 179 | ||
74. XML-Daten mit XPath auswählen | 180 | ||
75. Daten ins JSON-Format serialisieren | 180 | ||
76. JSON-Daten deserialisieren | 181 | ||
77. Eine Liste von Filmen in eine PDF-Datei schreiben | 181 | ||
78. Eine PDF-Datei aus einer Sammlung von Bildern erstellen | 182 | ||
Lösungen | 183 | ||
73. Daten ins XML-Format serialisieren und XML-Daten deserialisieren | 183 | ||
74. XML-Daten mit XPath auswählen | 186 | ||
75. Daten ins JSON-Format serialisieren | 188 | ||
76. JSON-Daten deserialisieren | 190 | ||
77. Eine Liste von Filmen in eine PDF-Datei schreiben | 192 | ||
78. Eine PDF-Datei aus einer Sammlung von Bildern erstellen | 196 | ||
Kapitel 10:Archive, Bilder und Datenbanken | 199 | ||
Aufgaben | 199 | ||
79. Dateien in einem Zip-Archiv finden | 199 | ||
80. Dateien zu einem Zip-Archiv komprimieren und Zip-Archive entpacken | 199 | ||
81.Dateien zu einem passwortgeschützten Zip-Archiv komprimieren und passwortgeschützte Zip-Archive entpacken | 199 | ||
82. Ein PNG-Bild zur Darstellung einer Nationalflagge erstellen | 200 | ||
83. PNG-Bilder für ein Captcha erstellen | 200 | ||
84. EAN-13-Balkencodegenerator | 200 | ||
85. Filminformationen aus einer SQLite-Datenbank lesen | 201 | ||
86. Filminformationen per Transaktion in eine SQLite-Datenbank einfügen | 201 | ||
87. Mediendateien in einer SQLite-Datenbank verwenden | 202 | ||
Lösungen | 203 | ||
79. Dateien in einem Zip-Archiv finden | 203 | ||
80. Dateien zu einem Zip-Archiv komprimieren und Zip-Archive entpacken | 204 | ||
81.Dateien zu einem passwortgeschützten Zip-Archiv komprimieren und passwortgeschützte Zip-Archive entpacken | 208 | ||
82. Ein PNG-Bild zur Darstellung einer Nationalflagge erstellen | 210 | ||
83. PNG-Bilder für ein Captcha erstellen | 212 | ||
84. EAN-13-Balkencodegenerator | 214 | ||
85. Filminformationen aus einer SQLite-Datenbank lesen | 220 | ||
86. Filminformationen per Transaktion in eine SQLite-Datenbank einfügen | 226 | ||
87. Mediendateien in einer SQLite-Datenbank verwenden | 230 | ||
Kapitel 11:Kryptografie | 239 | ||
Aufgaben | 239 | ||
88. Caesar-Chiffre | 239 | ||
89. Vigenère-Chiffre | 239 | ||
90. Base64-Codierung und -Decodierung | 239 | ||
91. Benutzeranmeldeinformationen validieren | 239 | ||
92. Dateihashes berechnen | 240 | ||
93. Dateien ver- und entschlüsseln | 240 | ||
94. Dateien signieren | 240 | ||
Lösungen | 241 | ||
88. Caesar-Chiffre | 241 | ||
89. Vigenère-Chiffre | 243 | ||
90. Base64-Codierung und -Decodierung | 245 | ||
91. Benutzeranmeldeinformationen validieren | 250 | ||
92. Dateihashes berechnen | 254 | ||
93. Dateien ver- und entschlüsseln | 256 | ||
94. Dateien signieren | 258 | ||
Kapitel 12:Netzwerke und Dienste | 263 | ||
Aufgaben | 263 | ||
95. Die IP-Adresse eines Hosts ermitteln | 263 | ||
96. Client-Server-Anwendung für Fizz-Buzz | 263 | ||
97. Bitcoin-Wechselkurse | 263 | ||
98. E-Mails mit IMAP abrufen | 264 | ||
99. Text in beliebige Sprachen übersetzen | 264 | ||
100. Gesichter in Bildern erkennen | 264 | ||
Lösungen | 265 | ||
95. Die IP-Adresse eines Hosts ermitteln | 265 | ||
96. Client-Server-Anwendung für Fizz-Buzz | 266 | ||
97. Bitcoin-Wechselkurse | 271 | ||
98. E-Mails mit IMAP abrufen | 275 | ||
99. Text in beliebige Sprachen übersetzen | 280 | ||
100. Gesichter in Bildern erkennen | 284 | ||
Literatur | 295 | ||
Artikel | 295 | ||
Dokumentation der Bibliotheken | 297 | ||
Stichwortverzeichnis | 299 | ||
www.dpunkt.de | 0 | ||
www.dpunkt.plus | 0 |