-
Also, ist doch ganz einfach. man nehme einen Ringspeicher mit einem Pointer.
z.B.
dim werte(100) as byte für eben 100 werte.
dann nehme man einen Pointer oder halt Zeiger, der sagt wo der aktuell
gemessene Wert hin kommen soll
also
dim pointer as byte.
Nun programmiere man eine routine, die bei jedem Aufruf den pointer um 1 erhöht und den wert abspeichert. ist das Ende des Daenfeldes erreichst soll er wieder an den Anfang springen. also
incr pointer
if pointer>100 then pointer = 1
werte(pointer) = messwert
nun sollen diese daten klaro ja auch ausgegeben werden in chronologischer reihenfolge
also
for byte_xy= pointer+1 to 100
anzeige=werte(byte_xy)
next
dann:
for byte_xy = 1 to pointer
anzeige=werte(byte_xy)
next
so in ungefähr
-
Hallo Vitis,
Deine Eingabe kann ich folgen.
Aber die Ausgabe kann ich nicht Nachvollziehen.
Der Pointer zählt von 1 bis 100.
müsste jetzt nicht
Anzeige = Wert(Pointer) stehen?
Oder sollen mit jeden Pointer mehrere Werte ausgegeben
werden.
krieg das nicht zum laufen.
Wigbert
-
nö, der Wert direkt nach dem aktuellen zeiger ist ja automatisch der chronologisch älteste wert. von dem ausgehend dann halt einfach
bis zum ende hin die werte auslesen und dann vom anfang an bis zum aktuell letzten wert.
-
Hallo Vitis
jetzt beginne ich zu begreifen.
Du liest die Werte > Pointer <100 aus
und danach >1<= Pointer aus.
Ich dachte wenn ich ab Pointer+1 bis 100 hochzähle
findet die Ausgabe seinen Weg.
Wigbert
-
vorteil der methode ist halt, dass man nicht bei jedem neuen wert die ganze matrize shiften muss, das spart rechenzeit.