Questão nº 45

Questão de Tecnologia da Informação · FCC TRT18 2022 (nº 45)

FCC2022Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Um Analista está encarregado de ministrar um treinamento e a regra de negócio para aprovação está descrita abaixo.

Serão aprovados alunos com média maior ou igual a 8 e com faltas abaixo de 25% da quantidade de aulas.

Considere o método criado com recursos da plataforma Java, em uma aplicação que utiliza JSP, abaixo.

```java
public String verificarStatus(int qtdAulas, int qtdFaltas, double media){
if(I) {
return "Aprovado";
} else {
return "Reprovado";
}
}
```

Para a correta implementação da regra de negócio, a lacuna I deve ser corretamente preenchida por:

Resposta comentada

Gabarito Alternativa D

Para traduzir regras de negócio em código, usamos operadores relacionais (como ==, >, <, >=, <=, !=) para comparar valores e operadores lógicos (como && para "E", || para "OU") para combinar essas comparações. É crucial entender que "E" (&&) exige que todas as condições sejam verdadeiras, enquanto "OU" (||) exige que pelo menos uma seja verdadeira. Ao calcular porcentagens, use números decimais (como 0.25) ou garanta que a divisão seja feita com números de ponto flutuante para evitar a divisão inteira, que pode arredondar o resultado para zero.

  • (A) Incorreta: O operador || (OU) está incorreto, pois a regra de negócio exige que ambas as condições sejam atendidas ("e" lógico). Além disso, 25/100 em Java, se ambos os operandos forem inteiros, resultará em 0 (divisão inteira), o que tornaria a condição de faltas sempre qtdFaltas < 0, que é quase sempre falsa. Esta é a armadilha mais tentadora, pois o erro do || é sutil se não lermos a regra com atenção, e a divisão inteira é um erro comum de iniciantes.
  • (B) Incorreta: A condição media <= 8 está incorreta, pois a regra exige que a média seja "maior ou igual a 8". O operador || (OU) também está incorreto, e a divisão 25/100 sofre do problema de divisão inteira.
  • (C) Incorreta: A palavra AND não é um operador lógico válido em Java; o correto seria &&. Além disso, a condição qtdFaltas <= qtdAulas * 0.25 está incorreta, pois a regra diz "abaixo de 25%", o que significa estritamente menor que (<), não "menor ou igual a" (<=).
  • (D) Correta: A condição media >= 8 traduz corretamente "média maior ou igual a 8". O operador && (E lógico) está correto para combinar as duas condições. A condição qtdFaltas < qtdAulas * 0.25 traduz corretamente "faltas abaixo de 25% da quantidade de aulas", utilizando 0.25 para garantir uma multiplicação de ponto flutuante e o operador < para "abaixo de".
  • (E) Incorreta: O operador & é um operador bitwise AND, não o operador lógico && (que é o correto para condições booleanas e faz short-circuiting). A condição qtdFaltas <= qtdAulas * 25/100 está incorreta pelo uso de <= (deveria ser <) e pela divisão inteira 25/100.

Fonte: FCC TRT18 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho