Skip to main content
main-content

Über dieses Buch

Dieses Lehrbuch führt in die Hochsprachen-Programmierung ein. Dazu wurde die Sprache C/C++ gewählt, weil sie sich im Laufe der Jahre zur bedeutendsten Universalsprache mit breitestem Anwendungsspektrum entwickelt hat. Das gilt nicht nur für die Systemprogrammierung, sondern gerade auch für technische und wissenschaftliche Anwendungen. Das Buch entspricht inhaltlich einer zweisemestrigen Einführung in die Programmierung. Der Stundenumfang wird dabei mit insgesamt 4 Semesterwochenstunden Vorlesung und ebenso vielen Übungen angenommen. Es ist auch als Begleitbuch zu einem entsprechenden Kompaktkurs oder zum Selbststudium geeignet. Eigentlich kann es von jedem benutzt werden, der Wert auf eine systematische Vorgehensweise legt. Ein ausführliches Kapitel widmet sich der objektorientierten Programmierung. Beispiele und Übungsaufgaben ermöglichen die jeweils sofortige praktische Anwendung des gerade Gelernten. Die Quelltexte der Beispielprogramme sowie die Lösungen zu den Übungsaufgaben finden Sie im Internet auf der Buchwebseite der Autoren, die im Vorwort benannt ist.

Inhaltsverzeichnis

Frontmatter

Chapter 1. Programmieren in C/C++

Zusammenfassung
Mit diesem Buch beabsichtigen wir, in die Grundlagen der Programmierung einführen. Aufgrund ihrer zunehmenden praktischen Bedeutung wählen wir dazu die Sprache C bzw. C++. Als Entwicklungsumgebung stellen wir uns einen PC unter Windows vor. Allerdings ist C hervorragend portabel, d. h. Programme lassen sich ohne großen Änderungsaufwand auf andere Betriebssysteme oder andere Rechner, z. B. UNIX- oder Linux-Workstations oder -Notebooks, übertragen, sofern man sich an den Standard hält und auf compilerspezifische Funktionen verzichtet.
Gerd Küveler, Dietrich Schwoch

Chapter 2. Über C und C++

Zusammenfassung
Es wird ein kurzer Überblick über die Entwicklung der Sprache C und deren Weiterentwicklung zu C++ gegeben. Außerdem werden die wichtigsten Eigenschaften und Merkmale von C/C++ behandelt.
Gerd Küveler, Dietrich Schwoch

Chapter 3. Grundlagen

Zusammenfassung
Eine Programmiersprache ist im Wesentlichen durch zwei Themenbereiche gekennzeichnet: Datenstrukturen und Programm-Ablaufstrukturen.
Mit „Datenstrukturen“ werden die verschiedenen Organisationsmöglichkeiten von Daten beschrieben. Der Programmierer muss sich sehr gut überlegen, welche Datenstrukturen am ehesten dem Problem angemessen sind. So kann es in dem einen Fall günstig sein, skalare Einzelwerte zu verarbeiten, während in einem anderen Fall die Zusammenfassung von Daten zu Feldern (z. B. Vektoren, Matrizen), Verbunden (z. B. Adressen von Studenten) oder ganzen Dateien (z. B. ein eine komplette Serie von Messwerten) erheblich sinnvoller ist.
„Ablaufstrukturen“ kennzeichnen die Möglichkeiten, vom linearen Ablauf des Programms abzuweichen und Schleifen oder Verzweigungen durchzuführen. Der Programmierer muss anhand der von der Sprache unterstützten Ablaufstrukturen entscheiden, welche zur Lösung der jeweiligen Aufgabe optimal geeignet ist. Bei größeren Programmen sollte man evtl. Planungshilfen wie Programm-Ablaufpläne oder Struktogramme benutzen.
Gerd Küveler, Dietrich Schwoch

Chapter 4. Vordefinierte Standard-Datentypen und einfache Operationen

Zusammenfassung
C/C++ besitzt, wie die meisten höheren Programmiersprachen, einige vordefinierte Standard-Datentypen. Die wichtigsten sind: ganze Zahlen (Typ int und ganzzahlige Sub-Typen), reelle Zahlen (Typ float und reelle Sub-Typen) und Einzel-Zeichen (Typ char und Sub-Typen). Einen logischen Datentyp, wie LOGICAL in FORTRAN oder BOOLEAN in Pascal, gibt es in C nicht, wohl aber in C++ (bool).
Der Wertevorrat, bzw. Wertebereich dieser Größen ist fest vorgegeben. Konstanten dieser Typen können unmittelbar im Programm auftreten, Variablen müssen vereinbart werden. Der Umgang mit Standard-Datentypen und den zugehörigen Operatoren wird ausführlich erläutert.
Gerd Küveler, Dietrich Schwoch

Chapter 5. Interaktive Ein-/Ausgabe

Zusammenfassung
Die Eingabe von Programmdaten und die Ausgabe von Ergebnissen sind über verschiedene Geräte möglich. So können z. B. Eingaben teils von der Tastatur eingegeben, teils auch aus einer vorbereiteten Datei gelesen und Ausgaben statt auf dem Bildschirm auf einem angeschlossenen Drucker ausgegeben werden. Die Ein- und Ausgabeanweisungen müssen i. a. Angaben über die beteiligten Geräte enthalten. In diesem Kapitel geht es um Eingaben von der Tastatur und Ausgaben auf den Bildschirm, die sogenannten Standard Ein-/Ausgabegeräte.
Die Standard Ein-/ Ausgabe-Operationen erfolgen interaktiv während des Programmlaufs. Damit hat der Anwender Möglichkeiten, z. B. auf Eingabefehler unmittelbar zu reagieren oder nach evtl. schon ausgegebenen Zwischenergebnissen weitere Eingaben anzupassen.
Die Ein-/Ausgabekonzepte von C und C++ unterscheiden sich grundlegend. Da das C++-Konzept flexibler und sicherer ist, stellen wir dieses ausführlicher vor. Das C-Konzept wird hier nur kurz angerissen.
Gerd Küveler, Dietrich Schwoch

