Você está na página 1de 2

program ARV_BINARIA; uses Crt; const max=5; type tvetor = array[1..

max] of integer; //Funo de ordenao do vetor procedure ORD_VETOR(var vet:tvetor); var i: integer; j: integer; aux: integer; begin i:=1; j:=i+1; aux:=0; for i := 1 to max-1 do begin for j := i+1 to max do begin if (vet[i] > vet[j]) then begin aux := vet[i]; vet[i] := vet[j]; vet[j] := aux; end; end; end; end; //Funo de busca binria function PESQ_BIN(vlbusca: integer; vet:tvetor): integer; var pinicial: integer; pfinal: integer; pmeio: integer; begin pinicial := 1; pfinal := max; pmeio:=1; while (pinicial <= pfinal) do begin pmeio := ((pinicial+pfinal) div 2); if vet[pmeio] = vlbusca then //Se encontrou PESQ_BIN := pmeio else begin if (vet[pmeio] > vlbusca) then pfinal := (pmeio-1); if (vet[pmeio] < vlbusca) then

pinicial := (pmeio+1); PESQ_BIN := -1; end; end; end; //Funo principal var vet: tvetor; n: integer; vlbusca: integer; begin n := 1; vlbusca := 0; clrscr; writeln('Informe os valores do array:'); for n := 1 to max do begin readln(vet[n]); end; ORD_VETOR(vet); n := 1; writeln('Vetor ordenado: '); for n:= 1 to max do begin writeln(vet[n]); end; writeln('Insira o valor que sera procurado: '); readln(vlbusca); writeln('Posio do valor buscado: ', PESQ_BIN(vlbusca, vet)); readln; end.

Você também pode gostar