Questão nº 48
Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 48)
Considere o código JavaScript nas duas questões a seguir.
function numeros(L, N) {
x1 = 0; x2 = L.length-1; while (x1 < x2) { if (L[x2] >= N) { x2 = x2 - 1; } else if (L[x1] + L[x2] != N) { x1 = x1 + 1; } else if (L[x1] + L[x2] == N) { return true; } else { return false; } } return false;}
O parâmetro L deve ter como valor um array com números inteiros, maiores que zero, dispostos em ordem crescente.
Quanto à função numeros, apresentada anteriormente, é correto afirmar que o principal propósito do algoritmo é localizar um par de números em L:
- Acuja soma seja diferente de N;
- Bcuja soma seja igual a N; (alternativa correta)
- Ccuja soma seja igual ao dobro de N;
- Dcujo módulo da diferença seja igual a N;
- Ecujo produto seja igual a N.
Resposta comentada
Gabarito Alternativa B
A complexidade de algoritmos estuda a eficiência de um programa. Para entender o propósito de um algoritmo que busca algo e retorna true ou false, devemos focar nas condições que levam ao retorno true, pois elas indicam o que o algoritmo encontrou com sucesso.
- (A) Incorreta: O algoritmo retorna
truequando a soma é igual aN, não quando é diferente. A condiçãoL[x1] + L[x2] != Né usada para continuar a busca, não como um critério de sucesso. - (B) Correta: O algoritmo retorna
trueespecificamente na linhaelse if (L[x1] + L[x2] == N), indicando que seu principal propósito é localizar um par de números emLcuja soma seja igual aN. - (C) Incorreta: Não há nenhuma condição no código que verifique se a soma é igual ao dobro de
N. - (D) Incorreta: O algoritmo não realiza verificações relacionadas ao módulo da diferença entre os números.
- (E) Incorreta: O algoritmo não efetua operações de multiplicação para verificar o produto dos números.
Fonte: FGV TJ-SE Servidor 2023 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.