Minggu, 22 Maret 2015

Contoh Program Rekursif

  • Source Code

uses crt;
var
    I,Jum_Suku,a,b,n:integer;Bil_X:real;
    dame:char;
label
    awal;

function fak(n:integer):longint;
 begin
  if n=0 then fak:=1
  else fak:=n*fak(n-1);
 end;

function legendre(X: real; N :integer) : real;
var
Suku_1, Suku_2 : real;
begin
if N = 0 then
Legendre := 1
else if N = 1 then
Legendre := X
else
begin
Suku_1 := ((2*N - 1) * (X * Legendre(X, N-1))) / N;
Suku_2 := ((N-1) * Legendre(X, N-2)) / N;
Legendre := Suku_1 + Suku_2;
end;
end;


function fibonacci(n:integer):longint;
 begin
 if (n=1) then fibonacci:=0
  else
    if (n=2) then fibonacci:=1
  else fibonacci:=fibonacci(n-1)+fibonacci(n-2);
 end;

procedure fak;
 begin
  Writeln('  ==Menghitung Nilai Faktorial==');
  writeln;
  writeln;
  write('Masukan nilai factorial : ');
  readln(n);
  writeln;
  writeln(n,'! = ',fak(n));
 end;

procedure Legendre;
begin
Writeln('==Menghitung Suku Banyak Legendre==');
Writeln;
Write('Sampai suku ke : ');
Readln(Jum_Suku);
Write('Masukkan nilai X :');
Readln(Bil_X);
Writeln;
for I := 0 to Jum_Suku do
begin
Writeln('Suku ke-',I:2,',',' Nilainya = ',Legendre(Bil_X, I):8:3);
end;

end;

procedure fibo;
 begin
 writeln('   ==Deret Bilangan Fibonacci==');
 writeln;writeln;
   write('Masukan Jumlah deret bilangan fibonacci : ');
  readln(n);
  for a:=1 to n do
   begin
    write(fibonacci(a),' ');
   end;
  writeln;

 end;

begin
 awal:
 repeat
 clrscr;
 writeln('|==========================================|');
 writeln('|                                 MENU UTAMA                                  |');
 writeln('|==========================================|');
 writeln('| 1. Faktorial                                                                           |');
 writeln('| 2. Bilangan Legendre                                                           |');
 writeln('| 3. Bilangan Fibonacci                                                          |');
 writeln('| 0. Keluar                                                                               |');
 writeln('|==========================================|');
 writeln;
 write('Pilih Menu : ');
 readln(dame);
 case dame of
 '1' :
  begin
   clrscr;
  fak;
 readkey;
 goto awal;
  end;
 '2' :
  begin
   clrscr;
   legendre;
   readkey;
goto awal;
  end;
 '3' :
  begin
   clrscr;
   fibo;
   readkey;
goto awal;
  end;
 end;
 until (dame)='0';
end.
 
  •  Screenshoot
·     
 

 


Sekian terima kasih, semoga bermanfaat.



Tidak ada komentar:

Posting Komentar