Questão nº 31
Questão de Programação · FCC TRT6 2025 (nº 31)
O algoritmo abaixo, na forma de pseudocódigo, simula um sistema de busca e atualização do status de processos judiciais em um Tribunal Regional do Trabalho, em que o usuário indica um id de processo a ser localizado. Considere que o algoritmo foi criado para ser posteriormente implementado em Java e que o usuário poderá digitar um id existente ou inexistente, mas que será sempre um valor do tipo inteiro.
Algoritmo Tribunal
Função Busca(ids: Vetor[Inteiro], idProcurado: Inteiro): Inteiro
Para I faça
Se ids[i] == idProcurado então
Retorne i
FimSe
FimPara
Retorne -1
FimFunção
Início
ids: Vetor[Inteiro] <- (1, 2, 3)
status: Vetor[Cadeia] <- ("Em andamento", "Em análise", "Concluído")
Escreva("Digite o ID do processo a ser buscado: ")
Leia(idProcurado)
indice: Inteiro <- Busca(ids, idProcurado)
Se II então
Escreva("Processo com ID ", idProcurado, " encontrado no índice ", indice, " com status ", status[indice])
status[indice] <- "Finalizado"
Escreva("Status do processo atualizado para: ", status[indice])
Senão
Escreva("Processo não encontrado.")
FimSe
Fim
Em condições ideais e considerando a existência de um método tamanho que retorna o tamanho do array, para que a busca seja executada corretamente e o processo procurado seja atualizado para Finalizado, as lacunas I e II devem ser preenchidas por
- A`i de 0 até tamanho(ids) e indice != -1`
- B`i de 0 até tamanho(ids) e indice != 1`
- C
i de 0 até tamanho(ids) - 1 e indice == -1 - D
i de 0 até tamanho(ids) - 1 e indice == idProcurado - E`i de 0 até tamanho(ids) - 1 e indice != -1` (alternativa correta)
Resposta comentada
Gabarito Alternativa E
A busca em um vetor (também conhecido como array) geralmente envolve percorrer seus elementos usando um índice. Em muitas linguagens de programação, como Java, os vetores são 0-indexados, o que significa que o primeiro elemento está no índice 0 e o último no índice tamanho_do_vetor - 1.
- (A) Incorreta: A parte
i de 0 até tamanho(ids)está errada. Se o vetor tem 3 elementos (índices 0, 1, 2),tamanho(ids)é 3. O loop tentaria acessarids[3], o que causaria um erro de "índice fora dos limites" (ArrayIndexOutOfBoundsException), pois o último índice válido étamanho(ids) - 1. Esta é uma armadilha comum para iniciantes que esquecem a indexação baseada em zero. - (B) Incorreta: A parte
i de 0 até tamanho(ids)está errada pelo mesmo motivo da alternativa A. Além disso,indice != 1é uma condição incorreta para verificar se o processo foi encontrado; o processo pode ser encontrado em outros índices (como 0 ou 2), e essa condição falharia. - (C) Incorreta: A parte
indice == -1está errada. A funçãoBuscaretorna-1quando o processo não é encontrado. Para que o blocoSeexecute quando o processo é encontrado, a condição deveria ser o oposto, ou seja,indice != -1. - (D) Incorreta: A parte
indice == idProcuradoestá errada.indiceé a posição do elemento no vetor (ex: 0, 1, 2), enquantoidProcuradoé o valor que estamos buscando (ex: 1, 2, 3). Comparar a posição com o valor não faz sentido para determinar se o processo foi encontrado. - (E) Correta: A parte
i de 0 até tamanho(ids) - 1está correta para percorrer um vetor 0-indexado de forma segura, acessando todos os elementos válidos. A parteindice != -1está correta porque a funçãoBuscaretorna-1se o processo não for encontrado; portanto, seindicefor diferente de-1, significa que um índice válido foi retornado e o processo foi localizado.
Fonte: FCC TRT6 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 005). Reproduzida para fins de estudo.