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:AlgorithmenPerformanz- und LeistungsanalyseKombinatorikSortierverfahrenGraphentheoretische ProblemeVariablen, Schleifen & Co.SpeicherverwaltungBäume, Heaps und TreapsDie StandardbibliothekenObjektorientierung, Kapselung, VererbungExceptions und TemplatesStrukturiertes ProgrammierenProgrammaufbau und wartbare SoftwareUmfangreiche Referenz
Das Standardwerk für Studium und Beruf
Autorentext
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.
Inhalt
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 ... 7…
Das Standardwerk für Studium und Beruf
Autorentext
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.
Inhalt
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 ... 7…
Titel
C/C++
Untertitel
Das umfassende Lehrbuch
Autor
EAN
9783836289122
Format
E-Book (pdf)
Hersteller
Veröffentlichung
28.10.2014
Digitaler Kopierschutz
frei
Dateigrösse
10 MB
Anzahl Seiten
1220
Lesemotiv
Unerwartete Verzögerung
Ups, ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.