Может я чего то не понимаю, но зачем делать так:
Код:
procedure Maxgarm(var P:mask; knn,kvv: integer; var maxgg:integer);
var
maxg,mk,max:single;im :integer;
begin
mk:=P[knn];
im:=knn;
maxg:=fmax*(km/2)/k*im;
For i:=knn to kvv do
begin
if p[i]>mk then
begin
mk:=p[i];
Max:=mk;
im:=i;
Maxg:=fmax*(km/2)/k*im;
end;
end;
maxgg:=round(maxg/f[1]);
end;
У тебя, что перемення A, что IG - глобальные. Зачем их передавать в процедуру?
Код:
function Maxgarm(knn, kvv: integer) : Integer;
var
maxg,mk,max:single;im :integer;
begin
Result := 0;
mk:=A[knn];
im:=knn;
maxg:=fmax*(km/2)/k*im;
For i:=knn to kvv do
begin
if A[i]>mk then
begin
mk:=p[i];
Max:=mk;
im:=i;
Maxg:=fmax*(km/2)/k*im;
end;
end;
Result := round(maxg/f[1]);
end;
...
IG := Maxgarm(kn,kv);