Vielleicht hilft es zunächst, wenn man sich einmal klarmacht wie es zu
dieser Situation kommt und was sie für Konsequenzen hat. Sie ist nämlich
an sich nicht ungewöhnlich und man kann daraus für andere Fälle lernen.
Betrachtet man den Zweck dieses Codes, so geht es darum, einen
Schwellwert für eine Änderung (genauer eine Hysterese) zu
berücksichtigen. Vermutlich weil gewisse zufällige Änderungen innerhalb
einer Schwankungsbreite nicht zu vermeiden sind. Auch das ist ein
häufiger Fall.
Dazu werden zwei zeitlich aufeinander folgende Messungen verglichen.
Nun ist es unvermeidbar, dass beim Start des Programmes eben noch keine
zwei aufeinander folgende Messungen vorliegen können. Man kann ja
nicht in die Zukunft sehen.
Man steht also zunächst und vor allem vor dem Problem, dass bei dem
ersten Mal, bei dem die beiden Werte verglichen werden, einer der beiden
nicht mit einem realen Wert initialsiert ist und es auch nicht sein
kann.
Hingegen handelt es sich nicht, wie der Thread-Titel und die näher im
Text ausgeführte Frage suggeriert, um ein Problem der
Programmier-Sprache und deren Semantik.
Das muss klar unterschieden werden! (Warum das so ist, führe ich hier
nicht näher aus).
Es handelt sich um ein Problem des Algorithmus.
Nun denn: Was ist denn nun die Folge dieser Situation?
Nehmen wir zunächst an, dass die zweite - nicht mit einem realen Wert
initialisierte Variable - mit irgendeinem bestimmten Wert initialisiert
ist (es spielt zunächst keine Rolle, ob das nun ausdrücklich so im
Programmtext steht oder sich aus der Sprachdefinition ergibt).
Dann wird der Vergleich beim ersten Mal entweder zutreffen oder nicht.
Wenn er zutrifft (und ich beziehe mich hier auf Deinen konkreten
Programmtext) denn wird der neue Anzeigewert zwangsweise innerhalb der
Hysterese liegen und sich daher höchstens um mehr als diese Hysterese
vom wahren Wert unterscheiden und der Anzeigewert auf den gemessenen
gesetzt. Wenn er nicht zutrifft, dann unterscheidet sich der "bestimmte"
Wert mit dem die Variable initialisiert wird, um nicht mehr als den
Betrag der Hysterese. Der angezeigte Wert stimmt also nicht mit dem
gemessenen überein, weicht aber auch nicht mehr als beabsichtigt ab.
In beiden Fällen also, wird ein Wert angezeigt, der entweder nicht dem
realen zuletzt gemessenen entspricht, sich aber höchstens um den Wert
der Hysterese von dem gemessenen unterscheidet oder eben genau dem
gemessenen.
Das aber ist ein Verhalten, dass sich nicht von dem unterscheidet, dass
letztlich gewollt ist. Denn nehmen wir einmal an, dass beide Werte
tatsächlich gemessen wären, dann würde der angezeigte Wert sich von dem
aktuell gemessenen wiederum nur um die Hysterese von dem vorherigen Wert
unterscheiden.
Nimmt man nun - zweitens - an, dass die initialisierung nicht mit einem
bestimmten, sondern einem zufälligen Wert erfolgt, gilt das eben gesagte
dennoch. Denn wiederum bewirkt der mögliche Unterschied entweder keine
Änderung, - dann weicht der angezeigte Wert vom gemessenen um die
Hysterese ab -, oder er bewirkt eine Änderung die zur Anzeige genau des
gemessenen Wertes führt.
Egal also, ob ein zufälliger oder bestimmter Wert zur Initialisierung
gewählt wird: Im Ergebnis entspricht das Verhalten im ersten Schritt dem
gewünschten.
Man kann allerdings hinzufügen, dass der erste angezeigte Wert,
statistisch gesehen, je nach Wahl der Initialisierung, von dem wahren
Mittel abweicht - je nach Verhalten des Signals.
Das aber kann man in Hinblick auf die Frequenz mit der die Anzeige
aktualisiert wird, betrachten. Erfolgt sie etwa jede Sekunde, so ist der
angezeigte Werte die erste Sekunde lang - wieder nur statistisch gesehen
- abweichend vom Mittelwert (oder dem Erwartungswert etc. ich will jetzt
nicht zu tief in die Statistik eintauchen).
Es gibt allerdings noch eine andere Möglichkeit die formal korrekt ist.
Man zeigt eben nichts an, bis man zwei aufeinander folgende Werte
gemessen hat. Dann erfolgt der Vergleich definitiv aufgrund zwei
gemessener Werte.
Wie gezeigt, spielt das aber nur eine Rolle, wenn der angezeigte Wert
auch keinen falschen statistischen Eindruck (etwa den einer initial
abnehmenden oder zunehmenden oder gleichbleibenden Tendenz) erwecken
darf. Ob das hier der Fall ist, müsste man gesondert besprechen, aber
bei Hobby-Projekten trifft das meist nicht zu.
Ein langer Sermon und vieles Selbstverständliche. Aber vielleicht hilft
es weiter.