(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