Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#13

AW: Dyn. Array of Double an funktion übergeben

  Alt 23. Mär 2021, 09:56
Wurde nicht vorhin noch der Index geliefert?
Jetzt das Max.

Der Compiler sollte aus Low(Values) eine konstante 0 machen,
also im Compilat gibt es keinen Unterschied zwischen Low(Values) und 0.

Eine Lösung für 10.4.2
Delphi-Quellcode:
function MaxFloatValue(const Values: array of Double): Double;
begin
  if Length(Values) = 0 then
    Exit(0); // oder eine Exception
  Result := Values[0]; // oder eben Result := Values[Low(Values)];
  for var Value in Values do
    if Value > Result then
      Result := Value;
end;
und noch was für alle Delphis/FreePascal/...
Delphi-Quellcode:
function MaxFloatValue(const Values: array of Double): Double;
begin
  if Length(Values) = 0 then
    Exit(0); // oder eine Exception
  Result := MaxValue(Values);
end;

Zitat von System.Math.pas:
Delphi-Quellcode:
function MaxValue(const Data: array of Single): Single;
var
  I: Integer;
begin
  Result := Data[Low(Data)];
  for I := Low(Data) + 1 to High(Data) do
    if Result < Data[I] then
      Result := Data[I];
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (23. Mär 2021 um 14:48 Uhr)
  Mit Zitat antworten Zitat