Autor Beitrag
duffbartman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 11.10.06 18:12 
Hallo zusammen,

ich stehe vor einem Problem und weiß nicht so recht wie ich es lösen soll.

Also, ich habe in einem Array Regenmengen stehen. Sobald es regnet erhöht sich dieser Wert fortlaufend. Jetzt möchte ich die Regenmenge der letzten 24 h, des letzten Monats und des Jahres ausgeben. Zusätzlich sollte noch die Tage ausgegeben werden seit dem es nicht mehr regnet.

Wie gehe ich da am besten ran??

Das Array sieht so aus

ausblenden Delphi-Quelltext
1:
lWetterdata: array of TWetterdaten;					


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
type
  TWetterDaten = packed record
    Datum: TDateTime;            // Datum in Sekunden seit 01.01.1900 00:00
    Uhrzeit: TDateTime;          // Uhrzeit in Sekunden seit 01.01.1900 00:00
    Regenmenge:       single;    // Regenmenge in mm    
    ...
    ...
  end;
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Mi 11.10.06 18:30 
wie wird denn da gemessen? im abstand von minuten oder sekunden?
wenn dies der fall ist und immer, also rund um die uhr gemessen wird kannst du dir erstmal die zeitwerte schenken da diese sich ja aus dem intervall ergeben. im grunde können dann auch die tage weg.
ich würde dann sagen, ein monat hat eine bestimmte feste menge von werten die jeweils in einem bestimmten intervall abgefragt werden, also ein neuer wert hinzukommt.
die werte befinden sich in einem array immer gleicher größe, das aber wesentlich weniger platz braucht da ja kein platz für datum und zeit benötigt wird. dann kannst du auch wesentlich leichter mengen von werten addieren und so statistiken bilden.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 11.10.06 18:58 
nAbend,
den maximalwert rauszufinden, ist ja recht einfach:

in einer schleife durchläufst alle werte und wenn der neue wert größer ist, als der vorherige, dann hast am ende den maximalwert des arrays..
da hättest ja schon mal was geschafft ;)

gruß :r:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
duffbartman Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 11.10.06 19:59 
user profile iconSinspin hat folgendes geschrieben:
wie wird denn da gemessen? im abstand von minuten oder sekunden?
wenn dies der fall ist und immer, also rund um die uhr gemessen wird kannst du dir erstmal die zeitwerte schenken da diese sich ja aus dem intervall ergeben. im grunde können dann auch die tage weg.
ich würde dann sagen, ein monat hat eine bestimmte feste menge von werten die jeweils in einem bestimmten intervall abgefragt werden, also ein neuer wert hinzukommt.
die werte befinden sich in einem array immer gleicher größe, das aber wesentlich weniger platz braucht da ja kein platz für datum und zeit benötigt wird. dann kannst du auch wesentlich leichter mengen von werten addieren und so statistiken bilden.


die Werte kommen aus einer Wetterstation! Die Werte können in unterschiedlichen abständen messen. Es kann daher sein das die Werte erst im 10 min Takt gelesen werden, der User kann sie aber auch minütlich auslesen. Daher kann ich wohl nich auf die Zeitwerte verzichten. leider.

user profile iconrizla hat folgendes geschrieben:
nAbend,
den maximalwert rauszufinden, ist ja recht einfach:

in einer schleife durchläufst alle werte und wenn der neue wert größer ist, als der vorherige, dann hast am ende den maximalwert des arrays..
da hättest ja schon mal was geschafft .


Also muss ich mir die Position im Array merken?!
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 11.10.06 21:29 
naja, wenn du denn maximalwert haben willst nicht..

ausblenden Delphi-Quelltext
1:
2:
3:
maxwert := 0;
for i := 0 to itemscount do
 if items[i] > maxwert then maxwert := items[i];


nehmen wir mal an, dass die werte in etwa so sind:
ausblenden Quelltext
1:
2:
3:
4:
5:
30
0
4
70
5

dann ist maxwert jeweils (also bei jedem durchlauf mein ich):
ausblenden Quelltext
1:
2:
3:
4:
5:
30
30
30
70
70

verstehste, wie ich des mein?

:r:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
duffbartman Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 11.10.06 21:56 
Ja ich denke schon :!:

THX :D