Observe o algoritmo abaixo escrito na linguagem de program...

Próximas questões
Com base no mesmo assunto
Ano: 2012 Banca: FUNCAB Órgão: MPE-RO Prova: FUNCAB - 2012 - MPE-RO - Analista de Sistemas |
Q222048 Programação
Observe o algoritmo abaixo escrito na linguagem de programação Java. Sobre o mesmo, é correto afirmar que:

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;
Alternativas

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