함수를 하나 만들건데요,
전달값의 갯수가 달라지는 경우는 어떻게 해요?
예를 들어 더하기 함수를 만들때
function Hap( a: integer; b: integer) : integer;
begin
Result := a + b;
end;
이렇게 두개의 인수만 받는것이 아니라,,,
function NewHap( a1, a2, a3,?????? ) : integer;
begin
Result := a1 + a2 + a3 ...;
end;
뭐 대략 이렇게 전달값의 갯수를 정하지 않고 이용하도록 하고싶은데..
어떤 방법이있나요?
인수를 배열을 넘기시면 될거 같네요.
function hap(ar : array of integer; cnt : integer):integer;
var
i : integer;
begin
//cnt - 인수의 개수
// ar - 정수 배열
result := 0;
for i:= 0 to cnt -1 do
begin
result := result + ar[i];
end;
end;
function hap2(ar : array of integer):integer;
var
i : integer;
begin
// ar - 정수 배열
result := 0;
for i:= 0 to high(ar) do
begin
result := result + ar[i];
end;
end;
호출
procedrue TForm1.Button1Click(sender:TObject);
var
par : array of integer;
ret : integer;
begin
Setlength(par, 3);
par[0] := 1;
par[1] := 5;
par[2] := 9;
ret := hap(par, 3);
showmessage(IntToStr(ret));
ret := hap2(par);
showmessage(IntToStr(ret));
end;