program BinarySearchDemo;
const
size = 8;
arr: array[1..size] of integer = (2, 3, 6, 7, 12, 15, 17, 19);
function BinarySearch(to_find: integer): integer;
var
left, right, mid: integer;
begin
left := 1;
right := size;
while left <= right do
begin
mid := left + (right - left) div 2;
if arr[mid] = to_find then
begin
BinarySearch := mid - 1; // Return 0-based index like in C
exit;
end;
if arr[mid] < to_find then
left := mid + 1
else
right := mid - 1;
end;
BinarySearch := -1;
end;
var
to_find, index: integer;
begin
to_find := 7;
index := BinarySearch(to_find);
if index = -1 then
writeln('not found')
else
writeln('Found at index: ', index);
end.
(*
run:
Found at index: 3
*)