del*_*sql 1 delphi dynamic-arrays
我创建了一个动态数组,并将值传递给它.是否有找到动态数组平均值的快捷方式.
var
TheMin, TheMax: Integer;
x: array of Integer; //Dynamic array declaration
....
TheMin := MinIntValue(x);//I am able to retrieve the minium value of the dynamic array
TheMax := MaxIntValue(x);//I am able to retrieve the maximum value of the dynamic array
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以使用数学库.
编写这样的函数非常容易.
function Mean(const Data: array of Integer): Double; overload;
var
i: Integer;
begin
Result := 0.0;
for i := low(Data) to high(Data) do
Result := Result + Data[i];
Result := Result / Length(Data);
end;
Run Code Online (Sandbox Code Playgroud)
我重载了它,以便它可以与Math单元中相同的命名函数并排放置.
如果您希望使用内置库代码,可以使用SumInt该Math单元:
TheMean := SumInt(x) / Length(x);
Run Code Online (Sandbox Code Playgroud)
SumInt使用Integer累加器执行求和.这可能比使用浮点累加器的定制函数更快.但是,Integer累加器可能会溢出,这可能是令人反感的.另一方面,Integer累加器可能比浮点累加器更准确.根据您的使用要求,这些问题可能对您很重要.
在麻烦的情况下,如果输入数组的长度为零,则将引发运行时浮点除以零的错误.