为movesum增加一个参数即可!
function movesum(aarray:array of double;n:integer;len:integer):array of double
var i,j,count:integer;
tempsumarray:array of double;
sum:double;
begin
count:=1;
for i:=0 to length(aarray)-1-n-1 do
begin
sum:=0;
for j:=0 to n-1 do
begin
sum=sum+aarray[i+j];
end;
tempsumarray[i]:=sum;
if count=len then break;
inc(count);
end;
result:=tempsumarray;
end;
function movesum(aarray:array of double;n:integer;len:integer):array of double
var i,j,count:integer;
tempsumarray:array of double;
sum:double;
begin
count:=1;
for i:=0 to length(aarray)-1-n-1 do
begin
sum:=0;
for j:=0 to n-1 do
begin
sum=sum+aarray[i+j];
end;
tempsumarray[i]:=sum;
if count=len then break;
inc(count);
end;
result:=tempsumarray;
end;
var a:integer;
begin
a:=0;
for i:=1 to length //其中arr[0]=0无实际值
begin
a:=a+arr[i];
if( i>=n )
begin
a:=a-arr[i-n];
avg[i-n]:=a;
end
end
end//其中arr为给定数组,从1开始计数
avg为移动值
我觉得在Delphi下就要好好利用 Property, public
function GetValue(Index: Integer): Integer;
property Value[Index: Integer]: Integer read GetValue;function TClassName.GetValue(Index: Integer):Integer;
Begin
... // 你的算法
End;
比如我最终要求moveave(movesum(Array1,2),3)返回10个值,但moveave并不知道movesum返回几个值movesum也不知道moveave要他返回几个值
用pascal 描述一下算法都很奇怪吗?