minDiff : REAL; //hat also gar keine Belegung am Anfang ...
Hmmm. Der Anfangswert von minDiff hat aber einen grossen Einfluss darauf, ob die Ermittlung des Minimums funktionieren kann. Und "gar keine Belegung am Anfang" ist vermutlich WunschDenken. Gar keine Belegung gibt's nicht.
Falls Du fest damit rechnen kannst, dass negative Werte auftreten können, dann wird es vielleicht wunschgemäss funktionieren.
Aber das sollte man nicht dem Zufall überlassen!
... und der Vergleich arrDiffS1[x] > arrDiffS1 dient dazu dass ich immer die vorherigen Werte des Arrays vergleiche. Ist der neue Wert kleiner als der davor wird minDiff neu deklariert. Ist er größer ist die IF-Bedingung False und der Wert bleibt unverändert.
Hmmm. Das hört sich so an, als wolltest Du der ach so überarbeiteten CPU den Verleich minDiff < arrDiffS1 [ i ] ersparen, wenn durch die Abfrage
arrDiffS1[x] > arrDiffS1 [ i ] schon "vorab" geklärt werden kann, dass in arrDiffS1 [ i ] nichts stehen kann, was sich als Minimum erweisen könnte.
Aber: die CPU arbeitet immer beide Vergleiche ab und der zweite allein ohne den ersten sagt schon das aus, was Du wissen/berücksichtigen willst!
Doppelt gemoppelt, ohne gelegentlich einen Vorteil zu bringen, jedoch regelmässig einen Nachteil!
Anm.:
Irgendwie steckt der KursivTeufel in diesem Editor, der die Zeichenfolge "eckige Klammer auf, i, eckige Klammer zu" plattmacht und gleichzeitig auf
kursiv umschaltet.