Kaiser / Guddat | C/C++ | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 1220 Seiten

Reihe: Rheinwerk Computing

Kaiser / Guddat C/C++

Das umfassende Lehrbuch
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
Kaiser / Guddat C/C++ jetzt bestellen!

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


Kaiser, Ulrich
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.

Guddat, Martin
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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.