zurück weiter

C++ - Übung zu Datenfelder (1)

G.Eichelsdörfer - Staatliche Technikerschule Weilburg

Fünfte Übungen

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

5.1 Einlesen und ausgeben

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.

5.2 Statistik

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

5.3 Entfernen

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