Datensätze


Datensätze

Ein Datensatz ist eine Gruppe von inhaltlich zusammenhängenden Datenfeldern.
Ein Datenfeld ist beispielsweise eine Artikelnummer, Artikelgröße, Produktionsdatum etc.
Speziell in der Mathematik interessieren uns die Datenfelder die wir in der Analysis als Wertetabelle benennen. Eine Wertetabelle weist eine Natürliche oder Reelle Zahl mit konstanter Differenz der Zahlen anhand der angegebenen Vorschrift (Funktion) das jeweilige Wertepaar zu.
Die Darstellung einer Funktion haben wir bereits kennengelernt. Nun möchten wir jetzt lernen, wie man mehrere Funktionen in einem Koordinatensystem darstellen kann.
Ein Plotter kann mehrere Datensätze verwalten. Dabei verfügt jeder Datensatz über eigenen Werten für Farbe, Zeichenstil etc.
Dazu gibt es zwei Möglichkeiten wie man das zeichnen von mehreren Funktionen in Java schreiben kann.
Bei der ersten Möglichkeit muss man die Methode „nextDataSet()“ aufrufen. Mit dem Aufruf dieser Methode wird automatisch in Plotter ein neuer Datensatz angelegt. Nachfolgende Aufrufe von „add()“ werden dann automatisch diesem neuen Datensatz zugeordnet. Der Nachteil ist, dass wir für 10 Funktionen dementsprechend 10 Schleifen angeben müssen weshalb diese Möglichkeit unübersichtlich sein kann.

for(double x = -(Math.PI); x <= (Math.PI); x += 0.01) {
      plotter.add(x, Math.sin(x));
}

plotter.nextDataSet();

for(double x = -(Math.pi); x <= (Math.PI); x += 0.01) {
      plotter.add(x, Math.cos(x));
}

Für eine kompaktere Lösung kann man direkt die Datensätze ansprechen. Dazu muss man einen die Benennung der jeweiligen Funktion als Datensatz angeben. Aus dem obigen Code kann man dann das folgende herableiten.

Allgemein gelten für die Datensätze folgende Aussagen:

- Am Anfang wird der interne Zähler auf 0 gesetzt. Der dazugehörige Datensatz gilt zwar aktuell wird jedoch nach dem ersten Zugriff angelegt.
- Wechselt man mit der Methode „nextDataSet()“ zu einem anderen Datensatz, gilt dementsprechend dieser anderer Datensatz als aktuell.
- Beim Aufruf der Methode „add()“ ohne die Bezeichnung wird der aktuelle Datensatz verwendet und mit der Methode „add()“ wird der Wert der jeweiligen Datensatz zugeordnet jedoch nicht als aktueller Datensatz gesehen. 
-  Wenn ein angesprochener Datensatz noch nicht vorhanden ist, wird er neu angelegt.
- Die gespeicherten Datensätze werden nummeriert und intern gespeichert. Die erste Funktion beginnt mit 0. Die darauffolgenden Funktionen bekommen die nächst größere Ganze Zahl als Stelle (Die Stelle muss frei sein. Ansonsten bekommt die nächste Funktion einfach die nächstgrößere freie ganze Zahl.).
Bei der Verwendung spielen die Namen, die wir als Benennung definiert haben, keine Rolle. Die Namen oder Benennungen sind nur für den Programmierer und dienen zur Vereinfachung. Falls wir nur eine Funktion zeichnen wollen, müssen wir keine Bezeichnung angeben.

Ein Datensatz wird intern durch eine Instanz der Klasse „DataObject“ repräsentiert.
Im wesentlichen besteht er aus einer Folge von Wertepaaren (x,y). Mit den folgenden Methoden lassen sich Wertepaare hinzufügen oder löschen.

Methode                                                                                                Funktionsweise
void add(double x, double y)                                                fügt das Wertepaar (x,y) an
void addD(double dx, double dy)                                          aus dem letzten Wert (x,y) wird (x+dx, y+dy) hinzugefügt.
void add(double[] feld)                                                         fügt alle Werte aus dem übergebenen Feld an
void removeOlt(int n)                                                                löscht die ersten n Werte


Um alle Punkte eines Datensatzes gemeinsam zu verschieben, können Offsetwerte für x- und y-Richtung gesetzt werden. Mit den vier Methoden lassen sich die entsprechenden Werte setzen und auch wieder abfragen.

Später werden wir dies zeigen in dem wir Werte mehrfach nebeneinander versetzt zeichnen zu können.

Von allen diesen Methoden gibt es jeweils noch eine Variante mit dem Namen des Datensatzes als zusätzlichen Parameter. In der Regel genügen jedoch die Methoden der Klasse „Plotter“ für alle Zugriffe auf die „DataObject“-Instanzen.


Kommentare

Beliebte Posts aus diesem Blog

How can I transform a .jar file to a .bat file?

Ein Kleines Spiel mit Altersabfrage

Zufallszahlen und Verzweigungen in Python