Programmieren in C:
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Wien [u.a.]
Springer
2007
|
Ausgabe: | 2. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XVII, 366 S. graph. Darst. |
ISBN: | 9783211720004 3211720006 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV022887957 | ||
003 | DE-604 | ||
005 | 20080806 | ||
007 | t | ||
008 | 071017s2007 d||| |||| 00||| ger d | ||
016 | 7 | |a 983974810 |2 DE-101 | |
020 | |a 9783211720004 |c Pb. : ca. EUR 39.95, ca. EUR 39.95 (AT), ca. sfr 61.50 |9 978-3-211-72000-4 | ||
020 | |a 3211720006 |c Pb. : ca. EUR 39.95, ca. EUR 39.95 (AT), ca. sfr 61.50 |9 3-211-72000-6 | ||
035 | |a (OCoLC)184989827 | ||
035 | |a (DE-599)BVBBV022887957 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
049 | |a DE-91G |a DE-1051 |a DE-862 |a DE-860 |a DE-573 |a DE-83 |a DE-11 | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 358f |2 stub | ||
100 | 1 | |a Klima, Robert |e Verfasser |0 (DE-588)128379871 |4 aut | |
245 | 1 | 0 | |a Programmieren in C |c Robert Klima ; Siegfried Selberherr |
250 | |a 2. Aufl. | ||
264 | 1 | |a Wien [u.a.] |b Springer |c 2007 | |
300 | |a XVII, 366 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Selberherr, Siegfried |d 1955- |e Verfasser |0 (DE-588)110258819 |4 aut | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=2946895&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016092838&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-016092838 |
Datensatz im Suchindex
DE-BY-862_location | 2000 |
---|---|
DE-BY-FWS_call_number | 2000/ST 250 C01 K65(2) |
DE-BY-FWS_katkey | 305969 |
DE-BY-FWS_media_number | 083000491079 |
_version_ | 1806528628538736640 |
adam_text |
Inhaltsverzeichnis
1 Einführung 1
1.1 Was heißt Programmieren? 1
1.2 Algorithmen und Spezifikationen 2
1.2.1 Problemlösen durch Algorithmen 2
1.2.2 Spezifikationen 3
1.2.3 Algorithmen 6
1.2.4 Verifikation von Algorithmen 6
2 Grafische Darstellungsmittel 9
2.1 Struktogramme 9
2.2 Datenrlussdiagramme 11
2.3 Programmablaufpläne 15
3 Die Entwicklungsumgebung 19
3.1 Projekte 19
3.2 Erstellen eines Projekts 20
3.3 Compiler oder Interpreter? 21
3.4 Übersetzen von Programmen 22
3.5 Compiler Optionen 24
3.6 Beheben von Fehlern 25
3.7 Der Präprozessor 25
3.7.1 Die #include Anweisung 26
3.7.2 Die #def ine Anweisung 27
3.7.3 Makros 27
3.7.4 Vordefinierte Präprozessorkonstanten 29
3.7.5 Die #if Anweisung 30
3.7.6 Die Anweisungen #ifdef und #ifndef 31
4 Erste Schritte 33
4.1 Grundlegendes 33
4.2 Was ist C? 33
vii
vüi Inhaltsverzeichnis
4.3 Geschichte von C 34
4.4 Warum C? 35
4.5 Programmtextdateien 35
4.5.1 Der Programmtext 35
4.5.2 Die Header Dateien 35
4.6 Kommentare 36
4.7 Die Funktion main 37
4.8 Hallo Welt 38
4.9 Beispiele 39
4.9.1 Reklameschrift 39
4.9.2 Leerzeilen 39
4.9.3 Quelltext temporär ausschneiden 40
5 Variablen, Konstanten 41
5.1 Eigenschaften von Variablen und Konstanten 41
5.2 Variablen 41
5.2.1 Definition von Variablen 42
5.2.2 Namen von Variablen 42
5.2.3 Initialisierung von Variablen 43
5.3 Konstanten 44
5.4 Arbeiten mit Variablen und Konstanten 44
5.5 Beispiele 45
5.5.1 Berechnung der Fläche und des Umfanges eines Rechtecks 45
5.5.2 Versuch einer zirkulären Zuweisung 45
5.5.3 Dreieckstausch 45
6 Numerische Datentypen 47
6.1 Ganze Zahlen 47
6.1.1 Qualifizierer 47
6.1.2 Literale 48
6.1.3 Zahlensysteme 48
6.1.3.1 Zweierkomplement 49
6.1.3.2 Zahlensysteme in C 51
6.1.3.3 Umwandlung von Binär , Oktal und Hexadezimalzahlen 52
6.1.3.4 Umwandlung einer Binärzahl ins Dezimalsystem 52
6.1.3.5 Umwandlung einer Dezimalzahl ins Binärsystem 53
6.1.4 Operatoren 53
6.2 Punktzahlen 54
6.2.1 Gleitpunkt Zahlensysteme in C 56
Inhaltsverzeichnis ix
6.2.2 Literale 56
6.2.3 Operatoren 57
6.2.4 Mathematische Funktionen 57
6.3 Zeichen 58
6.3.1 Literale 59
6.3.2 Der ASCII Code 59
6.3.3 Operatoren 61
6.3.4 Funktionen für Zeichen 61
6.4 Wahrheitswerte 62
6.5 void 62
6.6 Typumwandlung 62
6.7 sizeof 64
6.8 Beispiele 64
6.8.1 Umfang und Fläche eines Kreises 64
6.8.2 Lösen quadratischer Gleichungen 65
7 Eingabe Ausgabe 67
7.1 Ausgabefunktionen 67
7.1.1 Ausgabe einer ganzen Zahl 68
7.1.2 Ausgabe einer Gleitpunkt Zahl 69
7.1.3 Ausgabe von Adressen 70
7.1.4 Ausgabe eines Zeichens 70
7.1.5 Ausgabe einer Zeichenkette 71
7.1.6 Weitere Formatierungsmöglichkeiten 71
7.1.7 Probleme mit pr intf 72
7.1.8 Die Platzhalter von printf 72
7.2 Eingabefunktionen 72
7.2.1 Eingabe einer ganzen Zahl 73
7.2.2 Eingabe einer Gleitpunkt Zahl 73
7.2.3 Eingabe eines Zeichens 73
7.2.4 Eingabe einer Zeichenkette 74
7.2.5 Probleme mit scanf 74
7.2.6 Die Platzhalter von scanf 75
7.3 Ein und Ausgabe von Zeichen 76
7.4 Beispiele 76
7.4.1 Umfang und Fläche eines Kreises 76
7.4.2 Fehlersuche 76
x Inhaltsverzeichnis
8 Ausdrücke 77
8.1 Allgemeines 77
8.2 Reihenfolge der Auswertung 78
8.2.1 Prioritäten 78
8.2.2 Assoziativitäten 80
8.3 Operatoren 81
8.3.1 Arithmetische Operatoren 81
8.3.2 Die Zuweisung 82
8.3.2.1 Inkrement und Dekrement 83
8.3.2.2 Abkürzungen 87
8.3.3 Logische Operatoren 87
8.3.3.1 Vergleichsoperatoren 88
8.3.3.2 Der Operator 90
8.3.3.3 Der Operator || 92
8.3.3.4 Der Operator ! 93
8.3.4 Bit Operatoren 94
8.3.4.1 Der Operator 94
8.3.4.2 Der Operator | 95
8.3.4.3 Der Operator" 95
8.3.4.4 Der Operator " 96
8.3.4.5 Der Operator 96
8.3.4.6 Der Operator 97
8.3.5 Der Operator , 98
8.3.6 Der Operator ? : 99
8.4 Abstände 99
8.5 Beispiele 100
8.5.1 Teilbarkeit einer Zahl 100
8.5.2 Übungen zu logischen Ausdrücken 100
8.5.3 Berechnung der Signum Funktion 102
8.5.4 Berechnung des Schaltjahres 102
9 Selektionen 103
9.1 Die if Anweisung 103
9.2 Die switch Anweisung 107
9.3 Beispiele 108
9.3.1 Lösen quadratischer Gleichungen 108
9.3.2 Berechnung der Einkommensteuer 109
9.3.3 Ein Menü 111
9.3.4 Osterregel nach Gauß 111
Inhaltsverzeichnis xi
10 Iterationen 113
10.1 Die f or Anweisung 113
10.2 Die while Anweisung 115
10.3 Die do while Anweisung 116
10.4 Besonderheiten der for Anweisung 117
10.4.1 Weglassen von Ausdrücken 117
10.4.2 Mehrere Zähler 119
10.5 Die break Anweisung 119
10.6 Die continue Anweisung 120
10.7 Schachteln von Schleifen 121
10.8 Beispiele 122
10.8.1 Ein Kalender 122
10.8.2 Der Euklidische Algorithmus 125
10.8.3 Die ASCII Tabelle 126
10.8.4 Gerade und ungerade Zahlen 127
10.8.5 Der Weihnachtsbaum 127
10.8.6 Ein Menü 131
10.8.7 Ein Zahlenratespiel 132
11 Funktionen 135
11.1 Definition einer Funktion 135
11.1.1 Namen von Funktionen 135
11.1.2 Parameter 136
11.1.3 Rückgabewerte 137
11.1.4 Der Rückgabewert der Funktion main 138
11.1.5 Ablauf eines Funktionsaufrufes 139
11.2 Deklaration einer Funktion 141
11.2.1 Externe Funktionen 144
11.2.2 Statische Funktionen 144
11.3 Beispiele 144
11.3.1 Leeren des Eingabepuffers 144
11.3.2 Kalender für ein Jahr 145
11.3.3 Einfacher Taschenrechner 152
12 Speicherklassen 155
12.1 Lokale Variablen 155
12.1.1 Die Blockstruktur von C 155
12.1.2 Variablen der Speicherklasse auto 157
12.1.3 Variablen der Speicherklasse regist er 157
xii Inhaltsverzeichnis
12.1.4 Variablen der Speicherklasse static 158
12.2 Globale Variablen 158
12.2.1 Variablen der Speicherklasse extern 159
12.2.2 Variablen der Speicherklasse static 160
12.3 Übersicht über alle Speicherklassen in C 160
13 Felder 163
13.1 Eindimensionale Felder 163
13.2 Mehrdimensionale Felder 165
13.3 Initialisierung von Feldern 167
13.4 Konstante Felder 169
13.5 Felder als Parameter 169
13.6 Einfache Sortierverfahren 170
13.6.1 Minimum Suche 170
13.6.2 Bubble Sort 172
13.7 Einfache Suchverfahren 173
13.7.1 Sequenzielles Suchen 173
13.7.2 Binäres Suchen 174
13.8 Beispiele 175
13.8.1 Multiplikation von Matrizen 175
13.8.2 Berechnung der Einkommensteuer verbesserte Variante 177
13.8.3 Kopieren von Feldern 178
14 Zeiger 179
14.1 Allgemeines 179
14.2 Zeiger als Parameter 183
14.3 Die „Dualität" von Zeigern und Feldern 184
14.4 Zeigerarithmetik 186
14.5 Komplexere Fälle: Felder von Zeigern, Zeiger auf Zeiger 187
14.6 Konstante Zeiger 191
14.7 Zeiger auf Funktionen 192
14.7.1 Adressen von Funktionen 192
14.7.2 Definition 192
14.7.3 Verwendung 193
14.7.4 Typdefinitionen mit typedef 194
14.8 Beispiele 195
14.8.1 Inkrement Funktion 195
14.8.2 Lösen quadratischer Gleichungen verbesserte Variante 196
Inhaltsverzeichnis xiii
15 Zeichenketten 199
15.1 Literale 199
15.2 Zeichenketten in C 200
15.3 Datentyp 201
15.4 Initialisierung von Zeichenketten 202
15.5 Elementare Funktionen für Zeichenketten 203
15.6 Felder von Zeigern auf Zeichenketten 205
15.7 Argumente der Funktion main 207
15.8 Beispiele 208
15.8.1 Vorzeitiges Ende einer Zeichenkette 208
15.8.2 Die Funktion strcpy 208
15.8.3 Die Funktion strlen 210
15.8.4 Die Funktion strcmp 210
15.8.5 Die Funktion atol 211
15.8.6 Kalender für ein Jahr verbesserte Variante 212
15.8.7 Sortieren von Zeichenketten 213
15.8.8 Einfaches Verschlüsseln nach Julius Cäsar 214
16 Abgeleitete Datentypen 215
16.1 Richtlinien 215
16.2 Strukturen 216
16.2.1 Einfache Strukturen 217
16.2.2 Funktionen und Strukturen 220
16.2.3 Zeiger auf Strukturen 221
16.2.4 Felder von Strukturen 222
16.2.5 Bitfelder 225
16.3 Aufzählungen 226
16.4 Variante Strukturen 228
16.5 Rekursive Strukturen 232
16.6 Deklaration von abgeleiteten Datentypen 232
16.7 Typdefinition mit typedef 234
16.8 Beispiele 235
16.8.1 Ein Menü 235
16.8.2 Eine Adressverwaltung 237
xiv Inhaltsverzeichnis
17 Dateien 243
17.1 Datenströme 243
17.2 Öffnen und Schließen von Datenströmen 244
17.3 Ein und Ausgabe 246
17.4 Beispiele 249
17.4.1 Kopieren von Dateien 249
17.4.2 Ausgeben von Dateien 250
17.4.3 Eine Adressverwaltung verbesserte Variante 250
18 Rekursive Funktionen 257
18.1 Rekursive Algorithmen 257
18.2 Rekursive Funktionen in C 258
18.3 Beispiele 260
18.3.1 Binäres Suchen 260
18.3.2 Quicksort 261
19 Datenstrukturen 265
19.1 Datenstrukturen und abstrakte Datenstrukturen 265
19.2 Listen 266
19.2.1 Eigenschaften und Terminologie 266
19.2.2 Methoden und Implementierung 267
19.2.2.1 Einfügen eines neuen Elementes 269
19.2.2.2 Entfernen eines Elementes 271
19.2.3 Weitere Arten von Listen 273
19.3 Stapel und Schlangen 274
19.3.1 Stapel 274
19.3.2 Schlangen 275
19.3.3 Zirkularpuffer 275
19.4 Baum Strukturen 276
19.4.1 Eigenschaften und Terminologie 276
19.4.2 Binäre Bäume 278
19.4.3 Binäre Suchbäume 280
19.4.4 Methoden 281
19.4.4.1 Traversieren von Bäumen 281
19.4.4.2 Suchen eines Elementes in einem binären Suchbaum 282
19.4.4.3 Einfügen eines neuen Elementes in einen binären Suchbaum 283
19.4.4.4 Löschen eines Elementes in einem binären Suchbaum 283
19.5 Heap Strukturen 287
19.5.1 Eigenschaften 287
Inhaltsverzeichnis xv
19.5.2 Methoden 288
19.5.2.1 Die Methode UpHeap 288
19.5.2.2 Die Methode DownHeap 289
19.5.2.3 Entfernen von Elementen 290
19.5.2.4 Aufbau eines Heaps durch Einfügen von Elementen 291
19.5.2.5 Aufbau eines Heaps in einem Feld 291
19.5.2.6 Sortieren mit Heaps 291
19.6 Hash Strukturen 293
19.6.1 Hash Funktion 297
19.6.2 Getrennte Verkettung 298
19.6.3 Eigenschaften 300
19.7 Vergleich der Datenstrukturen 300
20 Dynamischer Speicher 303
20.1 Aufgaben der Speicherverwaltung 303
20.2 Anfordern von Speicher 304
20.3 Verändern der Größe von Speicherblöcken 307
20.4 Freigeben von Speicher 308
20.5 Typische Fehler 308
20.5.1 Kein Speicher mehr frei 309
20.5.2 Freigabe mit einer falschen Adresse 309
20.5.3 Freigabe eines bereits freigegebenen Speichers 309
20.5.4 Freigabe eines Feldes 310
20.5.5 Freigabe einer Variable 310
20.5.6 Freigabe eines nicht initialisierten Zeigers 310
20.5.7 Zugriff auf einen ungültigen Speicher 310
20.5.8 Zugriff auf bereits freigegebenen Speicher 311
20.5.9 Zugriff mit falschen Indizes 311
20.5.10 Zugriff auf nicht initialisierten Speicher 311
20.5.11 Verlust des Speichers durch Überschreiben des Zeigers 312
20.5.12 Verlust des Speichers durch Verlust des Zeigers 312
20.5.13 Verlust des Speichers durch Rücksprung 313
20.5.14 Verlust des Speichers bei Rückgabe 313
20.5.15 Zu große Speicherblöcke 314
21 Numerik 315
21.1 Fehlerarten 315
21.1.1 Modellfehler 315
21.1.2 Datenfehler 315
xvi Inhaltsverzeichnis
21.1.3 Verfahrensfehler 316
21.1.4 Rundungsfehler 316
21.2 Mathematische Grundbegriffe 316
21.2.1 Relativer Fehler 317
21.2.2 Kondition 317
21.3 Sehr kleine und sehr große Zahlen 319
21.3.1 Ganze Zahlen 319
21.3.2 Punktzahlen 319
21.3.3 Summation von Punktzahlen 320
21.4 Auslöschung 322
22 Fehlerbehandlung 323
22.1 Behandlung von Fehlern im Programm 326
22.1.1 Fehlercodes 326
22.1.2 Fehlerweitergabe 328
22.2 Fehlerbehandlung mit Funktionen der Standard Bibliothek 329
22.2.1 Die Fehlervariable errno 329
22.2.2 Fehlerausgabe 330
22.2.3 Programmende mit exit 331
22.2.4 Die Funktion atexit 331
22.2.5 Die Funktion assert 331
22.3 Signalbehandlung 332
22.3.1 Definition von Signalbehandlungsfunktionen 333
22.3.2 Abbruch mit abort 334
23 Ein exemplarisches Software Projekt 335
23.1 Die Spezifikation 335
23.2 Präzisierung der Spezifikation 336
23.3 Bibliotheken 337
23.3.1 Wahl der Bibliothek 338
23.3.2 Verwendung von Bibliotheken 338
23.4 Realisierungsmöglichkeiten 339
23.4.1 Ansatz mit rekursiven Funktionen 340
23.4.2 Der Syntaxbaum 341
23.4.3 Der Auswertungsstapel 342
23.5 Entwurf 343
23.5.1 Beschreibung der Funktionen 343
23.5.2 Fehlerbehandlung 344
Inhaltsverzeichnis xvii
23.6 Implementierung des virtuellen Taschenrechners für den Textmodus 344
23.6.1 Das Modul main.o 345
23.6.2 Das Modul berechnung. o 347
23.6.3 Das Modul Stapel, o 350
23.6.4 Das Modul eingäbe, o 353
23.6.5 Die grafische Benutzeroberfläche 355
Literaturverzeichnis 357
Index 359 |
adam_txt |
Inhaltsverzeichnis
1 Einführung 1
1.1 Was heißt Programmieren? 1
1.2 Algorithmen und Spezifikationen 2
1.2.1 Problemlösen durch Algorithmen 2
1.2.2 Spezifikationen 3
1.2.3 Algorithmen 6
1.2.4 Verifikation von Algorithmen 6
2 Grafische Darstellungsmittel 9
2.1 Struktogramme 9
2.2 Datenrlussdiagramme 11
2.3 Programmablaufpläne 15
3 Die Entwicklungsumgebung 19
3.1 Projekte 19
3.2 Erstellen eines Projekts 20
3.3 Compiler oder Interpreter? 21
3.4 Übersetzen von Programmen 22
3.5 Compiler Optionen 24
3.6 Beheben von Fehlern 25
3.7 Der Präprozessor 25
3.7.1 Die #include Anweisung 26
3.7.2 Die #def ine Anweisung 27
3.7.3 Makros 27
3.7.4 Vordefinierte Präprozessorkonstanten 29
3.7.5 Die #if Anweisung 30
3.7.6 Die Anweisungen #ifdef und #ifndef 31
4 Erste Schritte 33
4.1 Grundlegendes 33
4.2 Was ist C? 33
vii
vüi Inhaltsverzeichnis
4.3 Geschichte von C 34
4.4 Warum C? 35
4.5 Programmtextdateien 35
4.5.1 Der Programmtext 35
4.5.2 Die Header Dateien 35
4.6 Kommentare 36
4.7 Die Funktion main 37
4.8 Hallo Welt 38
4.9 Beispiele 39
4.9.1 Reklameschrift 39
4.9.2 Leerzeilen 39
4.9.3 Quelltext temporär ausschneiden 40
5 Variablen, Konstanten 41
5.1 Eigenschaften von Variablen und Konstanten 41
5.2 Variablen 41
5.2.1 Definition von Variablen 42
5.2.2 Namen von Variablen 42
5.2.3 Initialisierung von Variablen 43
5.3 Konstanten 44
5.4 Arbeiten mit Variablen und Konstanten 44
5.5 Beispiele 45
5.5.1 Berechnung der Fläche und des Umfanges eines Rechtecks 45
5.5.2 Versuch einer zirkulären Zuweisung 45
5.5.3 Dreieckstausch 45
6 Numerische Datentypen 47
6.1 Ganze Zahlen 47
6.1.1 Qualifizierer 47
6.1.2 Literale 48
6.1.3 Zahlensysteme 48
6.1.3.1 Zweierkomplement 49
6.1.3.2 Zahlensysteme in C 51
6.1.3.3 Umwandlung von Binär , Oktal und Hexadezimalzahlen 52
6.1.3.4 Umwandlung einer Binärzahl ins Dezimalsystem 52
6.1.3.5 Umwandlung einer Dezimalzahl ins Binärsystem 53
6.1.4 Operatoren 53
6.2 Punktzahlen 54
6.2.1 Gleitpunkt Zahlensysteme in C 56
Inhaltsverzeichnis ix
6.2.2 Literale 56
6.2.3 Operatoren 57
6.2.4 Mathematische Funktionen 57
6.3 Zeichen 58
6.3.1 Literale 59
6.3.2 Der ASCII Code 59
6.3.3 Operatoren 61
6.3.4 Funktionen für Zeichen 61
6.4 Wahrheitswerte 62
6.5 void 62
6.6 Typumwandlung 62
6.7 sizeof 64
6.8 Beispiele 64
6.8.1 Umfang und Fläche eines Kreises 64
6.8.2 Lösen quadratischer Gleichungen 65
7 Eingabe Ausgabe 67
7.1 Ausgabefunktionen 67
7.1.1 Ausgabe einer ganzen Zahl 68
7.1.2 Ausgabe einer Gleitpunkt Zahl 69
7.1.3 Ausgabe von Adressen 70
7.1.4 Ausgabe eines Zeichens 70
7.1.5 Ausgabe einer Zeichenkette 71
7.1.6 Weitere Formatierungsmöglichkeiten 71
7.1.7 Probleme mit pr intf 72
7.1.8 Die Platzhalter von printf 72
7.2 Eingabefunktionen 72
7.2.1 Eingabe einer ganzen Zahl 73
7.2.2 Eingabe einer Gleitpunkt Zahl 73
7.2.3 Eingabe eines Zeichens 73
7.2.4 Eingabe einer Zeichenkette 74
7.2.5 Probleme mit scanf 74
7.2.6 Die Platzhalter von scanf 75
7.3 Ein und Ausgabe von Zeichen 76
7.4 Beispiele 76
7.4.1 Umfang und Fläche eines Kreises 76
7.4.2 Fehlersuche 76
x Inhaltsverzeichnis
8 Ausdrücke 77
8.1 Allgemeines 77
8.2 Reihenfolge der Auswertung 78
8.2.1 Prioritäten 78
8.2.2 Assoziativitäten 80
8.3 Operatoren 81
8.3.1 Arithmetische Operatoren 81
8.3.2 Die Zuweisung 82
8.3.2.1 Inkrement und Dekrement 83
8.3.2.2 Abkürzungen 87
8.3.3 Logische Operatoren 87
8.3.3.1 Vergleichsoperatoren 88
8.3.3.2 Der Operator 90
8.3.3.3 Der Operator || 92
8.3.3.4 Der Operator ! 93
8.3.4 Bit Operatoren 94
8.3.4.1 Der Operator 94
8.3.4.2 Der Operator | 95
8.3.4.3 Der Operator" 95
8.3.4.4 Der Operator " 96
8.3.4.5 Der Operator 96
8.3.4.6 Der Operator 97
8.3.5 Der Operator , 98
8.3.6 Der Operator ? : 99
8.4 Abstände 99
8.5 Beispiele 100
8.5.1 Teilbarkeit einer Zahl 100
8.5.2 Übungen zu logischen Ausdrücken 100
8.5.3 Berechnung der Signum Funktion 102
8.5.4 Berechnung des Schaltjahres 102
9 Selektionen 103
9.1 Die if Anweisung 103
9.2 Die switch Anweisung 107
9.3 Beispiele 108
9.3.1 Lösen quadratischer Gleichungen 108
9.3.2 Berechnung der Einkommensteuer 109
9.3.3 Ein Menü 111
9.3.4 Osterregel nach Gauß 111
Inhaltsverzeichnis xi
10 Iterationen 113
10.1 Die f or Anweisung 113
10.2 Die while Anweisung 115
10.3 Die do while Anweisung 116
10.4 Besonderheiten der for Anweisung 117
10.4.1 Weglassen von Ausdrücken 117
10.4.2 Mehrere Zähler 119
10.5 Die break Anweisung 119
10.6 Die continue Anweisung 120
10.7 Schachteln von Schleifen 121
10.8 Beispiele 122
10.8.1 Ein Kalender 122
10.8.2 Der Euklidische Algorithmus 125
10.8.3 Die ASCII Tabelle 126
10.8.4 Gerade und ungerade Zahlen 127
10.8.5 Der Weihnachtsbaum 127
10.8.6 Ein Menü 131
10.8.7 Ein Zahlenratespiel 132
11 Funktionen 135
11.1 Definition einer Funktion 135
11.1.1 Namen von Funktionen 135
11.1.2 Parameter 136
11.1.3 Rückgabewerte 137
11.1.4 Der Rückgabewert der Funktion main 138
11.1.5 Ablauf eines Funktionsaufrufes 139
11.2 Deklaration einer Funktion 141
11.2.1 Externe Funktionen 144
11.2.2 Statische Funktionen 144
11.3 Beispiele 144
11.3.1 Leeren des Eingabepuffers 144
11.3.2 Kalender für ein Jahr 145
11.3.3 Einfacher Taschenrechner 152
12 Speicherklassen 155
12.1 Lokale Variablen 155
12.1.1 Die Blockstruktur von C 155
12.1.2 Variablen der Speicherklasse auto 157
12.1.3 Variablen der Speicherklasse regist er 157
xii Inhaltsverzeichnis
12.1.4 Variablen der Speicherklasse static 158
12.2 Globale Variablen 158
12.2.1 Variablen der Speicherklasse extern 159
12.2.2 Variablen der Speicherklasse static 160
12.3 Übersicht über alle Speicherklassen in C 160
13 Felder 163
13.1 Eindimensionale Felder 163
13.2 Mehrdimensionale Felder 165
13.3 Initialisierung von Feldern 167
13.4 Konstante Felder 169
13.5 Felder als Parameter 169
13.6 Einfache Sortierverfahren 170
13.6.1 Minimum Suche 170
13.6.2 Bubble Sort 172
13.7 Einfache Suchverfahren 173
13.7.1 Sequenzielles Suchen 173
13.7.2 Binäres Suchen 174
13.8 Beispiele 175
13.8.1 Multiplikation von Matrizen 175
13.8.2 Berechnung der Einkommensteuer verbesserte Variante 177
13.8.3 Kopieren von Feldern 178
14 Zeiger 179
14.1 Allgemeines 179
14.2 Zeiger als Parameter 183
14.3 Die „Dualität" von Zeigern und Feldern 184
14.4 Zeigerarithmetik 186
14.5 Komplexere Fälle: Felder von Zeigern, Zeiger auf Zeiger 187
14.6 Konstante Zeiger 191
14.7 Zeiger auf Funktionen 192
14.7.1 Adressen von Funktionen 192
14.7.2 Definition 192
14.7.3 Verwendung 193
14.7.4 Typdefinitionen mit typedef 194
14.8 Beispiele 195
14.8.1 Inkrement Funktion 195
14.8.2 Lösen quadratischer Gleichungen verbesserte Variante 196
Inhaltsverzeichnis xiii
15 Zeichenketten 199
15.1 Literale 199
15.2 Zeichenketten in C 200
15.3 Datentyp 201
15.4 Initialisierung von Zeichenketten 202
15.5 Elementare Funktionen für Zeichenketten 203
15.6 Felder von Zeigern auf Zeichenketten 205
15.7 Argumente der Funktion main 207
15.8 Beispiele 208
15.8.1 Vorzeitiges Ende einer Zeichenkette 208
15.8.2 Die Funktion strcpy 208
15.8.3 Die Funktion strlen 210
15.8.4 Die Funktion strcmp 210
15.8.5 Die Funktion atol 211
15.8.6 Kalender für ein Jahr verbesserte Variante 212
15.8.7 Sortieren von Zeichenketten 213
15.8.8 Einfaches Verschlüsseln nach Julius Cäsar 214
16 Abgeleitete Datentypen 215
16.1 Richtlinien 215
16.2 Strukturen 216
16.2.1 Einfache Strukturen 217
16.2.2 Funktionen und Strukturen 220
16.2.3 Zeiger auf Strukturen 221
16.2.4 Felder von Strukturen 222
16.2.5 Bitfelder 225
16.3 Aufzählungen 226
16.4 Variante Strukturen 228
16.5 Rekursive Strukturen 232
16.6 Deklaration von abgeleiteten Datentypen 232
16.7 Typdefinition mit typedef 234
16.8 Beispiele 235
16.8.1 Ein Menü 235
16.8.2 Eine Adressverwaltung 237
xiv Inhaltsverzeichnis
17 Dateien 243
17.1 Datenströme 243
17.2 Öffnen und Schließen von Datenströmen 244
17.3 Ein und Ausgabe 246
17.4 Beispiele 249
17.4.1 Kopieren von Dateien 249
17.4.2 Ausgeben von Dateien 250
17.4.3 Eine Adressverwaltung verbesserte Variante 250
18 Rekursive Funktionen 257
18.1 Rekursive Algorithmen 257
18.2 Rekursive Funktionen in C 258
18.3 Beispiele 260
18.3.1 Binäres Suchen 260
18.3.2 Quicksort 261
19 Datenstrukturen 265
19.1 Datenstrukturen und abstrakte Datenstrukturen 265
19.2 Listen 266
19.2.1 Eigenschaften und Terminologie 266
19.2.2 Methoden und Implementierung 267
19.2.2.1 Einfügen eines neuen Elementes 269
19.2.2.2 Entfernen eines Elementes 271
19.2.3 Weitere Arten von Listen 273
19.3 Stapel und Schlangen 274
19.3.1 Stapel 274
19.3.2 Schlangen 275
19.3.3 Zirkularpuffer 275
19.4 Baum Strukturen 276
19.4.1 Eigenschaften und Terminologie 276
19.4.2 Binäre Bäume 278
19.4.3 Binäre Suchbäume 280
19.4.4 Methoden 281
19.4.4.1 Traversieren von Bäumen 281
19.4.4.2 Suchen eines Elementes in einem binären Suchbaum 282
19.4.4.3 Einfügen eines neuen Elementes in einen binären Suchbaum 283
19.4.4.4 Löschen eines Elementes in einem binären Suchbaum 283
19.5 Heap Strukturen 287
19.5.1 Eigenschaften 287
Inhaltsverzeichnis xv
19.5.2 Methoden 288
19.5.2.1 Die Methode UpHeap 288
19.5.2.2 Die Methode DownHeap 289
19.5.2.3 Entfernen von Elementen 290
19.5.2.4 Aufbau eines Heaps durch Einfügen von Elementen 291
19.5.2.5 Aufbau eines Heaps in einem Feld 291
19.5.2.6 Sortieren mit Heaps 291
19.6 Hash Strukturen 293
19.6.1 Hash Funktion 297
19.6.2 Getrennte Verkettung 298
19.6.3 Eigenschaften 300
19.7 Vergleich der Datenstrukturen 300
20 Dynamischer Speicher 303
20.1 Aufgaben der Speicherverwaltung 303
20.2 Anfordern von Speicher 304
20.3 Verändern der Größe von Speicherblöcken 307
20.4 Freigeben von Speicher 308
20.5 Typische Fehler 308
20.5.1 Kein Speicher mehr frei 309
20.5.2 Freigabe mit einer falschen Adresse 309
20.5.3 Freigabe eines bereits freigegebenen Speichers 309
20.5.4 Freigabe eines Feldes 310
20.5.5 Freigabe einer Variable 310
20.5.6 Freigabe eines nicht initialisierten Zeigers 310
20.5.7 Zugriff auf einen ungültigen Speicher 310
20.5.8 Zugriff auf bereits freigegebenen Speicher 311
20.5.9 Zugriff mit falschen Indizes 311
20.5.10 Zugriff auf nicht initialisierten Speicher 311
20.5.11 Verlust des Speichers durch Überschreiben des Zeigers 312
20.5.12 Verlust des Speichers durch Verlust des Zeigers 312
20.5.13 Verlust des Speichers durch Rücksprung 313
20.5.14 Verlust des Speichers bei Rückgabe 313
20.5.15 Zu große Speicherblöcke 314
21 Numerik 315
21.1 Fehlerarten 315
21.1.1 Modellfehler 315
21.1.2 Datenfehler 315
xvi Inhaltsverzeichnis
21.1.3 Verfahrensfehler 316
21.1.4 Rundungsfehler 316
21.2 Mathematische Grundbegriffe 316
21.2.1 Relativer Fehler 317
21.2.2 Kondition 317
21.3 Sehr kleine und sehr große Zahlen 319
21.3.1 Ganze Zahlen 319
21.3.2 Punktzahlen 319
21.3.3 Summation von Punktzahlen 320
21.4 Auslöschung 322
22 Fehlerbehandlung 323
22.1 Behandlung von Fehlern im Programm 326
22.1.1 Fehlercodes 326
22.1.2 Fehlerweitergabe 328
22.2 Fehlerbehandlung mit Funktionen der Standard Bibliothek 329
22.2.1 Die Fehlervariable errno 329
22.2.2 Fehlerausgabe 330
22.2.3 Programmende mit exit 331
22.2.4 Die Funktion atexit 331
22.2.5 Die Funktion assert 331
22.3 Signalbehandlung 332
22.3.1 Definition von Signalbehandlungsfunktionen 333
22.3.2 Abbruch mit abort 334
23 Ein exemplarisches Software Projekt 335
23.1 Die Spezifikation 335
23.2 Präzisierung der Spezifikation 336
23.3 Bibliotheken 337
23.3.1 Wahl der Bibliothek 338
23.3.2 Verwendung von Bibliotheken 338
23.4 Realisierungsmöglichkeiten 339
23.4.1 Ansatz mit rekursiven Funktionen 340
23.4.2 Der Syntaxbaum 341
23.4.3 Der Auswertungsstapel 342
23.5 Entwurf 343
23.5.1 Beschreibung der Funktionen 343
23.5.2 Fehlerbehandlung 344
Inhaltsverzeichnis xvii
23.6 Implementierung des virtuellen Taschenrechners für den Textmodus 344
23.6.1 Das Modul main.o 345
23.6.2 Das Modul berechnung. o 347
23.6.3 Das Modul Stapel, o 350
23.6.4 Das Modul eingäbe, o 353
23.6.5 Die grafische Benutzeroberfläche 355
Literaturverzeichnis 357
Index 359 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Klima, Robert Selberherr, Siegfried 1955- |
author_GND | (DE-588)128379871 (DE-588)110258819 |
author_facet | Klima, Robert Selberherr, Siegfried 1955- |
author_role | aut aut |
author_sort | Klima, Robert |
author_variant | r k rk s s ss |
building | Verbundindex |
bvnumber | BV022887957 |
classification_rvk | ST 250 |
classification_tum | DAT 358f |
ctrlnum | (OCoLC)184989827 (DE-599)BVBBV022887957 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 2. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV022887957</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20080806</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">071017s2007 d||| |||| 00||| ger d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">983974810</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783211720004</subfield><subfield code="c">Pb. : ca. EUR 39.95, ca. EUR 39.95 (AT), ca. sfr 61.50</subfield><subfield code="9">978-3-211-72000-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3211720006</subfield><subfield code="c">Pb. : ca. EUR 39.95, ca. EUR 39.95 (AT), ca. sfr 61.50</subfield><subfield code="9">3-211-72000-6</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)184989827</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV022887957</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-91G</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-862</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 358f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Klima, Robert</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)128379871</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Programmieren in C</subfield><subfield code="c">Robert Klima ; Siegfried Selberherr</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Wien [u.a.]</subfield><subfield code="b">Springer</subfield><subfield code="c">2007</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVII, 366 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Selberherr, Siegfried</subfield><subfield code="d">1955-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)110258819</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=2946895&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016092838&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016092838</subfield></datafield></record></collection> |
id | DE-604.BV022887957 |
illustrated | Illustrated |
index_date | 2024-07-02T18:52:29Z |
indexdate | 2024-08-05T08:39:14Z |
institution | BVB |
isbn | 9783211720004 3211720006 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016092838 |
oclc_num | 184989827 |
open_access_boolean | |
owner | DE-91G DE-BY-TUM DE-1051 DE-862 DE-BY-FWS DE-860 DE-573 DE-83 DE-11 |
owner_facet | DE-91G DE-BY-TUM DE-1051 DE-862 DE-BY-FWS DE-860 DE-573 DE-83 DE-11 |
physical | XVII, 366 S. graph. Darst. |
publishDate | 2007 |
publishDateSearch | 2007 |
publishDateSort | 2007 |
publisher | Springer |
record_format | marc |
spellingShingle | Klima, Robert Selberherr, Siegfried 1955- Programmieren in C C Programmiersprache (DE-588)4113195-2 gnd |
subject_GND | (DE-588)4113195-2 |
title | Programmieren in C |
title_auth | Programmieren in C |
title_exact_search | Programmieren in C |
title_exact_search_txtP | Programmieren in C |
title_full | Programmieren in C Robert Klima ; Siegfried Selberherr |
title_fullStr | Programmieren in C Robert Klima ; Siegfried Selberherr |
title_full_unstemmed | Programmieren in C Robert Klima ; Siegfried Selberherr |
title_short | Programmieren in C |
title_sort | programmieren in c |
topic | C Programmiersprache (DE-588)4113195-2 gnd |
topic_facet | C Programmiersprache |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=2946895&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016092838&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT klimarobert programmiereninc AT selberherrsiegfried programmiereninc |
Beschreibung
THWS Schweinfurt Zentralbibliothek Lesesaal
Signatur: |
2000 ST 250 C01 K65(2) |
---|---|
Exemplar 1 | ausleihbar Verfügbar Bestellen |