FC ConcursosFC Concursos

Questão FC373234

Um Analista estão desenvolvendo um sistema em Java que realiza cálculos e precisa garantir que eles sejam precisos. Nesse sistema, digitou o código abaixo. public class Calcular {

Linguagens de Programação

FCC · 2024

Um Analista estão desenvolvendo um sistema em Java que realiza cálculos e precisa garantir que eles sejam precisos. Nesse sistema, digitou o código abaixo.

 

public class Calcular {

      public static void main (String [] args) {

            double t = 0.05;

            int p = 1000;

            int tmp = 10;

            double res ;

            res = p * (1 + t) ^ tmp ;

            System.out.println (*Resultado: " + res);

 

         }

}

 

O problema nesse código é que

  1. o operador correto de exponenciação em Java é **.
  2. o operador * não pode ser usado entre p e (l +t).
  3. a variável res deve ser do tipo int para armazenar o valor calculado.
  4. a variável t deve ser do lipo float.
  5. o operador ^ não é o correto para exponenciação em Java.
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

Em Java o operador ^ não realiza exponenciação: ele representa o operador bit a bit XOR (ou exclusivo) quando aplicado a tipos inteiros, e operador lógico XOR quando aplicado a booleanos.

Para calcular potências deve-se usar o método Math.pow(), que retorna um double. A expressão matemática desejada é \(res = p \times (1+t)^{tmp}\).

No código corrigido a linha fica:

res = p * Math.pow(1 + t, tmp);

Assim primeiro se calcula \((1+t)^{tmp}\) com Math.pow(base, expoente) e depois multiplica-se por p, garantindo o resultado numérico correto em ponto flutuante.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo