Skip to main content

2011 | Buch

C als erste Programmiersprache

Vom Einsteiger zum Fortgeschrittenen

verfasst von: Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll

Verlag: Vieweg+Teubner Verlag

insite
SUCHEN

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Grundbegriffe der Programmierung
Zusammenfassung
Bevor man mit einer Programmiersprache umzugehen lernt, muss man wissen, was ein Programm prinzipiell ist und wie man Programme konstruiert. Damit wird sich das erste Kapitel befassen. Leser, die bereits eine höhere Programmiersprache erlernt haben, können prüfen, ob sie tatsächlich die hier präsentierten Grundbegriffe (noch) beherrschen und gegebenenfalls dieses Kapitel „überfliegen“. Ehe es „zur Sache geht“, zunächst als spielerischer Einstieg in Kapitel 1.1 das Hello-World-Programm.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 2. Einführung in die Programmiersprache C
Zusammenfassung
Das Betriebssystem UNIX wurde bei den Bell Laboratorien der Fa. AT&T entwickelt. Die erste Version von UNIX lief auf einer PDP-7, einem Rechner der Fa. DEC. UNIX war zunächst in Assembler geschrieben. Um das neue Betriebssystem auf andere Rechnertypen portieren zu können, sollte es in einer höheren Programmiersprache neu geschrieben werden. Gesucht war eine Programmiersprache von der Art eines „Super-Assemblers“, der in Form einer höheren Programmiersprache die folgenden Merkmale haben sollte:
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 3. Einfache Beispielprogramme
Zusammenfassung
Mit dem Hello-World-Programm in Kapitel 1.1 haben Sie bereits erste Erfahrungen im Programmieren gesammelt. Programmieren kann viel Spaß bereiten. Im Folgenden sollen deshalb andere kurze und aussagekräftige Programme vorgestellt werden, damit Sie sich spielerisch voran arbeiten, um dann auch Augen und Ohren für die erforderliche Theorie zu haben. Alle Programme des Buches finden sich auch im begleitenden Webauftritt (http://​www.​stz-softwaretechnik.​de/​cbuch/​), sodass Sie die Programme nicht abzutippen brauchen.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 4. Lexikalische Konventionen
Zusammenfassung
„Lexikalisch“ bedeutet „ein Wort (eine Zeichengruppe) betreffend“, ohne den Textzusammenhang (Kontext), in dem dieses Wort steht, zu berücksichtigen. Dies bedeutet, dass im Folgenden die Konventionen, um Wörter in der Programmiersprache C zu bilden, besprochen werden. Die Wörter oder Zeichengruppen, aus denen ein Programmtext aufgebaut ist, werden auch als lexikalische Einheiten bezeichnet.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 5. Datentypen und Variablen
Zusammenfassung
In C wird verlangt, dass alle Variablen einen genau definierten, vom Programmierer festgelegten Typ haben. Der Typ bestimmt, welche Werte eine Variable annehmen kann und welche nicht.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 6. Einführung in Pointer und Arrays
Zusammenfassung
Der Arbeitsspeicher eines Rechners ist in Speicherzellen eingeteilt. Jede Speicherzelle trägt eine Nummer.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 7. Anweisungen, Ausdrücke und Operatoren
Zusammenfassung
Ein Ausdruck ist in C im einfachsten Fall der Bezeichner (Name) einer Variablen oder einer Funktion, eine Konstante oder eine Zeichenkette. Meist interessiert der Wert eines Ausdrucks. So hat eine Konstante einen Wert, eine Variable kann einen Wert liefern, aber auch der Aufruf einer Funktion. Durch Verknüpfungen von Operanden – ein Operand ist selbst ein Ausdruck – durch Operatoren und gegebenenfalls auch runde Klammern entstehen komplexe Ausdrücke.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 8. Kontrollstrukturen
Zusammenfassung
Die sequenzielle Programmausführung kann durch Kontrollstrukturen beeinflusst werden. In Abhängigkeit von der Bewertung von Ausdrücken können Anweisungen übergangen oder ausgeführt werden.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 9. Blöcke und Funktionen
Zusammenfassung
Der Block als Kontrollstruktur für die Sequenz wurde bereits in Kapitel 8.1 vorgestellt. Die Anweisungen eines Blockes werden durch Blockbegrenzer – in C, C++ und Java sind dies die geschweiften Klammern – zusammengefasst. Statt Block ist auch die Bezeichnung zusammengesetzte Anweisung üblich.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 10. Fortgeschrittene Programmierung mit Pointern
Zusammenfassung
Wie aus Kapitel 6 bereits bekannt, wird ein eindimensionaler Vektor (eindimensionales Array) folgendermaßen definiert:
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 11. Strukturen, Unionen und Bitfelder
Zusammenfassung
Eine Datenstruktur mit einer festen Anzahl von Komponenten, die verschiedene Typen haben können, konnte man bereits in COBOL definieren. Eine solche Datenstruktur wurde von N. Wirth in Pascal als Datentyp eingeführt und dort Record genannt. Der Name Record wurde von N. Wirth nach dem Satz in einer Datei auf der Platte gewählt, der im Englischen „record“ heißt. Ein „record“ auf der Platte kann Komponenten von verschiedenem Typ enthalten. Im Falle einer Angestelltendatei kann ein solcher Satz folgendermaßen aussehen:
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 12. Komplexere Datentypen, eigene Typnamen und Namensräume
Zusammenfassung
Vereinbarungen in C können im Allgemeinen nicht stur von links nach rechts gelesen werden. Stattdessen muss man die Vorrang-Reihenfolge der Operatoren (siehe Kapitel 7.6.8) beachten. Im Folgenden werden einige komplexere Datentypen vorgestellt, bei denen diese Reihenfolge eine Rolle spielt.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 13. Speicherklassen
Zusammenfassung
Bis zu dem hier vorliegenden Kapitel wurde generell unterschieden zwischen
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 14. Ein- und Ausgabe
Zusammenfassung
Programme laufen fast immer nach dem Schema “Eingabe/Verarbeitung/Ausgabe” (EVA-Prinzip) ab. Schon daran ist die Wichtigkeit der Ein-/Ausgabe in Programmen zu erkennen. Ein gutes Ein-/Ausgabe-System ist für die Akzeptanz einer Programmiersprache von großer Bedeutung.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 15. Übergabeparameter und Rückgabewert eines Programms
Zusammenfassung
Informationen an ein Programm können beim Start des Programms in der Kommandozeile als Parameter (Kommandozeilenargumente) übergeben werden wie im folgenden Beispiel:
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 16. Dynamische Speicherzuweisung, Listen und Bäume
Zusammenfassung
Prinzipiell unterscheidet man bei Programmiersprachen zwischen statischen und dynamischenVariablen. Statisch im Sinne des Unterschieds zwischen statisch und dynamisch hat überhaupt nichts mit den static-Variablen (statischen Variablen) von C zu tun. In diesem Kapitel kommen statische Variablen nur in ihrer allgemeinen Bedeutung als Gegensatz zu dynamischen Variablen vor.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 17. Sortieren und Suchen
Zusammenfassung
Sortieren und Suchen sind wohl die häufigsten Tätigkeiten in der Datenverarbeitung. Das kann man auch in der historischen Entwicklung sehen: die Vorläufer der heutigen Computer waren Sortiermaschinen für Lochkarten.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 18. Präprozessor
Zusammenfassung
Beim Aufruf eines C-Compilers wird vor den eigentlichen Compilerläufen wie Syntaxund Semantik-Prüfung sowie Code-Generierung der Präprozessor (englisch Preprocessor) gestartet. Die wichtigsten Aufgaben des Präprozessors sind:
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Kapitel 19. Software Engineering in C
Zusammenfassung
Jede Programmiersprache unterstützt durch ihre Konzepte bestimmte Vorgehensweisen beim Programmentwurf. Neue Programmiersprachen werden geschaffen als Antwort auf neue Konzepte und Vorgehensweisen, die sich als nützlich und effizient erwiesen haben. Beispielsweise wurde Pascal entworfen mit dem Ziel, das Strukturierte Programmieren zu unterstützen. Modula-2 wurde entworfen, um das Programmieren mit Modulen zu unterstützen.
Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
Backmatter
Metadaten
Titel
C als erste Programmiersprache
verfasst von
Manfred Dausmann
Ulrich Bröckl
Dominik Schoop
Joachim Goll
Copyright-Jahr
2011
Verlag
Vieweg+Teubner Verlag
Electronic ISBN
978-3-8348-9879-1
Print ISBN
978-3-8348-1221-6
DOI
https://doi.org/10.1007/978-3-8348-9879-1