Jumat, 11 Desember 2009

KUMPULAN SOAL REKURSI

1. Faktorial

Program Faktorial_Suatu_bilangan;
uses wincrt;

function Faktorial(a:integer):longint;
begin

if (A=1)then
Faktorial:=1
else
Faktorial:=a*faktorial(a-1);
end;
var
x:integer;
begin
writeln('Faktorial sequence');
writeln;
write('Berapa Faktorial ? ');readln(x);
writeln(x ,' ! ',' = ',faktorial(x));
end.

2. Faktorial

Program FACTORIAL;
uses wincrt;
var
DATA:integer;

Procedure factorial_bilangan (n:integer);
var
i:integer;
fac:integer;
begin
if n<0 then
begin
writeln ('Bilangan bernilai negatif tidak ada factorialnya');
end else
begin
fac:=1;
for i:=1 to n do
begin
fac:=fac*i;
end;
writeln (n:0,'!= ', fac);
end;
end;

begin
clrscr;
write ('Masukkan data bilangan bulat: ');
readln (data);
factorial_bilangan (data);
end.

3. Fibonanci

Program Fibonacci;
uses wincrt;
Var fibo: array [1..10] of integer;
A,i,hasil:integer;
begin
clrscr;
write('Masukkan suku keberapa dalam deret fibonacci : ');readln(A);
if (A=1) or (A=2) then hasil:=1 else
begin
fibo[1]:=1; fibo[2]:=1;
for i:=3 to A do
begin
fibo[i]:=fibo[i-1]+fibo[i-2];
hasil:=fibo[i];
end;
end;
writeln;
for i:=1 to A do
write(fibo[i],' ');
writeln;
writeln('Suku Ke-',A,' dari deret fibonacci adalah ',hasil);
end.

4. Perpangkatan

Program pangkat;
uses wincrt;
var A,x,i,hasil:longint;
begin
write('masukkan bilangan yang akan dipangkatkan = ');readln(A);
write('masukkan bilangan pangkat = ');readln(x);
hasil:=1;
for i:=1 to x do
hasil:=hasil*A;
writeln('hasil dari ',A,' pangkat ',x,' adalah ',hasil);
end.

5. Rekursi Pascal

Program Rekursi_pascal;
uses wincrt;
procedure rekursi(A:integer);
begin
if A < 10 then
begin
write('Pascal ');
A:=A+1;
rekursi(A);
end;
end;

var
x:integer;
begin
clrscr;
x:=3;
rekursi(x);
end.

6. Tampilkan Tulisan M dari kiri ke kanan Sebanyak 10 kali.
Layout MMMMMMMMMM

Program Deret;
uses wincrt;
procedure rekursi;
begin
if wherex < 11 then
begin
write('M');
rekursi;
end;
end;
begin
clrscr;
rekursi;
end.

Tidak ada komentar:

Posting Komentar