Chapter 6. Programm-Ablaufstrukturen

Zusammenfassung
Die bis hierher vorgestellten Programme wurden stets in der Reihenfolge der codierten Programmanweisungen sequentiell abgearbeitet. Der diesen Programmen zugrunde liegende Strukturblock ist die „Sequenz“. Die Mächtigkeit einer Programmiersprache zeigt sich jedoch erst beim Einsatz von Kontroll- oder Ablaufstrukturen, die in Abhängigkeit von Variablenwerten oder Ausdrücken Abweichungen von der linearen Folge der Anweisungen ermöglichen.
Die grundlegenden die Kontrollstrukturen sind neben der Sequenz (Folge), die Iteration (Schleife, Wiederholung) und die Selektion (Auswahl). Die verschiedenen Schleifen- und Auswahl-Konstrukte von C/C++ werden ausführlich vorgestellt.
Gerd Küveler, Dietrich Schwoch

Chapter 7. Modularisierung von Programmen: Functions

Zusammenfassung
Bei komplexen Problemen tritt eine so große Schachtelungstiefe in den Strukturblöcken auf, dass das Programm unübersichtlich wird. Es ist daher günstiger, ein Problem in überschaubare Teilprobleme zu zerlegen und diese als separate Programm-Module zu entwickeln. Die höheren Programmiersprachen unterstützen diese Modularisierung eines Gesamtproblems durch die Unterprogrammtechnik. Auch für Unterprogramme gilt wieder das Schachtelungsprinzip, d. h. ein Programm-Modul kann weitere Unter-Module enthalten bzw. aufrufen. Dies führt zu einer übersichtlichen hierarchischen Programmstruktur. C/C++ besitzt nur eine Art von Programm-Modul, die Function.
Gerd Küveler, Dietrich Schwoch

Chapter 8. Höhere Datenstrukturen

Zusammenfassung
Die bisher vorgestellten skalaren Datentypen sind bereits in C/C++ vollständig vordefiniert. Zusätzlich kann der Programmierer jedoch auch zusammengesetzte Datenstrukturen einführen. Höhere Datenstrukturen sollen an zwei wichtigen Beispielen vorgestellt werden: Die Zusammenfassung gleichartiger Daten in Feldern, auch Arrays genannt sowie die Zusammenfassung inhaltlich zusammengehöriger Daten in Strukturen (struct). Außerdem wagen wir einen Blick auf den Datentyp Pointer, der v. a. in der reinen C-Programmierung eine wichtige Rolle spielt und der eine enge Beziehung zu Feldern aufweist.
Gerd Küveler, Dietrich Schwoch

Chapter 9. Arbeiten mit Dateien

Zusammenfassung
Die Verarbeitung größerer Datenmengen ist ohne Zugriffe auf Dateien praktisch unmöglich. Eingaben können statt der bisher benutzten interaktiven Tastatureingabe aus Dateien (Files) gelesen, die Ergebnisse statt auf dem Bildschirm dargestellt, wieder in Dateien geschrieben werden. Die Verwaltung von Dateien gehört zu den Aufgaben des Betriebssystems. Dateizugriffe durch ein Programm greifen in eine wichtige Schnittstelle zwischen Programmiersprache und Betriebssystem ein. Eine Datei ist in der Regel aus gleichartigen Elementen aufgebaut. Die Elemente haben eine feste Datenstruktur, z. B. die Zeilenstruktur von Text(ASCII)-Dateien, einzelne float-Werte, komplette Felder oder eine struct-Struktur. Der Datenaustausch mit Da¬teien erfolgt grundsätzlich in Einheiten dieser Elemente über eine vereinbarte Filevariable. Die Programmiersprache „sieht“ die Datei über das Fenster eines logischen Schreib- oder Lesezeigers, der sich elementweise über die Datei schiebt. Das Ende einer Datei ist durch die EOF-Marke (End-Of-File) gekennzeichnet.
Gerd Küveler, Dietrich Schwoch

Chapter 10. Einführung in die OOP mit C++

Zusammenfassung
Die objektorientierte Programmierung (OOP) ist ein hilfreiches Konzept zur Entwicklung von Programmen. C++ bietet im Gegensatz zu C hierfür bestimmte Werkzeuge an, was aber nicht bedeutet, dass die Programmierung mit C++ automatisch objektorientiert ist. Es ist sogar möglich, mit C objektorientiert zu programmieren, allerdings nicht so komfortabel wie unter C++. Die OOP sollte nicht als Alternative zu der konventionellen prozeduralen Programmierung gesehen werden, die es erlauben würde, auf die bisher vorgestellten Inhalte zu verzichten. Sie stellt eher einen „Überbau“ zur konventionellen Programmierung dar, ergänzt sie also. Selbst Programmiersprachen wie Java, die ausschließlich objektorientiert angelegt sind, gehen in der tiefsten Implementierungsebene schließlich zurück auf die konventionelle prozedurale Programmierung.
Die wichtigsten Prinzipien der OOP werden vorgestellt, beginnend mit dem Datentyp class.
Gerd Küveler, Dietrich Schwoch

Backmatter

Weitere Informationen

Premium Partner

    Marktübersichten

    Die im Laufe eines Jahres in der „adhäsion“ veröffentlichten Marktübersichten helfen Anwendern verschiedenster Branchen, sich einen gezielten Überblick über Lieferantenangebote zu verschaffen. 

    Bildnachweise