Skip to main content

2009 | Buch

Informatik für Ingenieure und Naturwissenschaftler 1

Grundlagen, Programmieren mit C/C++, Großes C/C++-Praktikum

verfasst von: Gerd Küveler, Dietrich Schwoch

Verlag: Vieweg+Teubner

insite
SUCHEN

Über dieses Buch

Informatik für Ingenieure und Naturwissenschaftler erscheint in zweibändiger Form. Das - öffnet zum einen die Möglichkeit zu größerer Ausführlichkeit, zum anderen ist der Leser nicht gezwungen, viele Seiten zu erwerben, die ihn persönlich nicht interessieren. Der erste Band führt in die Hochsprachen-Programmierung ein. Nicht zufällig wurde als Sprache C/C++ - wählt, weil sie sich im Laufe der letzten Jahre zu bedeutendsten Universalsprache mit breit- tem Anwendungsspektrum entwickelt hat. Der zweite Band beschäftigt sich schwerpunktmäßig mit PC-Technik und Computernetzen. Die hier vorliegende erste Band entspricht inhaltlich einer zweisemestrigen Einführung in die Informatik für Ingenieurstudenten oder Studenten der Naturwissenschaften. Der Stunden- fang wird dabei mit insgesamt 4 Semesterwochenstunden Vorlesung und ebenso vielen Üb- gen angenommen. Der Text erlaubt jedoch durchaus auch ein Selbststudium. Teil I bietet einen kurzen Überblick über die technische Informatik. Nach dieser Einstimmung geht es dann mit Teil II richtig los: Ab hier setzen wir den Zugang zu einem PC mit C++-Compiler voraus. Die Einführung ist zwar systematisch aber dennoch sehr praxisnah angelegt, d. h. der Leser erhält die Gelegenheit, das Gelernte komplett nachzuvollziehen. Aus diesem Grund ergänzen zahlr- che Übungsaufgaben die einzelnen Kapitel. Vor allem aber der Teil III mit seinen Praktiku- aufgaben macht aus jedem Leser einen brauchbaren C-Programmierer, zumindest wenn er sich durch die nicht immer ganz einfachen Aufgaben „kämpft“. Um gelegentlichen Frust zu v- meiden, haben wir für sämtliche Praktikumsaufgaben die Komplettlösungen angegeben. Diese Aufgaben sollten Sie lernbegleitend zu Teil II lösen.

Inhaltsverzeichnis

Frontmatter

Grundlagen

Frontmatter
1. Grundprinzipien der Datenverarbeitung
Datenverarbeitung (DV) wird nicht erst seit Einführung des Computers betrieben. Das menschliche Gehirn kann offensichtlich auch ohne technische Hilfsmittel Daten verarbeiten.
Gerd Küveler, Dietrich Schwoch
2. Das Betriebssystem
In Kap. 1.2 stellten wir ein einfaches Dreischichtenmodell eines EDV-Systems vor: Zwischen Hardware und Anwendersoftware ordneten wir das Betriebssystem ein. Unter einem Betriebssystem versteht man nach DIN „diejenigen Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen“. Infolgedessen umfasst das Betriebssystem nur die Basissoftware, die es einem Benutzer der Anlage erst ermöglicht, seine eigene (Anwendungs-)Software mehr oder weniger komfortabel ablaufen zu lassen. Der durchschnittliche Benutzer eines modernen Rechners sieht sich immer seltener mit der Hardware konfrontiert, umso mehr dagegen mit dem Betriebssystem (BS).
Gerd Küveler, Dietrich Schwoch
3. Algorithmen und Struktogramme
Neben der technischen Seite weist die EDV eine logisch-mathematische auf. Bei ihr geht es um die Lösung konkreter Probleme mit Rechnern.
Gerd Küveler, Dietrich Schwoch
4. Programmiersprachen
Sprachen lassen sich allgemein nach folgendem Schema klassifizieren:
Gerd Küveler, Dietrich Schwoch

Programmieren in C/C++

Frontmatter
5. Über C und C++
Die Entwicklung der Programmiersprache C ist eng mit der des Betriebssystems UNIX verknüpft. Nachdem die erste UNIX-Version noch in Assembler erstellt worden war (1969), entwickelte Ken Thomson 1970 die Sprache B zur Implementierung eines UNIX-Systems für eine PDP-7-Maschine. Aus der mit zu vielen Schwächen behafteten Sprache B entwickelte Dennis Ritchie 1972 C. Seit 1973 ist das Betriebssystem UNIX fast vollständig in C geschrieben. Zunächst gab es keinen offiziellen Sprachstandard. Stattdessen erreichte die Sprachdarstellung in einem Lehrbuch – deutsch: Kernighan, Ritchie; Programmieren in C. Hanser Verlag 1983 – den Status eines Quasi-Standards (Kernighan-Ritchie-Standard). Kleinere Erweiterungen und Verbesserungen führten zum ANSII-Standard. Die Sprache C++ wurde Anfangs der 80er Jahre von Bjarne Stroustrup an den Bell Laboratories entwickelt. Es handelt sich dabei um einen Zusatz für C.
Gerd Küveler, Dietrich Schwoch
6. Grundlagen
Eine Programmiersprache ist im Wesentlichen durch zwei Themenbereiche gekennzeichnet:
  • Datenstrukturen
  • Programm-Ablaufstrukturen
Mit „Datenstrukturen“ werden die verschiedenen Organisationsmöglichkeiten von Daten beschrieben. Der Programmierer muss sich sehr gut überlegen, welche Datenstrukturen am ehesten seinem Problem angepasst 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.
Gerd Küveler, Dietrich Schwoch
7. Vordefinierte Standard-Datentypen und einfache Operationen
C/C++ besitzt, wie die meisten höheren Programmiersprachen, einige vordefinierte Standard-Datentypen:
Gerd Küveler, Dietrich Schwoch
8. Interaktive Ein-/Ausgabe
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 Plotter ausgegeben werden. Die Ein- und Ausgabeanweisungen müssen i. a. Angaben über die beteiligten Geräte enthalten. Standard Ein-/Ausgabegeräte sind die Tastatur bzw. der Bildschirm.
Gerd Küveler, Dietrich Schwoch
9. Programm-Ablaufstrukturen
Die bisher vorgestellten Programme wurden stets in der Reihenfolge der codierten Programmanweisungen sequentiell abgearbeitet. Der diesen Programmen zugrunde liegende Strukturblock ist die „Sequenz“.
Gerd Küveler, Dietrich Schwoch
10. Modularisierung von Programmen: Functions
Ein praktisches Beispiel: Sie haben ein Programm geschrieben, das aus einer mehrstelligen int-Zahl die Quersumme berechnet. Sie möchten die Berechnung nicht nur einmal, sondern wiederholt mit verschiedenen Zahlen nacheinander ausführen. Also muss das Programm als Schleife angelegt werden, z. B.:
Gerd Küveler, Dietrich Schwoch
11. Höhere Datenstrukturen
Die bisher vorgestellten skalaren Datentypen sind bereits in C/C++ vollständig vordefiniert. Zusätzlich kann der Nutzer zusammengesetzte Datenstrukturen einführen.
Gerd Küveler, Dietrich Schwoch
12. Arbeiten mit Dateien
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.
Gerd Küveler, Dietrich Schwoch
13. Einführung in die OOP mit C++
Die objektoriente Programmierung (OOP) ist ein neueres 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++.
Gerd Küveler, Dietrich Schwoch

C/C++ Praktikum

Frontmatter
14. Einführungs-Praktikum
Zur Lösung der folgenden Aufgaben benötigen Sie einen C++-Compiler. Das kann ein kommerzieller oder ein im Internet frei verfügbarer sein. Unter dem Betriebssystem UNIX/Linux gehört ein C-Compiler zu den Standard-Dienstprogrammen, unter Windows muss man ihn sich auf jeden Fall erst besorgen. Man unterscheidet Kommandozeilen-Compiler und Compiler mit integrierter Entwicklungsumgebung (IDE). Letztere bieten einen eigenen Editor zur Eingabe des Quelltextes sowie alle Funktionen zum Übersetzen und Verwalten der Programme „auf Knopfdruck“ während sich ein Kommandozeilen-Compiler auf die Grundfunktionen beschränkt und vom Benutzer weiter reichende Kenntnisse im Umgang mit dem Betriebssystem verlangt. Dafür ist letzterer häufig schneller und effizienter.
Gerd Küveler, Dietrich Schwoch
15. Fortgeschrittenen-Praktikum
Wir ändern nun unsere Vorgehensweise. Nicht mehr mehrere kleine Aufgaben sind zu lösen, sondern jeweils eine größere aus dem Gebiet der numerischen Mathematik. Auf die Mathematik selbst wird nur in Stichworten eingegangen. Stattdessen verweisen wir jeweils auf den entsprechenden Abschnitt des Lehrwerks von Lothar Papula, Mathematik für Naturwissenschaftler und Ingenieure, Vieweg Verlag. Wenn die Aufgabenstellung Algorithmen enthält, sind diese in einem hoffentlich allgemeinverständlichen Pseudocode angegeben, der nach C/C++ umzusetzen ist. Einige der späteren Aufgaben sind sehr umfangreich, so dass ihre Bearbeitung weit mehr als die üblichen neunzig Praktikumsminuten erfordert. Sie haben eher den Charakter von Projektaufgaben.
Gerd Küveler, Dietrich Schwoch
16. Lösungen zum Einführungs-Praktikum
Selbstverständlich sind die folgenden Musterlösungen nur Vorschläge. Ihre individuelle Lösung kann völlig anders aussehen. Das gilt vor allem für die etwas komplexeren Aufgaben. Entscheidend ist die Richtigkeit der Lösung, die dann gegeben ist, wenn die Aufgabe vollständig erfüllt wurde.
Gerd Küveler, Dietrich Schwoch
17. Lösungen zum Fortgeschrittenen-Praktikum
Auch hier handelt es sich bei den folgenden Musterlösungen nur um Vorschläge. Beachten Sie bitte sehr genau die Aufgabenstellung. Einige Aufgaben erfordern mehr Zeit als die „gewöhnlichen“ 90 Minuten einer Praktikumsveranstaltung. Dafür haben wir die Zahl der Aufgaben reduziert.
Gerd Küveler, Dietrich Schwoch
Backmatter
Metadaten
Titel
Informatik für Ingenieure und Naturwissenschaftler 1
verfasst von
Gerd Küveler
Dietrich Schwoch
Copyright-Jahr
2009
Verlag
Vieweg+Teubner
Electronic ISBN
978-3-8348-9607-0
Print ISBN
978-3-8348-0460-0
DOI
https://doi.org/10.1007/978-3-8348-9607-0