Skip to main content

2006 | 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

Erstmals mit der neuen Auflage erscheint das vorliegende Werk in geteilter Form. Das eröffnet zum einen die Möglichkeit zu größerer Ausführlichkeit, zum anderen ist der Leser nicht - zwungen, viele Seiten zu erwerben, die ihn persönlich nicht interessieren. Zunächst sind zwei Bände geplant. Der vorliegende erste führt in die Hochsprachen-Programmierung ein. Nicht zufällig wurde als Sprache C/C++ gewählt, weil sie sich im Laufe der letzten Jahre zu bed- tendsten Universalsprache mit breitestem Anwendungsspektrum entwickelt hat. Der zweite Band soll in etwa einem Jahr erscheinen und wird sich schwerpunktmäßig mit PC-Technik und Computernetzen beschäftigen. Die Teile I bis III dieses ersten Bandes entsprechen inhaltlich einer zweisemestrigen Einf- rung in die Informatik für Ingenieurstudenten oder Studenten der Naturwissenschaften. Der Stundenumfang wird dabei mit insgesamt 4 Semesterwochenstunden Vorlesung und ebenso vielen Übungen angesetzt. 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 zahlreiche Übungsaufgaben die einzelnen Kapitel. Vor allem aber der Teil III mit seinen Praktikumsaufgaben macht aus jedem Leser einen brauchbaren C-Programmierer, - mindest wenn er sich durch die nicht immer ganz einfachen Aufgaben „kämpft“.

Inhaltsverzeichnis

Frontmatter

Grundlagen

Frontmatter
1. Grundprinzipien der Datenverarbeitung
Auszug
Datenverarbeitung (DV) wird nicht erst seit Einfiihrung des Computers betrieben. Das menschliche Gehirn kann offensichtlich auch ohne technische Hilfsmittel Daten verarbeiten.
2. Das Betriebssystem
Auszug
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 moglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Abwicklung von Programmen steuern und uberwachen. Infolgedessen umfasst das Betriebssystem nur die Basissoftware, die es einem Benutzer der Anlage erst ermoglicht, 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).
3. Algorithmen und Struktogramme
Auszug
Neben der technischen Seite weist die EDV eine logisch-mathematische auf. Bei ilir geht es urn die Losung konkreter Probleme mit Rechnern.
4. Programmiersprachen
Auszug
Die Rechner der ersten Generation mussten miihsam in ihrer Maschinensprache programmiert werden, die aus einem reinen Binarcode (Folge von,,0 und,,1) besteht Die Assemblersprache brachte die erste Erleichterung fiir den Programmierer. Maschinenbefehle konnten nun in halbwegs lesbarer Form programmiert werden, statt beispielsweise

Programmieren in C/C++

Frontmatter
5. Über C und C++
Auszug
Die Entwicklung der Programmiersprache C ist eng mit der des Betriebssys terns UNIX verkniipft. Nachdem die erste UNIX-Version noch in Assembler erstellt worden war (1969), entwickelte Ken Thomson 1970 die Sprache B zur Implementierung eines UNIX-Systems fiir eine PDP-7-Maschine. Aus der mit zu vielen Schwachen behafteten Sprache B entwickelte Dennis Ritchie 1972 C. Seit 1973 ist das Betriebssystem UNIX fast vollstandig in C geschrieben. Zunachst gab es keinen offiziellen Sprachstandard. Stattdessen erreichte die Sprachdarstellung in einem Lehrbuch - deutsch: Kernigham, Ritchie; Programmieren in C. Hanser Verlag 1983 den Status eines Quasi-Standards (Kernigham-Ritchie-Standard). Kleinere Erweiterungen und Verbesserungen fuhrten zum ANSII-Standard. Die Sprache C++wurde Anfangs der 80er Jahre von Bjarne Stroustrup an den Bell Laboratories entwickelt. Es handelt sich dabei urn einen Zusatz fur C.
6. Grundlagen
Auszug
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.
7. Vordefinierte Standard-Datentypen und einfache Operationen
Auszug
C/C++besitzt, wie die meisten höheren Programmiersprachen, einige vordefinierte Standard-Datentypen:
  • ganzeZahlen: Typ int (und ganzzahlige Sub-Typen)
  • reelle Zahlen: Typ float (und reelle Sub-Typen)
  • Einzel-Zeichen: Typ char (und Sub-Typen)
Einen logischen Datentyp, wie LOGICAL in FORTRAN oder BOOLEAN in Pascal, gibt es zumindest in C nicht, wohl aber in C++(bool).
8. Interaktive Ein-/Ausgabe
Auszug
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.
9. Programm - Ablaufstrukturen
Auszug
Die bisher vorgestellten Programme wurden stets in der Reihenfolge der codierten Programmanweisungen sequentiell abgearbeitet. Der diesen Programmen zugrunde liegende Strukturblock ist die "Sequenz".
10. Modularisierung von Programmen: Functions
Auszug
Ein praktisches Beispiel: Sie haben ein Programm geschrieben, das aus einer mehrstelligen intZahl 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.: Das gesamte alte Programm muss als Schleifenkern eingerückt in die Schleifenkonstruktion eingebettet werden. Das ist bei längeren Programmen lästig und wird unübersichtlich!
11. Höhere Datenstrukturen
Auszug
Die bisher vorgestellten skalaren Datentypen sind bereits in C/C++vollständig vordefiniert. Zusätzlich kann der Nutzer zusammengesetzte Datenstrukturen einführen. Strukturierte Datentypen sollen an zwei Beispielen vorgestellt werden:
  • Die Zusammenfassung gleichartiger Daten in Feldern (array).
  • Die Zusammenfassung inhaltlich zusammengehöriger Daten in Strukturen (struct). Außerdem wagen wir einen Blick auf den Datentyp Pointer, der v. a. in der C-Programmierung eine wichtige Rolle spielt und der eine enge Beziehung zu Feldern aufweist.
12. Arbeiten mit Dateien
Auszug
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.
13. Einführung in die OOP mit C++
Auszug
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++.

C/C++ Praktikum

Frontmatter
14. Einführungs-Praktikum
Auszug
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 beschrankt und vom Benutzer weit reichendere Kenntnisse im Umgang mit dem Betriebs system verlangt Dafür ist letzterer häufig schneller und effizienter.
15. Fortgeschrittenen-Praktikum
Auszug
Wir ändern nun unsere Vorgehensweise. Nicht mehr mehrere kleine Aufgaben sind zu lösen, sondern jeweils eine gröBere 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.
16. Lösungen zum Einführungs-Praktikum
Auszug
Selbstverständlich sind die folgenden Muster lö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.
17. Lösungen zum Fortgeschrittenen-Praktikum
Auszug
Audi hier handelt es sich bei den folgenden Musterlösungen nur urn 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.
Backmatter
Metadaten
Titel
Informatik für Ingenieure und Naturwissenschaftler 1
verfasst von
Gerd Küveler
Dietrich Schwoch
Copyright-Jahr
2006
Verlag
Vieweg+Teubner
Electronic ISBN
978-3-8348-9033-7
Print ISBN
978-3-8348-0035-0
DOI
https://doi.org/10.1007/978-3-8348-9033-7