Minggu, 19 April 2015

Linked List

uses crt;
  type pointer=^typedata;
  TYPEDATA = RECORD
   NILAI : INTEGER;
   BERIKUTNYA : POINTER;
   end;


  var list :pointer;

  procedure mas_dep(var L : pointer; x : Integer);
  var baru : pointer;

 begin
  new(baru);
  baru^.Nilai:=x;
  baru^.Berikutnya:= nil;
  if L= nil then L:=baru
  else
  begin
  baru^.berikutnya :=L;
  L:= baru;
  end;
 end;

 procedure cetak (L:pointer);
 var bantu : pointer;
 begin
  bantu:= L;
  while bantu <> nil do
  begin
  write (bantu^.Nilai:3);
  Bantu:=bantu^.Berikutnya;
   end;
  end;

  var bil, bil2 : integer;
  JB : char;

  begin
  clrscr;
  new(list);
  list:=nil;
  jb:='Y';
  writeln;
  writeln (' program linked List ');
  writeln;
  writeln ('  Masuk depan');
  while upcase(Jb)='Y' do
  begin
  writeln;
   write ('Masukkan bilangan : '); readln(bil);
   mas_dep(list,bil);
   write ('Lagi [Y/T]  : '); readln(Jb);
   end;
   cetak(list);
   writeln;
   readln;
   end.

Minggu, 12 April 2015

Pointer

Ini Program Pointer tak bertipe :

uses crt;
var
p : Pointer;
q : ^Byte;
r : array [0..100] of Byte;
i : Byte;
n : integer;
begin
clrscr;
write(‘Masukkan jumlah data : ‘); readln(n);
writeln;
writeln;
GetMem(p, 20);
q := p;
for i := 0 to n do
begin
r[i] := n – i;
q^ := n – i;
inc(q);
end;
q := p;
for i := 0 to n do
begin
write(‘r[ ‘, i ,’ ] = ‘, r[i], ‘; ‘);
writeln(‘p^ ke-‘, i ,’ = ‘, q^);
inc(q);
end;
readln;
end.

Selasa, 07 April 2015

Program Searching

beriukut adalah Sourcode nya untuk output silahkan coba sendiri



program searching;
uses crt;
label awal;
var pil:char;
    lg :char;
const nmin = 1;
      nmax = 100;
type  arrint = array [nmin..nmax] of integer;
var tabint : arrint;
    x,n,i,indeks,max,min,maks : integer;
function seqsearch1(xx : integer): integer;
 var i : integer;
  begin
    i := 1;
    while ((i<n) and (tabint[i] <> xx)) do
      i:=i+1;
      if tabint[i] = xx then
        seqsearch1:=i
        else
        seqsearch1:=0;
  end;
function maksimum (tabint: arrint; n : integer) : integer;
  var i, max : integer;
  begin
   for i:=2 to n do
   if max<tabint[i] then
   max:=tabint[i];
   maksimum:=max;
  end;
function minimum (tabint: arrint; n : integer) : integer;
  var i, min : integer;
  begin
   for i:=1 to n do
   if min>tabint[i] then
   min:=tabint[i];
   minimum:=min;
  end;
begin
  clrscr;
  writeln;
  write('Masukkan Jumlah Data = '); readln(n);
  writeln;
    for i:=1 to n do
    begin
       write('   Data[',i,'] = '); readln(tabint[i]);
     end;
    writeln;
        write ('  Nilai yang dicari : '); readln(x);
    indeks:=seqsearch1(x);
      if indeks <> 0 then
      write ('  Nilai : ',x,' ditemukan pada indeks ke-',indeks)
       else
      write('   Nilai : ',x,'tidak ditemukan !');
      writeln;
    begin
    writeln;
    maks:=maksimum(tabint,n);
    min:=minimum(tabint,n);
    writeln;
    writeln ('  Nilai maksimum : ',maks);
    writeln ('  Nilai minimum  : ',min );
    readkey;
    end;
    end.