**program untuk menghitung faktorial tanpa rekursi.**
Program bilangan_Faktorial;
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');
write('Berapa Faktorial :');readln(x);
writeln (x , ' faktorial ', '=', faktorial(x));
readln;
end.
**program deret fibonacci dengan cara rekursi**
program fibonacci;
Uses Crt;
Var
a, b, c, i, n : integer;
begin
a := 0;
b := 1;
c := 0;
write('Masukkan banyaknya angka : ');
readln(n);
write('Deret Fibonacci : ');
for i := 1 to n do
begin
c := a + b;
a := b;
b := c;
write(c, ' ');
end;
readln;
end.
**program untuk menyusun permutasi sekumpulan karakter dengan menggunakan rekursi**
program Permutasi;
uses crt;
const MAX = 5;
type larik = array[1..Max] of char;
Var
A : larik; {larik yang akan dipermutasi}
C_Permutasi,C_Elemen,I : integer;
Lagi : char;
{Procedure penyusunan permutasi}
procedure PERMUTASI (Var B : integer; A : Larik; K,N : integer);
var
I : integer;
Temp : char;
begin
if K = N then
begin
B:= succ(B);
write('permutasi ke ', B:2,':');
for I := 1 to N do
write(A[I]:3);
writeln;
end
else
for I := K to N do
begin
Temp := A[I];
A[I] := A[K];
A[K] := Temp;
Permutasi(B,A,K+1,N)
end;
end; {prosedur permutasi}
{Program utama}
begin
repeat
Clrscr;
write('Banyaknya karakter yang akan');
write('dipermutasikan:');
repeat
gotoxy(47,1); write (' ');
gotoxy(47,1); readln(C_Elemen);
until C_Elemen <= Max;
{menyusun karakter yang di permutasikan}
for I := 1 to C_Elemen do
A[I] := chr (I+64);
clrscr;
write('Menyusun Permutasi Untuk');
writeln(C_Elemen:2,' Karakter');
writeln('--------------------------');
writeln;
{proses mencari informari}
C_Permutasi := 0;
Permutasi (C_permutasi, A, 1, C_Elemen);
{Mencetak hasil}
writeln;
writeln('Banyaknya Permutasi:', C_permutasi:3);
writeln;
write('Akan coba Lagi:: (Y/T):'); readln (Lagi)
until not (Lagi in ['Y', 'y'])
end.
Tidak ada komentar:
Posting Komentar