E-Book, Deutsch, 1220 Seiten
Reihe: Rheinwerk Computing
Kaiser / Guddat C/C++
5. Auflage 2014
ISBN: 978-3-8362-8912-2
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection
Das umfassende Lehrbuch
E-Book, Deutsch, 1220 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-8362-8912-2
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection
Dieses Buch ist ein klassisches Lehrwerk für Studenten der Informatik. Es vermittelt ausführlich die Grundlagen der Programmiersprachen C und C++ und die Grundlagen der Programmierung überhaupt. Von der Kunst, den richtigen Algorithmus zu finden, bis zur sinnvollen Nutzung der C++-Standard-Library. Alle Themen werden Sie sich anhand von Codebeispielen praktisch erarbeiten. Wo Theorie an Bord ist, erleben Sie ihren Nutzen im großen Zusammenhang.
Aus dem Inhalt:
- Algorithmen
- Performanz- und Leistungsanalyse
- Kombinatorik
- Sortierverfahren
- Graphentheoretische Probleme
- Variablen, Schleifen & Co.
- Speicherverwaltung
- Bäume, Heaps und Treaps
- Die Standardbibliotheken
- Objektorientierung, Kapselung, Vererbung
- Exceptions und Templates
- Strukturiertes Programmieren
- Programmaufbau und wartbare Software
- Umfangreiche Referenz
Autoren/Hrsg.
Weitere Infos & Material
Vorwort ... 19 1. Einige Grundbegriffe ... 21 1.1 ... Algorithmus ... 24 1.2 ... Datenstruktur ... 28 1.3 ... Programm ... 30 1.4 ... Programmiersprachen ... 31 1.5 ... Aufgaben ... 33 2. Einführung in die Programmierung ... 35 2.1 ... Softwareentwicklung ... 35 2.2 ... Die Programmierumgebung ... 40 3. Ausgewählte Sprachelemente von C ... 45 3.1 ... Programmrahmen ... 45 3.2 ... Zahlen ... 46 3.3 ... Variablen ... 46 3.4 ... Operatoren ... 48 3.5 ... Kontrollfluss ... 56 3.6 ... Elementare Ein- und Ausgabe ... 67 3.7 ... Beispiele ... 73 3.8 ... Aufgaben ... 81 4. Arithmetik ... 83 4.1 ... Folgen ... 85 4.2 ... Summen und Produkte ... 96 4.3 ... Aufgaben ... 100 5. Aussagenlogik ... 107 5.1 ... Aussagen ... 108 5.2 ... Aussagenlogische Operatoren ... 108 5.3 ... Boolesche Funktionen ... 116 5.4 ... Logische Operatoren in C ... 119 5.5 ... Beispiele ... 120 5.6 ... Aufgaben ... 126 6. Elementare Datentypen und ihre Darstellung ... 129 6.1 ... Zahlendarstellungen ... 130 6.2 ... Bits und Bytes ... 137 6.3 ... Skalare Datentypen in C ... 139 6.4 ... Bitoperationen ... 146 6.5 ... Programmierbeispiele ... 150 6.6 ... Zeichen ... 156 6.7 ... Arrays ... 159 6.8 ... Zeichenketten ... 164 6.9 ... Programmierbeispiele ... 173 6.10 ... Aufgaben ... 178 7. Modularisierung ... 181 7.1 ... Funktionen ... 181 7.2 ... Arrays als Funktionsparameter ... 186 7.3 ... Lokale und globale Variablen ... 190 7.4 ... Rekursion ... 192 7.5 ... Der Stack ... 198 7.6 ... Beispiele ... 200 7.7 ... Aufgaben ... 218 8. Zeiger und Adressen ... 223 8.1 ... Zeigerarithmetik ... 230 8.2 ... Zeiger und Arrays ... 232 8.3 ... Funktionszeiger ... 235 8.4 ... Aufgaben ... 239 9. Programmgrobstruktur ... 241 9.1 ... Der Präprozessor ... 241 9.2 ... Ein kleines Projekt ... 249
10. Die Standard C Library ... 253 10.1 ... Mathematische Funktionen ... 254 10.2 ... Zeichenklassifizierung und -konvertierung ... 256 10.3 ... Stringoperationen ... 257 10.4 ... Ein- und Ausgabe ... 260 10.5 ... Variable Anzahl von Argumenten ... 263 10.6 ... Freispeicherverwaltung ... 265 10.7 ... Aufgaben ... 271
11. Kombinatorik ... 273 11.1 ... Kombinatorische Grundaufgaben ... 274 11.2 ... Permutationen mit Wiederholungen ... 274 11.3 ... Permutationen ohne Wiederholungen ... 275 11.4 ... Kombinatorische Algorithmen ... 283 11.5 ... Beispiele ... 293
12. Leistungsanalyse und Leistungsmessung ... 305 12.1 ... Leistungsanalyse ... 308 12.2 ... Leistungsmessung ... 320 12.3 ... Laufzeitklassen ... 324
13. Sortieren ... 347 13.1 ... Sortierverfahren ... 347 13.2 ... Leistungsanalyse der Sortierverfahren ... 376 13.3 ... Leistungsmessung der Sortierverfahren ... 383 13.4 ... Grenzen der Optimierung von Sortierverfahren ... 388
14. Datenstrukturen ... 393 14.1 ... Strukturdeklarationen ... 395 14.2 ... Zugriff auf Strukturen ... 400 14.3 ... Datenstrukturen und Funktionen ... 405 14.4 ... Ein vollständiges Beispiel (Teil 1) ... 409 14.5 ... Dynamische Datenstrukturen ... 415 14.6 ... Ein vollständiges Beispiel (Teil 2) ... 421 14.7 ... Die Freispeicherverwaltung ... 432 14.8 ... Aufgaben ... 435
15. Ausgewählte Datenstrukturen ... 437 15.1 ... Listen ... 439 15.2 ... Bäume ... 448 15.3 ... Treaps ... 470 15.4 ... Hash-Tabellen ... 482
16. Abstrakte Datentypen ... 493 16.1 ... Der Stack als abstrakter Datentyp ... 495 16.2 ... Die Queue als abstrakter Datentyp ... 500
17. Elemente der Graphentheorie ... 507 17.1 ... Graphentheoretische Grundbegriffe ... 510 17.2 ... Die Adjazenzmatrix ... 511 17.3 ... Beispielgraph (Autobahnnetz) ... 512 17.4 ... Traversierung von Graphen ... 514 17.5 ... Wege in Graphen ... 516 17.6 ... Der Algorithmus von Warshall ... 518 17.7 ... Kantentabellen ... 522 17.8 ... Zusammenhang und Zusammenhangskomponenten ... 523 17.9 ... Gewichtete Graphen ... 530 17.10 ... Kürzeste Wege ... 532 17.11 ... Der Algorithmus von Floyd ... 533 17.12 ... Der Algorithmus von Dijkstra ... 539 17.13 ... Erzeugung von Kantentabellen ... 546 17.14 ... Der Algorithmus von Ford ... 548 17.15 ... Minimale Spannbäume ... 551 17.16 ... Der Algorithmus von Kruskal ... 552 17.17 ... Hamiltonsche Wege ... 557 17.18 ... Das Travelling-Salesman-Problem ... 562
18. Zusammenfassung und Ergänzung ... 575
19. Einführung in C++ ... 677 19.1 ... Schlüsselwörter ... 677 19.2 ... Kommentare ... 678 19.3 ... Datentypen, Datenstrukturen und Variablen ... 679 19.4 ... Funktionen ... 690 19.5 ... Operatoren ... 701 19.6 ... Auflösung von Namenskonflikten ... 711
20. Objektorientierte Programmierung ... 717 20.1 ... Ziele der Objektorientierung ... 717 20.2 ... Objektorientiertes Design ... 719 20.3 ... Klassen in C++ ... 725 20.4 ... Aufbau von Klassen ... 725 20.5 ... Instanziierung von Klassen ... 740 20.6 ... Operatoren auf Klassen ... 745 20.7 ... Ein- und Ausgabe in C++ ... 748 20.8 ... Der this-Pointer ... 755 20.9 ... Beispiele ... 756 20.10 ... Aufgaben ... 771
21. Das Zusammenspiel von Objekten ... 775 21.1 ... Modellierung von Beziehungen ... 775 21.2 ... Komposition eigener Objekte ... 776 21.3 ... Eine Klasse text ... 786 21.4 ... Übungen/Beispiel ... 797 21.5 ... Aufgabe ... 803
22. Vererbung ... 805 22.1 ... Darstellung der Vererbung ... 805 22.2 ... Vererbung in C++ ... 808 22.3 ... Beispiele ... 831
23. Zusammenfassung und Überblick ... 879 23.1 ... Klassen und Instanzen ... 879 23.2 ... Member ... 881 23.3 ... Vererbung ... 900 23.4 ... Zugriffsschutz und Vererbung ... 916 23.5 ... Der Lebenszyklus von Objekten ... 922 23.6 ... Typüberprüfung und Typumwandlung ... 946 23.7 ... Typumwandlung in C++ ... 948
24. Die C++-Standardbibliothek und Ergänzung ... 953 24.1 ... Generische Klassen (Templates) ... 954 24.2 ... Ausnahmebehandlung (Exceptions) ... 962 24.3 ... Die C++-Standardbibliothek ... 973 24.4 ... Iteratoren ... 973 24.5 ... Strings (string) ... 976 24.6 ... Dynamische Arrays (vector) ... 990 24.7 ... Listen (list) ... 998 24.8 ... Stacks (stack) ... 1014 24.9 ... Warteschlangen (queue) ... 1017 24.10 ... Prioritätswarteschlangen (priority_queue) ... 1019 24.11 ... Geordnete Paare (pair) ... 1024 24.12 ... Mengen (set und multiset) ... 1025 24.13 ... Relationen (map und multimap) ... 1030 24.14 ... Algorithmen der Standardbibliothek ... 1032 Aufgaben und Lösungen ... 1041 Kapitel 1 ... 1042 Kapitel 3 ... 1055 Kapitel 4 ... 1069 Kapitel 5 ... 1090 Kapitel 6 ... 1103 Kapitel 7 ... 1120 Kapitel 8 ... 1144 Kapitel 10 ... 1155 Kapitel 14 ... 1162 Kapitel 20 ... 1186 Kapitel 21 ... 1203 Index ... 1209