Wetterstation programmieren?

2 Antworten

Deine Aufgabe setzt voraus, dass Du pro Tag mehrere Messwerte zur Verfügung hast.
Ich nehme an, dass Du die Daten zur Verfügung gestellt bekommst (oder Dir Dummy Daten ausdenken sollst)?

Der Aufgabe nach wäre es logisch, wenn mindestens jede Stunde eine Messung vorgenommen wird -> für jede Stunde eine Temparatur vorhanden ist.

Die erste Aufgabe würde so aussehen, dass Du Deiner Funktion alle Temparaturmessungen eines Tages (bzw. der ganzen Woche) als Parameter übergibst und daraus ganz einfach den Durchschnitt berechnest.

Bei der zweiten Aufgabe übergibst Du alle Messungen einer Woche und lässt Deine Methode daraus den größten und den kleinsten Wert ermitteln.

Die dritte Aufgabe funktioniert wie die erste, bloß dass Du nur Werte einer bestimmten Uhrzeit übergibst. Nur die 8 Uhr Messungen, nur die 12 Uhr Messungen usw.

Woher ich das weiß:Studium / Ausbildung – Informatik Studium.

Ich würde erstmal einen Objekttyp für die Wetterdatensätze definieren. Also was jeweils gespeichert werden soll (Datum+Uhrzeit, Außentemperatur, Innentemperatur, Luftdruck, Luftfeuchtigkeit, Windrichtung, Windstärke, Regenmenge etc.)

Dann kannst du die Daten z.B. in einer LinkedList sammeln (oder in einer Datenbank, falls es dazu mehr Details in der Aufgabenstellung gibt).

Die drei Punkte, die du aufgelistet hast, würde ich am ehesten mit Streams lösen. Damit kann man schnell Daten filtern, gruppieren, aggregieren (also z.B. den Mittelwert bilden) etc.

Soll die Wetterstation eigentlich von sich aus z.B. alle 5 Minuten die Daten sammeln oder soll von extern (möglicherweise unregelmäßig) immer mal wieder ein Datensatz kommen? Dann musst du bei der letzten Aufgabe nämlich auch ein bisschen aufpassen. Es wird kaum möglich sein, die Daten immer auf die Mikrosekunde genau um 8, 12 und 18 Uhr zu sammeln. Das heißt, du musst immer den ersten Datensatz nehmen, der größer oder gleich der jeweiligen Zeit ist. Und da musst du evtl. auch bestimmen, wie groß die Toleranz sein darf. Was, wenn der erste Datensatz nach 8 Uhr z.B. erst um 8:15 Uhr geliefert wurde? Darf der dann genommen werden?