C/C++

Das umfassende Lehrbuch
Buch | Hardcover
1220 Seiten
2014 | 5., aktualisierte und überarbeitete Auflage
Galileo Press (Verlag)
978-3-8362-2757-5 (ISBN)

Lese- und Medienproben

C/C++ - Ulrich Kaiser, Martin Guddat
39,90 inkl. MwSt
  • Titel ist leider vergriffen, Neuauflage unbestimmt
  • Artikel merken
  • Von den Grundlagen zur professionellen Programmierung
  • Von einfachen Beispielen zu anspruchsvollen Algorithmen
  • Das Standardwerk für Studium und Beruf

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. Dabei orientiert es sich an den Standards C++11 und C++14 und vermittelt moderne Konzepte der Programmierung anhand aktueller Sprachmittel. Konsequente Praxisnähe und ein gutes theoretisches Fundament - diese Beiden zeichnen dieses Lehrbuch in bester Weise aus.
Dies ist die 5., umfassend überarbeitete Neuauflage des C/C++-Standardwerkes. Der erste Teil des Buches führt Sie anfängergerecht in die Grundlagen von C ein: Er bietet zahlreiche Beispielprojekte, Merksätze und Übungen am Ende jedes Kapitels.

Von dort aus geht es weiter zur objektorientierten Programmierung mit C++: Auf der Grundlage der erworbenen Kenntnisse in C wird der Leser zügig an komplexe Beispielprojekte in C++ herangeführt.

Das Buch ist konzipiert als umfassender Begleiter: Es dient als Lehr- und Arbeitsbuch, ist Nachschlagewerk in der Praxis und gibt fertige, sofort einsetzbare Lösungen an die Hand. Nach der Lektüre sind Sie Profi: fähig, anspruchsvolle Anwendungen zu planen, zu entwerfen und in hoher Qualität zu entwickeln.

Grundlagen der Programmierung
Das Buch vermittelt ausführlich die Grundlagen der Programmiersprachen C und C++ und die Grundlagen der Programmierung überhaupt. Dabei orientiert es sich an den Standards C++11 und C++14 und zeigt moderne Konzepte der Programmierung anhand aktueller Sprachmittel.

Theorie und Praxis ...
gehen hier Hand in Hand. Als Lehrwerk hat das Buch den Anspruch, ein gutes theoretisches Fundament zu legen. Sie probieren nicht nur aus; sie verstehen. Die Beispiele dienen ebenfalls dem Verständnis und sind darüber hinaus an der aktuellen Praxis orientiert.

C/C++ und mehr
Auch Aussagenlogik, Listen, Bäume, Hashtabellen, Graphentheorie und objektorientierte Programmierung bleiben für Sie keine Fremdworte. Eine Bibel der C- und C++-Entwicklung, gleichzeitig ein wunderbares Nachschlagewerk zu den Grundlagen der Informatik.

Themen sind insbesondere:
  • Grundbegriffe
  • Einführung in die Programmierung
  • Ausgewählte Sprachelemente von C
  • Arithmetik
  • Elementare Datentypen
  • Modularisierung
  • Zeiger und Adressen
  • Die C-Runtime-Library
  • Das objektorientierte Paradigma
  • Klassen in C++
  • Vererbung
  • C++-Sprachmittel und Bibliothek u.v.m.

Dr. Ulrich Kaiser ist Professor für Informatik an der Fachhochschule Gelsenkirchen. Als Berater unterstützt er Unternehmen bei der Einführung neuer Technologien und der Durchführung von Softwareprojekten, insbesondere in den Bereichen Datenbanken, grafische Benutzeroberflächen, verteilte Systeme, Projektmanagement und Qualitätssicherung.

Prof. Dr. Martin Guddat lehrt an der Westfälischen Hochschule in Gelsenkirchen und Bocholt. Er hat langjährige Erfahrung in der Erstellung technischer Software, z.B. für Mobiltelefone und Fingerabdrucksensoren, zudem als IT-Projektleiter und als Berater im Bereich der Systemintegration großer Softwareprojekte.

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

»Buchtipp!« iX - Magazin für professionelle Informationstechnik 201507

»Buchtipp!«

»Das Buch ist nicht nur ein umfangreiches Nachschlagewerk zu C und C++, sondern auch für das Selbststudium hervorragend geeignet. Die zahlreichen Beispiele mit oftmals mathematischem Hintergrund werden von den Autoren auch für Nicht-Mathematiker verständlich dargestellt und durch gelungene Abbildungen veranschaulicht. Das Buch hat auch in der fünften Auflage nichts von seiner gewohnten Qualität verloren. Gesamtnote: Sehr gut!«

»Bei dem Mammutwerk von Ulrich Kaiser und Martin Guddat zu C und C++ bleiben auf über 1200 Seiten kaum Fragen offen. Erschöpfend werden alle Aspekte der C- und C++-Programmierung behandelt, angefangen von den Grundbegriffen der Software-Entwicklung bis zu fortgeschritteneren Themen wie der Objektorientierung in C++. Das Buch enthält viele Codebeispiele und Illustrationen, die Sprache ist klar und einfach, das erleichtert das Verständnis. Alles in allem ein sehr empfehlenswerter Titel für alle, die C/C++ von Grund auf lernen wollen.«

Erscheint lt. Verlag 28.10.2014
Reihe/Serie Galileo Computing
Verlagsort Bonn
Sprache deutsch
Maße 168 x 240 mm
Gewicht 1860 g
Einbandart gebunden
Themenwelt Informatik Programmiersprachen / -werkzeuge C / C++
Mathematik / Informatik Informatik Software Entwicklung
Schlagworte Algorithmen • Buch • C • C++ • C lernen • C programmieren • C (Programmiersprache) • C++ (Programmiersprache); Einführung • Handbuch • Informatik • Programmierung
ISBN-10 3-8362-2757-6 / 3836227576
ISBN-13 978-3-8362-2757-5 / 9783836227575
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Torsten T. Will

Buch | Hardcover (2024)
Rheinwerk (Verlag)
49,90
Technisch-wissenschaftliche Übungsaufgaben mit Lösungen

von Thomas Hoch; Gerd Küveler

Buch | Softcover (2023)
Springer Vieweg (Verlag)
37,99
das umfassende Handbuch

von Jürgen Wolf; René Krooß

Buch | Hardcover (2023)
Rheinwerk (Verlag)
49,90