Vollmis Beispiel ist voll funktionsfähig und super übersichtlich und trotzdem würde ich für mich 2 Sachen bemängeln:
1. Dem Speicher wird als erstes der Inhalt des 1. Feldelementes zugewiesen. In der FOR-Schleife wird dann trotzdem nochmal dieses 1. Element geprüft, ob es kleiner/größer als der Speicher ist. M.M.n. (und nach der von vollmis Vorrednern) überflüßig. Es genügt, wenn die FOR-Schleife beim 2. Element des Arrays beginnt.
2. Beide FOR-Schleifen in vollmis Code durchlaufen den gleichen Wertebereich, deshalb würde ich auch hier (wie seine Vorredner) beide Abfragen in eine Schleife packen, um mir einen Durchlauf einzusparen.
Mit IF..THEN abfragen kannst Du Dir das Minimum und Maximum einfach selber ausfiltern, wie Dir die Beispiele oben zeigen.
TIA bietet Dir aber auch fertige Funktionen und da Du Dich ja mit allem vertraut machen möchtest:
Code:
#Minimum:= #TestArray[0];
#Maximum:= #TestArray[0];
FOR i := 1 TO 100 BY 1 DO
#Minimum := MIN( IN1:= #Minimum, IN2:= #TestArray[i] );
#Maximum := MAX( IN1:= #Maximum, IN2:= #TestArray[i] );
END_FOR;
Zusätzliche Hinweise, da ich nicht weiß, wie Du das bis dato handhabst:
Auch wenn TIA Dir erlaubt, Funktionsnamen als Variablennamen zu verwenden, würde ich mir das möglichst nicht angewöhnen.
Außerdem würde ich gerade während der "Schulzeit" die Funktionen, wie FOR-Schleifen, immer mit allen Optionen angeben, auch wenn man das bei Standards, wie z.B. "BY 1", nicht unbedingt machen muss.
PS:
Bei der Gelegenheit könntest Du auch testen, ob es vlt. Geschwindigkeitsvor- oder -nachteile bringt, mehrere Elemente auf einmal zu prüfen (wobei 100 Arrayelemente wahrscheinlich etwas wenig für diesen Test sind):
Code:
#Minimum:= #TestArray[0];
#Maximum:= #TestArray[0];
FOR i := 1 TO 96 BY 5 DO
#Minimum := MIN( IN1:= #Minimum, IN2:= #TestArray[i], IN3:= #TestArray[i + 1], IN4:= #TestArray[i + 2], IN5:= #TestArray[i + 3], IN6:= #TestArray[i + 4] );
#Maximum := MAX( IN1:= #Maximum, IN2:= #TestArray[i], IN3:= #TestArray[i + 1], IN4:= #TestArray[i + 2], IN5:= #TestArray[i + 3], IN6:= #TestArray[i + 4] );
END_FOR;