Contoh program pascal

Inti program ini yaitu pencarian nilai hasil inputan dengan tabint yg kita tentukan. Melalui gabungan procedure dan function disini kita dapat mengkombinasikan dengan perulangan sehingga memberikan pemilihan. 
Check this out !!!

Program sequential_search;

uses crt;
const
    nmin = 1;
    nmax = 100;
type
 arrint = array [nmin..nmax] of integer;

var
 x,n,i,indeks     : integer;
 tabint     : arrint;

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 seqsearch2 ( x : integer) : integer;
Var
i:integer;
ditemukan : boolean;
begin
ditemukan := false;
i := 1;
while ((i < n ) and (not ditemukan)) do
if tabint [i] = x then
ditemukan := true
else
i := i+1;
if ditemukan = true then
seqsearch2 := i
else
seqsearch2 := 0;
end;

procedure seq_search;
Var
L     : array [1..5] of integer;
bil,i    : integer;
Begin
write('angka yang dicari= ');readln(bil);
L[1]:=1; L[2]:=3; L[3]:=5; L[4]:=7; L[5]:=9;
i := 1;
while (i<5) and (L[i] <> bil) do begin
i := i + 1;
end;
if (L[i]=bil) then
writeln('ditemukan pada larik ke-',i)
else
writeln('tidak ditemukan!');
end;

function binarysearch( y : integer) : integer;
Var
i,indeks,atas,bawah,tengah : integer;
ditemukan:boolean;
Begin
atas         := 1;
bawah         := n;
ditemukan     := false;
indeks:= 0;
while ((atas <= bawah) and (not ditemukan)) do
 begin
tengah := (atas + bawah) div 2;
if y = tabint[tengah] then
Begin
ditemukan     := true;
indeks     := tengah;
end
else
if y = tabint[tengah] then
bawah := tengah - 1
else
atas := tengah + 1;
end;
binarysearch:= indeks;
end;

{Program Utama}
Var
pil : integer;

Begin
Clrscr;
textcolor(yellow);
write('input nilai n = ');readln(n);
writeln;
writeln('1. Seqsearch 1');
writeln('2. Seqsearch 2');
writeln('3. Seq_search');
writeln('4. Bianrysearch');
writeln;
write('masukkan pilihan= ');readln(pil);
writeln;

if pil = 1 then
Begin
 for i := 1 to n do
begin
write('Tabint[',i,']='); readln(tabint[i]);end;
write('nilai yang dicari= ');readln(x);
indeks := seqsearch1 (x);
if indeks <> 0 then
write(x,' ditemukan pada indeks ke-',indeks)
else
write(x,' tidak ditemukan');
end;

if pil = 2 then
begin
 for i := 1 to n do
begin
write('Tabint[',i,']= ');readln(tabint[i]);
end;
write('nilai yang dicari= ');readln(x);
indeks := seqsearch2(x);
 if indeks <> 0 then
write(x,' ditemukan pada indeks ke-',indeks)
else
write(x,' tidak ditemukan');
end;

if pil = 3 then
Begin
seq_search;
end;

if pil = 4 then
Begin
for i:= 1 to n do
begin
write('Tabint[',i,']= ');readln (tabint[i]);
end;
write('nilai yang dicari= ');readln (x);
indeks := binarysearch (x);
if indeks <> 0 then
write(x,' ditemukan pada indeks ke-',indeks)
else
write(x,' tidak ditemukan');
end;

readln;
end.

0 komentar:

Posting Komentar