program faktorial;
uses
wincrt;
var
i,fak:longint;
function faktorialiterasi(n:longint):longint;
var
f,k:longint;
begin
f:=1;
for k:=1 to n do
f:=f*k;
faktorialiterasi:=f;
end;
procedure faktorialproc(n:longint;var hasil:longint);
var
f,k:longint;
begin
f:=1;
for k:=1 to n do
f:=f*k;
hasil:=f;
end;
function faktorialrekursif(n:longint):longint;
begin
if n=0 then
faktorialrekursif:=1
else
faktorialrekursif:=n*faktorialrekursif(n-1);
end;
procedure faktorialprocrek(n:longint;var hasil:longint);
var
h:longint;
begin
if n=0 then
hasil:=1
else
begin
faktorialprocrek(n-1,h);
hasil:=n*h;
end;
end;
begin
write('masukkan nilai faktorial yang dicari :');readln(i);
writeln;
writeln('nilai faktorial dengan fungsi iterasi', i, '! adalah ',faktorialiterasi(i));
writeln('nilai faktorial dengan fungsi rekursif', i, '! adalah ',faktorialrekursif(i));
faktorialproc(i,fak);
writeln('nilai faktorial dengan prosedur iterasi', i, '! adalah ',fak);
faktorialprocrek(i,fak);
writeln('nilai faktorial dengan prosedur rekursif', i, '! adalah ',fak);
end.
Tidak ada komentar: