-->

Rabu, 20 Oktober 2010

contoh pascal sederhana

 
contoh function 
uses crt;

procedure header;
begin
writeln('================================');
writeln('||  :: ALL ABOUT FUNCTION ::  ||');
writeln('================================');
writeln;
end;
function menu_utama:byte;
var menu:byte;
begin
writeln('Menu : ');
writeln('1. Faktorial');
writeln('2. Pangkat');
writeln('3. Phytagoras');
writeln('4. Nilai Maksimum');
writeln('5. Faktor');
writeln('6. Bilangan Prima');
writeln('0. EXIT');
writeln;
writeln('================================');
write('Pilihan anda : ');{gotoxy(17,15);}readln(menu);
menu_utama:=menu;
end;
function factorial(n:word):longint;
var i,hasil:longint;
begin
hasil:=1;
for i:=n downto 1 do
  begin
  hasil:=hasil*i;
  end;
factorial:=hasil;
end;
function pangkat(x,y:integer):longint;
var i,z:longint;
begin
z:=1;
for i:=1 to y do
  begin
  z:=z*x;
  end;
pangkat:=z;
end;
function phytagoras(a,b:integer):real;
var c:real;
begin
c:=sqrt(a*a+b*b);
phytagoras:=c;
end;
function maksimum(a,b,c:integer):integer;
var d:integer;
begin
if (a>b) and (a>c) then
  d:=aelse
  if b>c then
    d:=b
  else
    d:=c;
maksimum:=d;
end;
function faktor(n:integer):byte;
var i:integer;j,e:byte;
begin
e:=0;
for i:=n downto 1 do
  begin
  j:=n mod i;
  if j=0 then
    e:=e+1;
  end;
faktor:=e;
end;
function prima(n:integer):boolean;
var e:integer;
begin
e:=faktor(n);
if e=2 then
  f:=true
else
  f:=false;
prima:=f;
end;

var a,b:longint;
    c:real;
    d,g,h,n,o,p,q,r,s,x,y:integer;
    e,menu:byte;
    f:boolean;
begin
repeat
  clrscr;
  header;
  menu:=menu_utama;
  if (menu>=1) and (menu<=6) then
    begin
    clrscr;
    if menu=1 then
      begin
      header;
      writeln(':: FAKTORIAL ::');
      writeln('n! = ...');
      writeln;
      write('faktorial dari : '); readln(n);
      a:=factorial(n);
      writeln;
      writeln(n,'! = ',a);
      end;
    if menu=2 then
      begin
      header;
      writeln(':: PANGKAT ::');
      writeln('X pangkat Y (X^Y)');
      writeln;
      write('X : '); readln(x);
      write('Y : '); readln(y);
      b:=pangkat(x,y);
      writeln;
      writeln('Jadi, ',x,'^',y,' = ',b);
      end;
    if menu=3 then
      begin
      header;
      writeln(':: PHYTAGORAS ::');
      writeln('perhitungan menggunakan rumus phytagoras');
      writeln;
      write('masukkan nilai A : ');readln(g);
      write('masukkan nilai B : ');readln(h);
      c:=phytagoras(g,h);
      writeln;
      writeln('Jadi, C = ',c:0:2);
      end;
    if menu=4 then
      begin
      header;
      writeln(':: NILAI MAKSIMUM ::');
      writeln('membandingkan antara 3 nilai');
      writeln;
      write('A : ');readln(o);
      write('B : ');readln(p);
      write('C : ');readln(q);
      d:=maksimum(o,p,q);
      writeln;
      writeln('nilai yang paling besar : ',d);
      end;
    if menu=5 then
      begin
      header;
      writeln(':: FAKTOR ::');
      writeln('mencari berapa banyak faktor yang dimiliki bilangan X');
      writeln;
      write('masukkan bilangan : ');readln(r);
      e:=faktor(r);
      writeln;
      writeln(r,' memiliki faktor sebanyak ',e);
      end;
    if menu=6 then
      begin
      header;
      writeln(':: BILANGAN PRIMA ::');
      writeln('menentukan suatu bilangan apakah termasuk bilangan prima atau tidak');
      writeln;
      write('masukkan bilangan : ');readln(s);
      f:=prima(s);
      writeln;
      if f=true then
        writeln(s,' adalah bilangan prima')
      else
        writeln(s,' bukan bilangan prima');
      end;
    writeln;
    writeln;
    writeln;
    write('Press ENTER untuk kembali ke menu ');readkey;
    end;
  if menu=0 then
    begin
    writeln;
    writeln;
    writeln;
    write('Press Any Key to EXIT');readkey;
    end;
  if menu>6 then
    begin
    clrscr;
    header;
    writeln('Maaf, pilihan anda tidak ada di dalam menu');
    writeln;
    writeln;
    write('Press ENTER untuk kembali ke menu ');readkey;
    end;
