![]() |
![]() |
C++ - Übung zu Datenfelder (1) |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
Daten werden auf vielfältige Weisen einem Computer zugeführt.
Daten werden beispielsweise in Datenfeldern zwischengespeichert, um sie dort greifbar weiter verarbeiten zu können. Auf ein solches Szenario beziehen sich die folgenden Aufträge. Fragen Sie also bitte nicht, wo die Daten in einem Datenfeld herkommen oder wie sie dort hineingelangt sind. Sie sind eben dort, irgendeine Funktion oder Objekt hat die Daten dort abgelegt.
Arbeitsbereich: datenfelder
Erstellen Sie ein kleines Programm, welches ganze Zahlen von der Standardeingabe (Tastatur)
einliest, in einem Datenfeld ablegt und die im Datenfeld abgelegten Werte über die
Standardausgabe (Monitor) ausgibt!
Unterteilen Sie das Projekt in eine Funktion einlesen(), eine Funktion ausgeben() und
die main-Funktion! Die main-Funktion stellt das Datenfeld für bis zu 100 Zahlen zur
Verfügung. Die beiden anderen Funktionen benötigen als Parameter ein Datenfeld und die
Anzahl an einzulesenden bzw. auszugebenden Werten.
Der Anwender legt zunächst fest, wie viele Zahlen er eingeben will (main-Funktion).
Danach erfolgen die Eingaben in einlesen().
Projekt: einaus
Hinweis zur Anwendung:
Sie sollten auch einmal eine Textdatei aus ganzen Zahlen erstellen,
die Sie im selben Verzeichnis ablegen sollten wie die erzeugte Programmdatei.
Namenbeispiel: zahlen.txt
Aus dieser Datei können die einzulesenden Daten geholt werden, indem Sie eine Eingabeumlenkung
in einem Kommandozeilenfenster (oder einem Verweis) angeben, beispielsweise
einaus < zahlen.txt
.
Dann werden sämtliche(!) Eingaben aus dieser Datei genommen - auch die Anzahl.
Wenn Sie die Ausgaben einer Datei zuführen lassen wollen, verwenden Sie die Ausgabeumlenkung:
einaus > ausgabe.txt
Sie können auch beides kombinieren: einaus < zahlen.txt > ausgabe.txt
Solche Möglichkeiten können Sie auch im Folgenden nutzen, damit Sie nicht immer wieder Daten
eingeben müssen. In der Entwicklungsumgebung kann dies auch genutzt werden.
Hier aktivieren Sie Projekt/Einstellungen, wählen die Debug-Karte und
geben unter Programmargumente die Umlenkung ein, beispielsweise < zahlen.txt.
Hinweis: In den nachfolgenden Übungen sollen Fließkommazahlen (double) in Datenfeldern verarbeitet werden.
Legen Sie eine geeignete Textdatei "werte.txt" mit Fließkommazahlen an,
aus der per Umlenkung die Werte gelesen werden.
Die erste Zahl muss ganzzahlig sein und die Anzahl an vorliegenden Zahlenwerten angeben.
Zu diesen Zahlenwerten sollen deren Maximum, Minimum, Summe und Mittelwert ermittelt
werden. Sie sollen dazu die Funktionen maximum(), minimum(), und summe()
erstellen. Der Mittelwert ergibt sich aus der Summe dividiert durch die Anzahl an Werten.
Passen Sie den bereits zuvor erstellten Quelltext geeignet an und erweitern Sie diesen
um die geforderten Funktionen! Lassen Sie diese Funktionen in der main-Funktion aufrufen
und die geforderten Werte (Maximum ... Mittelwert) ausgeben!
Projekt: statistik
Es stellt sich beispielsweise heraus, dass ein Datenwert ungültig ist oder nicht mehr
benötigt wird. Dann sollte er aus einem Datenfeld gelöscht werden können.
Erstellen Sie eine Funktion entferne(), die eine Zahl aus dem zu übergebenden Datenfeld
entfernt! Diese Funktion benötigt den Index der zu entfernenden Zahl.
Beispiel:
Ausgangsdatenfeld: 12.0 9.1 25.2 7.3 14.4 5.5
Die dritte Zahl (25.2) soll entfernt werden. Es sind somit alle dahinter stehenden Zahlen
um eine Stelle nach vorne zu versetzen.
Ergebnisdatenfeld: 12.0 9.1 7.3 14.4 5.5
In der main-Funktion zum Testen der Funktion lassen Sie bitte zuerst die eingelesenen Daten zusammen mit deren Indizes ausgeben (Funktion ausgeben() ähnlich 5.1)! Danach gibt der Anwender den Index der zu entfernenden Zahl ein. Die Zahl wird nun entfernt und schließlich alle verbleibenden Zahlen ausgegeben.
Projekt: entfernen