Analise o código abaixo, em Javascript, que utiliza UNIT.JS ...
var test = require('unit.js'); function f32(v){ return I } test.assert (f32(10) == 0 && f32(11) == 1);
Qual alternativa completa o local identificado pela letra “I”, de forma que a execução ocorra sem erros?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - v%2;
A questão apresentada propõe um cenário de teste de uma função em JavaScript utilizando o framework UNIT.JS. O trecho de código fornecido demonstra uma função chamada f32
que necessita de um retorno de forma que os testes definidos sejam satisfeitos, ou seja, a função deve retornar 0 quando o argumento é 10, e 1 quando o argumento é 11.
Para entender a alternativa correta, precisamos revisar o operador módulo, que em JavaScript é representado pelo símbolo %
. Este operador retorna o resto da divisão de um número por outro. No contexto desta questão, o uso de v%2
irá calcular o resto da divisão do argumento v
por 2, o que é exatamente o comportamento que os testes esperam. Quando v
é 10, o resto da divisão por 2 é 0, e quando v
é 11, o resto é 1.
Portanto, a alternativa E é a correta porque o operador módulo %
é utilizado para determinar se um número é par ou ímpar, o que corresponde ao comportamento desejado conforme a afirmação: f32(10) == 0 && f32(11) == 1
.
As outras alternativas não satisfazem a condição dos testes por diferentes razões:
- A -
v//2
: Não é uma sintaxe válida em JavaScript. - B -
v/2
: Retorna a metade do valorv
, o que não é útil para a verificação pretendida. - C -
v\2
: O caractere\
não tem uso neste contexto em JavaScript e causa erro de sintaxe. - D -
v\2
: Similar a opção C, causa erro de sintaxe.
Assim, compreender operadores como o módulo é essencial para a resolução de problemas que envolvem testes condicionais e lógica de programação em questões de concursos públicos focadas em linguagens de programação.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo