Skip to main content
main-content

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

Weitere Informationen

Premium Partner

    Bildnachweise