HOME


Eine praktische Einführung in C+, Doina Logofatu


 





Copyright© 2008 by Doina Logofătu
www.doina-logofatu.de
Inhaltsverzeichnis


V Vorwort 13

V.1 Danksagung 15

V.2 Über die Autorin 16

1 Die Programmiersprache C im Überblick 17
1.1 Kurzer historischer Abriss 17
1.2 Grundlegende Konzepte 18
Zeichenvorrat von C 18
Ausdrücke 21
Aufbau der C-Programme 23
Anweisungen 25
Standardeingabe/-ausgabe 28
Dateienoperationen 30
Neue Datentypen: struct, enum, union 32
Mehr über Arrays 34
Zeiger, sizeof, dynamische Speicherreservierung 37
Zeichenketten 43
1.3 11 gelöste Probleme in C 44
Problem 1 Text 44
Problem 2 Persönlicher Gruß 45
Problem 3 Vertauschen 46
Problem 4 Quersumme 47
Problem 5 Taschenrechner 49
Problem 6 Primzahl 50
Problem 7 Minimum und Maximum im Array 51
Problem 8 Palindrom 53
Problem 9 Inhalt einer Datei 55
Problem 10 Kommandozeilen-Parameter 56
Problem 11 Matrix und Zeiger 56
1.4 Aufgaben 61

2 Elementare Operationen 65
2.1 Teilbarkeit durch Subtraktionen 65
2.2 Euklidischer Algorithmus 66
2.3 Einfacher Primalitätstest 68
2.4 Der Punkt mit dem kürzesten Abstand 69
2.5 Größe des Speicherplatzes 72
2.6 Goldener Schnitt 74
2.7 Position eines Punktes im Kreis 75
2.8 Das arithmetische Mittel 78
2.9 Lineare Rekurrenz 79
2.10 Synonyme Funktion mit atol() 80
2.11 Informationen über Zeichen 82
2.12 Palindrom und Quersumme 83
2.13 Unendliche Wurzel 84
2.14 Reihe mit dem Wert π  85
2.15 Der bedingte Ausdruck ?: 91
2.16 Besondere Paare 93
2.17 Die Farey-Reihe 95
2.18 Gemeinsame Teiler 96
2.19 Zahlenumwandlung ins Dezimalsystem 98
2.20 Formatierung der natürlichen Zahlen 99
2.21 Vollkommene Zahlen 100
2.22 Befreundete Zahlen 101
2.23 Summe der dritten Potenzen 102
2.24 ASCII-Codes 103
2.25 Aufgaben 105

3 Arrays und Zeiger 109
3.1 Kleinstes Element einer Folge 109
3.2 Bubble Sort 111
3.3 Ableitung eines Polynoms 113
3.4 Bestimmung der größeren Zahlen 115
3.5 Produkt eines Polynoms mit (X-a) 117
3.6 Produkt zweier Matrizen 118
3.7 Die Goldbachsche Vermutung 122
3.8 Nachbarn mit Differenz 1 124
3.9 Lösen von Gleichungen zweiten Grades 126
3.10 Suchen eines Wertes im eindimensionalen Array 128
3.11 Sortieren der Spalten einer Matrix 130
3.12 Symmetrische Elemente in quadratischer Matrix 132
3.13 Zeiger zum Durchlaufen eines Arrays 134
3.14 Adressen in Arrays 135
3.15 Vertauschen der Bytes 136
3.16 Array von Funktionszeigern 138
3.17 Sattelpunkte der Matrix 140
3.18 Aufgaben 142

4 Zeichenketten und Dateioperationen 149
4.1 Kopieren einer konstanten Zeichenkette 149
4.2 Verwendung der Funktionen strcat(), strlen(), strchr(), strrchr() 150
4.3 Vergleich zweier Zeichenketten: strcmp() und stricmp() 152
4.4 Erste Zeichenkette, die mit einem Zeichen einer anderen
Zeichenkette beginnt – strpbrk()153
4.5 Finden einer Teilzeichenkette in einer Zeichenkette – strstr() 154
4.6 Addition zweier Zahlen – strlen(), strcat() 155
4.7 Suchsequenz 160
4.8 Vogelsprache 162
4.9 Verwendung der Funktionen strncpy(), strcat(), strlen() 165
4.10 Verwendung der Funktion strtok() 167
4.11 Verketten zweier Dateien 168
4.12 Kommandozeilen-Parameter 169
4.13 Aufgaben 171

5 Strukturen, Bitfelder, Unionen 175
5.1 Kollineare Punkte 175
5.2 Summe zweier Brüche 177
5.3 Vereinigung von mehreren Intervallen 180
5.4 Differenz-, Vereinigungs- und Durchschnittsmenge zweier Mengen 181
5.5 Zugehörigkeit eines Punktes zur Kreisscheibe 184
5.6 Test union 187
5.7 Bitfelder 189
5.8 Aufgaben 191

6 Bit-Operationen 195
6.1 Binäre Darstellung 195
6.2 Bit-Operationen 197
6.3 Datumsverpackung 198
6.4 Verschiedene Operationen mit Bit-Operatoren 200
6.5 Anzahl der Eins-Bits in der binären Darstellung 203
6.6 Sieb des Eratosthenes 204
6.7 Aufgaben 207

7 Zeitfunktionen, Zufallszahlen 209
7.1 Welcher Wochentag ist es? 209
7.2 rand(), qsort() und bsearch() 211
7.3 Kopf oder Zahl 213
7.4 Schere, Stein, Papier 216
7.5 Laufzeit einer Schleife 219
7.6 Pause in Sekunden 220
7.7 Genaues Datum und genaue Uhrzeit 221
7.8 Vergangenheit oder Zukunft 222
7.9 Aufgaben 223

8 Verkettete Listen 227
8.1 Wörter im Satz 227
8.2 Sortierte Wörter mit Großbuchstaben 230
8.3 Sortierte Wörtermengen mit Großbuchstaben 231
8.4 Rare Matrizen 233
8.5 Zählreime I 242
8.6 Zählreime II 245
8.7 Hashtabelle 248
8.8 Erzeugung von Listen 255
8.9 Kellerspeicher (Stack) 259
8.10 Kartenspiel 264
8.11 Traversieren von Binärbäumen 271
8.12 Aufgaben 275

9 Anwendung — Große Zahlen 279
9.1 Problemstellung 279
9.2 Ziele 279
9.3 Beispiele 280
9.4 Problemanalyse und Entwurf der Lösung 283
9.5 Aufgaben 296

10 Anwendung — Raumfüllende Fraktale 299
10.1 Objektive 301
10.2 Problembeschreibung 302
10.3 Einige Beispiele 304
10.4 Problemanalyse und Entwurf der Lösung 306
10.5 Programm 307
10.6 Aufgaben 312

A Literaturverzeichnis 313

B CD-ROM zum Buch 315

C Schlüsselwörter in C 317

D Häufig verwendete Zeichenkettenfunktionen in C 319

E ASCII-Tabelle 321

F Hinweis Projekteinstellungen in Microsoft Visual C++ 323

Stichwortverzeichnis 325