program pesquisa_binaria_recursiva;
const
  max=10;
type
  vetor = array [1..max] of integer;

function find(var vet:vetor; i,f:integer; pesq:integer):integer;
var
  meio:integer;
begin
  writeln('Inicio:',i,' ','Fim:',f);
  meio:=i+((f-i) div 2);
  if pesq = vet[meio]
  then find:=meio
  else if i=f
       then if vet[i] = pesq
            then find:=i
            else find:=-1
  else if pesq < vet[meio]
       then find:=find(vet,i,meio,pesq)
       else find:=find(vet,meio+1,f,pesq);
end;

var
  V:vetor;
  Valpesq,Posic:integer;
  aux:integer;
begin
  writeln('Entre com ',max,' valores: ');
  for aux:=1 to max
  do begin
       write('Valor[',aux,']=');
       readln(V[aux]);
     end;
  writeln('Valor pesquisado: ');
  readln(Valpesq);
  Posic:=find(V,1,max,Valpesq);
  if Posic = -1
  then writeln ('>> Valor nÆo encontrado!')
  else writeln ('>> Valor encontrado na posi‡Æo: ',Posic);
  readln;
end.
