Jumat, 21 Januari 2011

Kumpulan Tugas Struktur Data I (system Informasi B)

**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