Observe o algoritmo abaixo escrito na linguagem de program...
public static int busca ( int[] array, int valor )
{
int esq = 0;
int dir = array.length - 1;
int valorMeio;
while ( esq <= dir ) {
valorMeio = (esq + dir) / 2;
if ( array[valorMeio] < valor ) {
esq = valorMeio + 1;
} else if( array[valorMeio] > valor ) {
dir = valorMeio - 1;
} else {
return valorMeio;
}
}
return -1;
}
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: D - valorMeio é uma variável local.
Essa questão requer conhecimento sobre fundamentos de programação Java, incluindo a compreensão do escopo de variáveis, estruturas de controle e a diferença entre procedimentos e funções. Vamos analisar a alternativa correta.
A variável local é aquela que é declarada dentro de um método e só é visível e utilizável dentro desse método. No caso do algoritmo apresentado, a variável valorMeio é inicializada dentro do método busca e utilizada para armazenar o índice do meio do array enquanto o algoritmo executa a busca binária. Sua existência se limita ao escopo do método busca, o que significa que ela não pode ser acessada de fora desse método. Portanto, a afirmação de que valorMeio é uma variável local está correta.
É importante ressaltar que as demais alternativas estão incorretas:
- A está errada porque busca é uma função, não um procedimento, visto que retorna um valor do tipo int.
- B é incorreta porque dir é uma variável do tipo int que representa o índice do limite superior da busca no array, e não uma variável booleana.
- C é equivocada já que while é uma estrutura de laço utilizada para repetição e não um comando condicional simples; ele executa o bloco de código repetidamente enquanto a condição especificada for verdadeira.
- E é falsa porque o comando return é utilizado para finalizar a execução do método e, opcionalmente, retornar um valor. Ele não realiza nenhuma função de arredondamento.
Portanto, ao entender o papel das variáveis locais e a sintaxe básica do Java, você pode resolver essa questão com confiança e identificar que a alternativa D é a correta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A) busca é um procedimento.
Incorreta, busca é um método;
B) dir é uma variável booleana.
Incorreta, dir é um varíável do tipo inteira;
C) while é um comando condicional.
Incorreta, while é um comando de repetição;
D) valorMeio é uma variável local.
CORRETA, GABARITO DA QUESTÃO
E) return é uma função de arredondamento de variáveis
Incorreta, return não é função e sim uma instrução pra transferir o valor a determinada função
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo