Sold out

C/C++ - Das umfassende Lehrbuch. Von den Grundlagen zur professionellen Programmierung. Von einfachen Beispielen zu anspruchsvollen Algorithmen. Das Standardwerk für Studium und Beruf

German · Hardback

Description

Read more

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

List of contents



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

About the author

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.

Dr. jur. Martin Guddat, Jahrgang 1943, trat 1972 in die Bundeswehrverwaltung ein. Von 1982 bis 1994 leitete er das Referat Bundeswehrverwaltung und Rüstungswirtschaft im Bundeskanzleramt. Zuletzt war er Chef der Rüstungsabteilung im Bundesministerium der Verteidigung. Der Autor hat sich durch mehrere Bücher und Veröffentlichungen als Kenner der preußischen Militärgeschichte ausgewiesen und in Fachkreisen einen Namen gemacht.

Summary

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

Additional text

»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 CProgrammierung 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.«

Report

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

Product details

Authors Martin Guddat, Martin (Dr.) Guddat, Ulric Kaiser, Ulrich Kaiser
Publisher Rheinwerk Verlag
 
Languages German
Product format Hardback
Released 30.10.2014
 
EAN 9783836227575
ISBN 978-3-8362-2757-5
No. of pages 1220
Dimensions 172 mm x 241 mm x 62 mm
Weight 1853 g
Illustrations m. zahlr. Abb., Tab. u. Listings
Series Galileo Computing
Rheinwerk Computing
Galileo Computing
Subjects Natural sciences, medicine, IT, technology > IT, data processing > Programming languages

Algorithmen, Informatik, C, Programmierung, c++, C programmieren, C lernen

Customer reviews

No reviews have been written for this item yet. Write the first review and be helpful to other users when they decide on a purchase.

Write a review

Thumbs up or thumbs down? Write your own review.

For messages to CeDe.ch please use the contact form.

The input fields marked * are obligatory

By submitting this form you agree to our data privacy statement.