Kamis, 10 September 2009

Program dengan algoritma rekursif dalam Pascal

Program dengan algorita rekursif

(baca sumber : recursive algorithms : http://en.wikipedia.org/wiki/Recursion_(computer_science))
{Catatan Ignas Lamabelawa}



1.Program Anagram



Program anagram;
uses crt;

Procedure anagram(st1,st2:string);
var i :integer; st :string;
begin
if st1='' then writeln(st2)
else for i:= 1 to length(st1) do begin
st:=st1;
delete(st,i,1);
anagram(st,st2+st1[i]);
end;
end;

{ program utama }
Begin
anagram('abc','');
readln;
End.




output :
abc
acb
bac
bca
cab
cba





2. Manara Hanoi


( baca Sumber : http://en.wikipedia.org/wiki/Tower_of_Hanoi)





Program menarahanoi;
uses wincrt;
var baris,x : integer;
ulangi :char;
Procedure hanoi(n :integer;A,B,C :Char);
Begin
if (n>0) then begin
hanoi(n-1,A,C,B);
write(baris,'. pindah piringan ke-',n, 'dari ',A,' ke ',B);readln;
inc(baris);
hanoi(n-1,C,B,A);
end;
End;

{program utama}
Begin
ulangi:='y';
repeat
baris:=1;
write('input jumlah piringan :');readln(x);
hanoi(x,'A','B','C');
readln;
write('apakah diulangi(Y/N):');readln(ulangi);
until (ulangi='N') or (ulangi='n');
End.

Output :


3. Program Konversi Desimal ke Biner
{Program rekursif untuk konversi bilangan desimal ke Biner}


program DesimalkeBiner;
uses wincrt;

procedure px(x:integer);
begin
if x>0 then begin
px(x-1);
write(x:5);
px(x-1);
end;
end;
function desbin(n:integer):string;
Begin
if n=0 then
begin
desbin:='0';
end
else
if n=1 then desbin:='1'
else desbin:=desbin(n div 2) + desbin(n mod 2);
End;

var n:integer;
begin
while true do begin
write('desimal='); readln(n);
writeln('biner=',desbin(n));
end;
end.

Output : desimal :5; biner :101

Tidak ada komentar:

Posting Komentar

tentang saya

Foto saya
Blog ini telah bertransformasi dan fokus pada tulisan di bidang TIK, info akademik, pembahasan soal-soal dari matakuliah informatika