uses wincrt;
var
L : array [1..100] of integer;
n1,x1,m,hasil :integer;
function BinarySearch2(n :integer; x : integer) : integer;
var
i,j : integer;
idx, k : integer;
ketemu : boolean;
begin
i := 1;
j := n;
ketemu := false;
while (not ketemu) and (i <= j) do
begin
k:=(i + j) div 2;
if (L[k] = x) then
ketemu:= true
else
if (x > l[k]) then
i := k + 1
else
j := k - 1;
end;
if (ketemu) then
idx := k
else
idx := -1;
BinarySearch2:=idx;
end;
begin
write ('masukkan jumlah data ');
readln (n1);
for m:=1 to n1 do
begin
write ('masukkan isi larik ke ' ,m, ' ');
readln (L[m]);
end;
write ('inputkan data yang ingin dicari ');
readln (x1);
hasil:=BinarySearch2 (n1,x1);
if (hasil = -1) then
writeln ('tidak ditemukan di larik')
else
writeln ('data inputan ditemukan di larik ke ', hasil);
end.
var
L : array [1..100] of integer;
n1,x1,m,hasil :integer;
function BinarySearch2(n :integer; x : integer) : integer;
var
i,j : integer;
idx, k : integer;
ketemu : boolean;
begin
i := 1;
j := n;
ketemu := false;
while (not ketemu) and (i <= j) do
begin
k:=(i + j) div 2;
if (L[k] = x) then
ketemu:= true
else
if (x > l[k]) then
i := k + 1
else
j := k - 1;
end;
if (ketemu) then
idx := k
else
idx := -1;
BinarySearch2:=idx;
end;
begin
write ('masukkan jumlah data ');
readln (n1);
for m:=1 to n1 do
begin
write ('masukkan isi larik ke ' ,m, ' ');
readln (L[m]);
end;
write ('inputkan data yang ingin dicari ');
readln (x1);
hasil:=BinarySearch2 (n1,x1);
if (hasil = -1) then
writeln ('tidak ditemukan di larik')
else
writeln ('data inputan ditemukan di larik ke ', hasil);
end.
0 Response to "Contoh program pencarian beruntun bagi dua"
Posting Komentar