Mencari nilai faktorial dengan procedur dan fungsi secara rekursif dan Iterasi dalam PASCAL

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:

Diberdayakan oleh Blogger.