Programmieren lernen mit C

Ähnliche Dokumente
Programmieren in. Brian W. Kernighan Dennis M. Ritchie ANSIC. Mit dem C-Reference Manual in deutscher Sprache. Zweite Ausgabe

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage

С als erste Programmiersprache

Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache

Programmieren lernen mit Perl

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

C als erste Programmiersprache

C für Java-Programmierer

UNIX Shell-Programmierung

C für Java- Programmierer

Inhaltsverzeichnis. Vorwort.11

Informatik I Programmieren in C

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Grundkurs Software- Entwicklung mit C++

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer

Netzwerkprogrammierung unter Linux und UNIX

Die Unternehmergesellschaft

Software-Entwicklung mit Delphi

Objektorientierte Programmierung in Java

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Filme der Kindheit Kindheit im Film

Effektiv Programmieren in С und C++

Informatik für Ingenieure

Technische Probleme lösen mit C/C++

Mikrocomputertechnik mit der 8051-Controller-Familie

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Analyse und Entwurf von Softwaresystemen mit der UML

C-Programmierung lernen

Verifikation und Validierung für die Simulation in Produktion und Logistik

Basiswissen Mathematik, Statistik und Operations Research für Wirtschaftswissenschaftler

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Inhaltsverzeichnis Grundbegriffe der Programmierung Strukturelle Programmierung

Informationserschließung und Automatisches Indexieren

Übersicht über die C/C++ Bibliotheksfunktionen

FEM zur Berechnung von Kunststoff- und Elastomerbauteilen

JavaScript objektorientiert

Berechnungen in Excel

Softwareentwicklung eingebetteter Systeme

Ingenieurmathematik mit MATLAB

Grundkurs Programmieren in Java

Zeitung als Zeichen. Identität und Mediennutzung nationaler Minderheiten in Deutschland. Bearbeitet von Swea Starke

Mathematische Optimierung mit Computeralgebrasystemen

Künstliche Intelligenz

Das PostNuke Kompendium

Speicherprogrammierbare Steuerungen

Erfolgreich mit Scrum - Einflussfaktor Personalmanagement

Bauaufsichtliche Zulassungen - Teil IV: Gewässerschutz (BAZ IV)

Mathematik für Wirtschaftsingenieure

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

Office 2010 Programmierung mit VSTO und.net 4.0

10 Die Programmiersprache C99: Zusammenfassung

Social Media. Potenziale, Trends, Chancen und Risiken. Bearbeitet von Roland Gabriel, Heinz-Peter Röhrs

Statistische Tolerierung

Mathematische Probleme lösen mit Maple

TURBO PASCAL VERSION 5.5

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Basiswissen Zahlentheorie

Prozessoptimierung mit statistischen Verfahren

Elementare Stochastik

Medizinische Statistik mit R und Excel

Programmierung mit C Zeiger

Easy ISO 9001:2000 für kleine Unternehmen

Programmierung in C/C++

Figur und Handlung im Märchen

Berechnungen in OpenOffice.org / StarCalc

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Softwaretests mit Junit

Industrieroboter. Methoden der Steuerung und Regelung. Bearbeitet von Wolfgang Weber

Quantum Computing verstehen

Vorkurs Mathematik. Ein Übungsbuch für Fachhochschulen. Bearbeitet von Michael Knorrenschild

SPS-Grundlagen. Aufbau, Programmierung (IEC 61131, S7), Simulation, Internet, Sicherheit. Bearbeitet von Jens von Aspern

Prozessorientierte Verwaltungsmodernisierung

4.2 Programmiersprache C

Webseiten entwickeln mit ASP.NET

Das QM-Handbuch. Qualitätsmanagement für die ambulante Pflege. Bearbeitet von Simone Schmidt

VBA mit Microsoft Excel für Kids

Elektrotechnik für Ingenieure 1

Inhaltsverzeichnis. 7.9 Aufgaben...207

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Das Bundesverfassungsgericht im Politikfeld Innere Sicherheit

Grundkurs Theoretische Physik 1

ISO 9001: vom Praktiker für Praktiker. Bearbeitet von Norbert Waldy

Wahrscheinlichkeitsrechnung und schließende Statistik

C programmieren. Jürgen Wolf

Mezzanine-Kapital für den Mittelstand

DIN EN ISO 9000:2000 ff. umsetzen

Borland Delphi 6 -- Kochbuch

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

Ganze Zahlen, Ausdrücke Variablen/Konstanten

Das lineare Komplementaritätsproblem

HOAI-Kommentar. zur Honorarordnung für Architekten und Ingenieure. Bearbeitet von RA Prof. Rudolf Jochem, Dipl.-Ing.

Erste Schritte der Programmierung in C

Die finanzpolitische Bedeutung des Sports in Deutschland

Optimierung. Statische, dynamische, stochastische Verfahren für die Anwendung. Bearbeitet von Markos Papageorgiou, Marion Leibold, Martin Buss

SPS-Programmierung in Anweisungsliste nach IEC

Transkript:

Programmieren lernen mit C Bearbeitet von Karlheinz Zeiner 4., aktualisierte Auflage 2000. Buch. XIV, 361 S. Hardcover ISBN 978 3 446 21596 2 Format (B x L): 16,9 x 24,1 cm Gewicht: 730 g Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Prozedurorientierte Programmierung Zu Leseprobe schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, ebooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

CARL HANSER VERLAG Karlheinz Zeiner Programmieren lernen mit C 3., überarbeitete und aktualisierte Auflage 3-446-21596-4 www.hanser.de

VII Überblick Teil 1 1 Programmieren lernen - Grundlagen... 1 1.1 Zwei kleine C Programme...1 1.2 Grundbegriffe der Syntax, Kommentare...9 1.3 Datentypen und Ausdrücke...14 1.4 Algorithmen und Kontrollstrukturen...21 1.5 Vektoren und Zeichenketten...42 1.6 Adressen und Zeiger...51 1.7 Modularisierung, Funktionen...55 1.8 Ein-/Ausgabe...74 Teil 2 2 Datendarstellung in Rechnern, elementare Datentypen... 85 3 Operatoren und Ausdrücke, mathematische Funktionen... 119 4 Kontrollstrukturen, strukturierte Programmierung... 137 5 Funktionen, Speicherklassen und Modulkonzept... 169 6 Grundsätze für die Programmentwicklung... 207 7 Der Preprozessor... 221 8 Bit-Operatoren und Ausdrücke... 231 9 Zeiger... 239 10 Vektoren... 253 11 Zeichenketten... 279 12 Strukturen, dynamische Datenstrukturen, Unionen... 293 13 Dateien (Files)... 311 Das Buch gliedert sich in zwei Teile. Der erste Teil behandelt die Grundlagen des Programmierens. Die weiteren Kapitel vertiefen die Themen des ersten Teils oder beschäftigen sich mit zusätzlichen Themen. Falls Sie noch in keiner Sprache programmiert haben, dann sollten Sie sich mit dem 1. Teil solange auseinandersetzen, bis sie die Übungsaufgaben lösen und die Kontrollfragen beantworten können, sonst können Sie das 1. Kapitel als Leitfaden durch die wichtigsten Themen betrachten, um je nach Bedarf zu den weiteren Kapiteln zu wechseln. Die Reihenfolge der Kapitel 2 bis 13 ist zwar sinnvoll, aber nicht unbedingt zwingend. Neben dem 1. Teil beschäftigen sich die Kapitel 5 (Modulkonzept) und 9 (Zeiger) mit fundamentalen Konzepten in C.

IX Inhaltsverzeichnis 1 Programmieren lernen - Grundlagen...1 1.1 Zwei kleine C-Programme... 1 1.2 Grundbegriffe der Syntax, Kommentare... 9 1.2.1 Zeichensatz und Wörter...9 1.2.2 Syntaxnotation...10 1.2.3 Schlüsselwörter...11 1.2.4 Kommentare...12 1.2.5 Fehlermeldungen des Compilers...13 1.3 Datentypen und Ausdrücke... 14 1.3.1 Datentypen...14 1.3.2 Ausdrücke (expressions) und Operatoren (operators)...16 1.4 Algorithmen und Kontrollstrukturen... 21 1.4.1 Algorithmen...21 1.4.2 Sequenz...21 1.4.3 Wiederholung...22 1.4.4 Auswahl...31 1.4.5 Beispiele...32 1.4.6 Zusammenfassung: Von der Aufgabe zum Programm...38 1.5 Vektoren und Zeichenketten... 42 1.5.1 Vektoren...42 1.5.2 Zeichenketten...46 1.6 Adressen und Zeiger... 51 1.7 Modularisierung, Funktionen... 55 1.7.1 Allgemeines, Begriffe...55 1.7.2 Datenaustausch zwischen Funktionen...60 1.7.3 Funktionsprototypen...71 1.8 Ein-/Ausgabe... 74 1.8.1 Allgemeines...74 1.8.2 Ein-/Ausgabe und Dateien...75 1.8.3 Funktionen der Standardbibliothek für die Ein-/Ausgabe...77 2 Datendarstellung in Rechnern, elementare Datentypen...85 2.1 Allgemeines zu Zahlensystemen und Codes... 85 2.1.1 Zahlensysteme...85 2.1.2 Codes...88 2.2 Ganze Zahlen (integer)... 89 2.2.1 Interne Darstellung (Codierung) ganzer Zahlen...89 2.2.2 Datentypen für ganze Zahlen in C...94 2.2.3 (f)printf und (f)scanf Umwandlungen für ganze Zahlen...96

X Inhaltsverzeichnis 2.3 Zeichen und Zeichensätze... 97 2.3.1 Codierung von Zeichen...97 2.3.2 Der ANSI/ASCII-Code und der Datentyp char...98 2.3.3 Ein- und Ausgabe von Zeichen, (f)printf und (f)scanf-umwandlungen...101 2.3.4 Breite Zeichen und Unicode...104 2.4 Reelle Zahlen... 105 2.4.1 Festkommazahlen...105 2.4.2 Gleitkommadarstellung...106 2.4.3 C-Gleitkommatypen (floating types)...108 2.4.4 (f)printf und (f)scanf Umwandlungen für Gleitkommazahlen...109 2.5 Der sizeof-operator... 111 2.6 Typumwandlungen (casts)... 112 2.7 Vereinbarungen... 112 2.8 typedef und enum... 115 2.8.1 typedef...115 2.8.2 Aufzählungen, enum...115 3 Operatoren und Ausdrücke, mathematische Funktionen... 119 3.1 Arithmetische Operatoren... 119 3.2 Die Zuweisungsoperatoren, L-Werte... 120 3.3 Unäre Ausdrücke... 124 3.4 Vergleichsoperatoren... 125 3.5 Logische Operatoren und Ausdrücke... 128 3.6 Der Komma-Operator... 129 3.7 Implizite Typumwandlung... 130 3.8 Rangordnung der Operatoren und Reihenfolge der Auswertung... 131 3.9 Mathematische Funktionen... 134 4 Kontrollstrukturen, strukturierte Programmierung... 137 4.1 Steuer- oder Kontrollfluß, Flußdiagramme... 137 4.2 Strukturierte Programmierung... 138 4.3 Arten von Strukturblöcken... 140 4.3.1 Elementarblock...140 4.3.2 Sequenz...141 4.3.3 Auswahl...142 4.3.4 Wiederholung, Iteration...150 4.4 C-Spezifisches... 156 4.4.1 Die Leeranweisung (empty-statement)...156 4.4.2 Die goto-anweisung...156 4.4.3 Die continue-anweisung...157 4.5 Programmbeispiele... 158 4.5.1 Kalender...158 4.5.2 Rechnen mit Zahlen in der Zweierkomplementdarstellung...162

Inhaltsverzeichnis XI 5 Funktionen, Speicherklassen und Modulkonzept... 169 5.1 Definition von Funktionen... 169 5.2 Funktionsprototypen... 172 5.3 Aufruf einer Funktion und Übergabemechanismus... 172 5.4 Die Speicherklasse auto... 175 5.5 Die Speicherklasse extern... 177 5.6 Programme mit mehreren Quelltext- bzw. Objektdateien... 179 5.7 Weitere spezielle Speicherklassen... 181 5.7.1 Die Speicherklasse register...181 5.7.2 Die Speicherklasse static...182 5.7.3 Externe Variablen mit static-attribut...183 5.7.4 Das static- und extern-attribut bei Funktionen...183 5.8 Datenkapselung... 184 5.9 Verwaltung größerer Programme, Definitionsdateien... 189 5.10 Make-Utility... 197 5.11 Rekursion... 199 6 Grundsätze der Programmentwicklung... 207 6.1 Phasenmodell... 207 6.1.1 Planungsphase...207 6.1.2 Definitionsphase...208 6.1.3 Entwurfsphase...208 6.1.4 Codieren - Implementieren...213 6.1.5 Testen...214 6.1.6 Wartung und Pflege...215 6.2 Prinzipien der Softwareentwicklung... 215 6.3 Qualität von Softwareprodukten... 217 6.4 Dokumentation... 218 7 Der Preprozessor... 221 7.1 Die #include-anweisung... 221 7.2 Die #define-anweisung (1)... 222 7.3 Die #define-anweisung (2), Makros... 223 7.4 Bedingte Übersetzung (conditional compilation)... 227 7.5 #line (Zeilennummern)... 229 7.6 Textersatz in Zeichenketten, der Operator #... 229 7.7 #error und #pragma... 229

XII Inhaltsverzeichnis 8 Bit-Operatoren und Ausdrücke... 231 8.1 Bit- und Schiebe-Operatoren... 231 8.2 Bitmuster und Bit-Masken... 235 9 Zeiger... 239 9.1 Einleitende Bemerkungen... 239 9.2 Vereinbarung von Zeigervariablen und Zeigertypen... 241 9.3 Inhalts- und Adreßoperator, Wertzuweisungen an Zeiger... 241 9.4 Zeigerarithmetik... 244 9.4.1 Summe und Differenz von Zeiger und int...244 9.4.2 Vergleichsoperationen mit Zeigern...246 9.4.3 Zeigersubtraktion...246 9.5 Speicherplatz anfordern und freigeben... 249 10 Vektoren... 253 10.1 Eindimensionale Vektoren... 253 10.1.1 Vereinbarung und Zusammenhang mit Zeigerarithmetik...253 10.1.2 Vektoren als formale und aktuelle Parameter von Funktionen...254 10.1.3 Dynamische Erzeugung eines Vektors...256 10.2 Mehrdimensionale Vektoren... 257 10.2.1 Definition und Indizierung...257 10.2.2 Anordnung der Elemente im Speicher...258 10.2.3 Mehrdimensionale Vektoren als Argument von Funktionen...261 10.3 Initialisierung von Vektoren... 262 10.4 Algorithmen und Programmbeispiele... 262 10.4.1 Quicksort...262 10.4.2 Lineare Regression...267 10.4.3 Gauß'scher Algorithmus...271 11 Zeichenketten... 279 11.1 Allgemeines, Zeichenketten in C... 279 11.2 Ein-/Ausgabe von Zeichenketten... 282 11.3 Funktionen für Zeichenketten in der C-Bibliothek... 284 11.4 Vektoren mit Zeigern auf Zeichenketten... 284 11.5 Argumente der Funktion main... 290

Inhaltsverzeichnis XIII 12 Strukturen, dynamische Datenstrukturen, Unionen... 293 12.1 Strukturen... 293 12.1.1 Typ-Deklarationen und Definition von Variablen...293 12.1.2 Zugriff auf Strukturen und die Felder einer Struktur...295 12.1.3 Strukturen und Funktionen...296 12.1.4 Initialisierung von Strukturen...300 12.2 Verkettete Listen, Bäume... 300 12.3 Unionen... 308 13 Dateien (Files)... 311 13.1 Dateioperationen... 311 13.2 Fehlererkennung und Behandlung... 312 13.3 Binärdateien... 313 13.4 Random Access... 319 A Anhang A: Die Standard-Bibliothek... 321 A.1 Diagnose <assert.h>... 321 A.2 Test und Behandlung von Zeichen <ctype.h>... 321 A.3 Fehlerbehandlung <errno.h>... 322 A.4 Grenzwerte der Gleitkommadarstellung <float.h>... 322 A.5 Wertebereich für Ganzzahltypen <limits.h>... 323 A.6 Lokale Besonderheiten <locale.h>... 323 A.7 Mathematische Funktionen <math.h>... 323 A.8 Nichtlokale Sprünge <setjmp.h>... 323 A.9 Signale <signal.h>... 323 A.10 Variable Argumentlisten <stdarg.h>... 324 A.11 Allgemein gültige Definitionen <stddef.h>... 324 A.12 Ein-/Ausgabe <stdio.h>... 325 A.13 Allgemeine Hilfsfunktionen <stdlib.h>... 333 A.14 Funktionen für Zeichenketten <string.h>... 337 A.15 Uhrzeit und Zeit <time.h>... 339 A.16 Ausblick auf die C99 Bibliothek... 340 Anhang B: Syntaxzusammenfassung... 343 Literatur... 350 Stichwortverzeichnis... 351 ASCII-Code Tabelle... 360 Tabelle der Operatoren, Rangordnung der Operatoren... 361