
Nesse caso, se eu buscar a chave e ela for igual ao ultimo elemento do vetor, ele não vai encontrar, já que (ini < fim).
Quando o (ini == fim), a ultima posição não vai ser testada.
nesse caso eu alterei isso no meu código que ficou assim
inteiro chave
inteiro ini = 0, fim = u.numero_elementos(vet) - 1, meio = 0
logico encontrado = falso
escreva("\nQual chave você quer encontrar? ")
leia(chave)
enquanto (ini < fim) {
meio = (ini + fim) /2
se (vet[meio] == chave) {
encontrado = verdadeiro
pare
} senao se (chave > vet[meio]) {
ini = meio + 1
} senao {
fim = meio - 1
}
}
se (encontrado == verdadeiro) {
escreva("O valor " ,chave, " foi encontrado na posição " ,meio) }
senao {
escreva("O valor ",chave, " não foi encontrado.")
}