until (menu=0);
end.
 
array & procedure..
uses crt;
type arr=array[1..10] of integer;

procedure header;
begin
writeln('=============================================');
writeln('||  :: TUGAS MATA KULIAH STRUKTUR DATA ::  ||');
writeln('=============================================');
writeln;
end;

procedure identitas;
begin
writeln('Nama : -------------');
writeln('NIM  : -------------');
writeln;
end;

procedure menu_utama(var menu:byte);
begin
writeln('Menu : ');
writeln('1. Inisialisasi Array');
writeln('2. Mengisi data pada Array');
writeln('3. Mencetak data yang ada pada Array');
writeln('4. Mengisi data pada indeks paling depan pada Array');
writeln('5. Mengisi data pada indeks paling belakang pada Array');
writeln('6. Mengisi data pada indeks bagian tengah pada Array');
writeln('0. EXIT');
writeln;
writeln('=============================================');
write('Pilihan anda : ');readln(menu);
end;

procedure inisialisasi(var a:arr;var e:byte);
var i:integer;
begin
for i:=1 to 10 do
  begin
  a[i]:=0;
  end;
e:=0;
end;

procedure isi(n:byte;var a:arr;var e:byte);
var i:integer;
begin
for i:=1 to n do
  begin
  write('Masukkan data ke-',i,' : ');readln(a[i]);
  e:=e+1;
  end;
end;

procedure cetak(a:arr;n:byte);
var i:integer;
begin
for i:=1 to n do
  begin
  writeln('Data ke-',i,' : ',a[i]);
  end;
end;

procedure geser_value(x,y:byte;var a:arr;var e:byte);
var i:integer;
begin
for i:=y downto x do
  begin
  a[i+1]:=a[i];
  end;
e:=e+1;
end;

procedure masuk_depan(value:integer;var a:arr;var e:byte);
var i:integer;
begin
if e=0 then
  begin
  a[1]:=value;
  e:=e+1;
  end
else
  begin
  geser_value(1,e,a,e);
  a[1]:=value;
  end;
end;

procedure masuk_belakang(value:integer;var a:arr;var e:byte);
begin
e:=e+1;
a[e]:=value;
end;

procedure masuk_tengah(value:integer;var a:arr;var e:byte);
var i:integer;
begin
i:=1;
while a[i] < value do
  begin
  i:=i+1;
  end;
geser_value(i,e,a,e);
a[i]:=value;
end;


var e,n,menu:byte;
    a:arr;
    value:integer;
