Was ich gerade nicht verstehe, ist wieso Schleifen die Zykluszeit dermaßen hochtreiben?
Jetzt verstehe ich nicht, was Du nicht verstehst.
Die Befehle, die in der Schleife abgearbeitet werden, werden pro SchleifenDurchkauf abgearbeitet. Zusätzlich die Befehle, die den SchleifenIndex z.B. erhöhen und die Befehle, die nötig sind, zu prüfen, ob weitere Durchläufe erforderlich sind - auch pro Zyklus. All die Ausführungszeiten multipliziert mit der Anzahl SchleifenDurchläufe.
Eine Schleife, die z.B. 10 mal durchlaufen wird, mag die ZyklusZeit nur unmerklich verändern.
Aber z.B. 1000 Durchläufe, also 100mal "unmerklich" kann schon störend viel oder sogar viel zu viel sein.
Schleifen, die abhängig von den durchsuchten Daten vorzeitig abgebrochen werden können, sind nicht gut kalkulierbar, da man nicht voraussehen kann, wie viele Durchläufe stattfinden werden.
Zumal, wenn die gesuchte Information im Array nicht vorhanden ist, muss das Array komplett abgesucht werden, nur um festzustellen, dass die Mühe für die Katz war. U.a. deshalb sei für das Suchen in sortierten Daten unbedingt das "binäre Suchen" empfohlen, bei dem bei jeder Verdopplung der Anzahl ArrayElemente lediglich 1 weiterer SchleifenDurchlauf hinzukommt.
Wenn sich, wie hier im Thread angenommen, das Programm automatisch an die ArrayLänge anpasst (per LOWER_BOUND und UPPER_BOUND), geht auch noch das Gefühl dafür verloren, mit welchen Ausführungszeiten zu rechnen ist.
Derjenige, der's programmiert hat, sollte es wissen, aber derjenige, der's gedankenlos anwendet, ahnt vermutlich nicht einmal, was ihm droht.
Was nützt mich das schönste SCL, wenn ich dann alles mit IF Then basteln muss??
Findest Du ein SCL ohne IF THEN denn noch schöner?