begin
repeat
  clrscr;
  header;
  identitas;
  menu_utama(menu);
  if (menu>=1) and (menu<=6) then
    begin
    clrscr;
    if menu=1 then
      begin
      header;
      writeln(':: INISIALISASI ARRAY ::');
      writeln('Keterangan : setiap elemen diberi nilai nol');
      writeln;
      inisialisasi(a,e);
      writeln;
      writeln('Inisialisasi Array ... ... ... ... DONE');
      end;
    if menu=2 then
      begin
      header;
      writeln(':: MENGISI DATA ::');
      writeln('Berapa banyak data yang akan anda masukkan(maks:10)? ');readln(n);
      writeln;
      isi(n,a,e);
      end;
    if menu=3 then
      begin
      header;
      writeln(':: MENCETAK DATA ::');
      writeln;
      if e>0 then
        cetak(a,e)
      else
        writeln('Maaf, data masih kosong, silahkan gunakan menu ke-2 untuk mengisi data');
      writeln;
      end;
    if menu=4 then
      begin
      header;
      writeln(':: MENGISI DATA DI DEPAN ::');
      writeln('Keterangan : Mengisi data pada indeks paling depan pada Array');
      writeln;
      write('Data yang ingin anda masukkan : ');readln(value);
      masuk_depan(value,a,e);
      writeln;
      end;
    if menu=5 then
      begin
      header;
      writeln(':: MENGISI DATA DI BELAKANG ::');
      writeln('Keterangan : Mengisi data pada indeks paling belakang pada Array');
      writeln;
      write('Data yang ingin anda masukkan : ');readln(value);
      masuk_belakang(value,a,e);
      writeln;
      end;
    if menu=6 then
      begin
      header;
      writeln(':: MENGISI DATA DI TENGAH ::');
      writeln('Keterangan : Mengisi data pada indeks bagian tengah pada Array');
      writeln;
      write('Data yang ingin anda masukkan : ');readln(value);
      masuk_tengah(value,a,e);
      writeln;
      end;
    writeln;
    writeln;
    writeln;
    write('Press ENTER untuk kembali ke menu ');readkey;
    end;
  if menu=0 then
    begin
    writeln;
    writeln;
    writeln;
    write('Press Any Key to EXIT');
    end;
  if menu>6 then
    begin
    clrscr;
    header;
    writeln('Maaf, pilihan anda tidak ada di dalam menu');
    writeln;
    writeln;
    write('Press ENTER untuk kembali ke menu ');readkey;
    end;
until (menu=0);
readkey;
end.  
 
contoh selection sort sma buble sort 
 
uses crt;
type array1D=array[1..10] of integer;


procedure SelectionSort(var a:array1D; n:integer);
var i,j,b:integer;
begin
for i:=1 to n-1 do
  begin
  for j:=i+1 to n do
    begin
    if a[i]>a[j] then
      begin
      b:=a[i];
      a[i]:=a[j];
      a[j]:=b;
      end;
    end;
  end;
end;

procedure BubleSort(var a:array1D; n:integer);
var i,j,b:integer;
begin
for i:=n downto 2 do
  begin
  for j:=1 to n-1 do
    begin
    if a[j]>a[j+1] then
      begin
      b:=a[j];
      a[j]:=a[j+1];
      a[j+1]:=b;
      end;
    end;
  end;
end;

var a:array1D;
    i,ms:integer;
begin
clrscr;
for i:=1 to 5 do
  begin
  write('Input angka ke ',i,' : ');
  readln(a[i]);
  end;

writeln;
writeln('===================');
writeln('Metode sorting : ');
writeln('1. Selection Sort');
writeln('2. Buble Sort');
writeln;
write('Pilihan anda : ');readln(ms);
writeln('===================');
writeln;
if ms=1 then
  begin
  SelectionSort(a,5);
  writeln;
  writeln('hasil selection sort : ');
  for i:=1 to 5 do
    begin
    write('angka ke ',i,' : ');
    writeln(a[i]);
    end;
  end;
if ms=2 then
  begin
  BubleSort(a,5);
  writeln;
  writeln('hasil buble sort : ');
  for i:=1 to 5 do
    begin
    write('angka ke ',i,' : ');
    writeln(a[i]);
    end;
  end;


readkey;
end. 
 
 
credit:ngekngok snutz 
 
 
 
 

0 komentar:

Posting Komentar