Ajuda

6 respostas
A

Bom dia pessoal... É a primeira vez que posto.. então estou meio perdida..
Bom eu estou com um problema em um código.. ele não mostra erros, compila, MAS não funciona...

Esta é minha classe...
public class Equacao2G {
    
    
    private double cofA;
    private double cofB;
    private double cofC;
    private double delta;
    
    
    public Equacao2G (double cofA, double cofB, double cofC)
    {
        this.cofA = cofA;
        this.cofB = cofB;
        this.cofC = cofC;
    }
    
    public double Delta()
    {   
        delta = Math.pow(cofB , 2) - 4 * cofA * cofC; 
        /*para calular a potencia, colocar a classe MATH.POW*/  
        
        return delta;
    }
    
}

Esta é minha aplicação

public class Aplicacao {

   
    public static void main(String[] args) {
       
        
        Scanner Entrada = new Scanner(System.in);
        
        
        double ca, cb, cc;
        
        System.out.print("Coeficiente A: ");
        ca = Entrada.nextDouble();
        
        System.out.print("Coeficiente B: ");
        cb = Entrada.nextDouble();
        
        System.out.print("Coeficiente C: ");
        cc = Entrada.nextDouble();
        
        
        Equacao2G objEquacao = new Equacao2G(ca, cb, cc);       
        
        System.out.print("Delta = " + objEquacao.Delta());
    }
}
Se alguém puder me ajudar, fico grata!!!

6 Respostas

Rodrigo_Sasaki

quando você diz que não funciona o que quer dizer?

Eu imagino que seja no nextDouble, ja vi gente reclamando disso, tente pegar como String com o nextLine() e converter para double, veja se resolve.

A

O erro que digo é que código executa até o recebimento das variavéis…
Mas não me retorna o valor Delta…

Bom troquei pelo que me indicou… e agora funcionou …
Estranho que copiei de um projeto que estava dando certo, desta maneira…

Obrigado pela ajuda…

Rafael_Guerreiro

Eu não gosto muito de usar o double pois ele acaba bagunçando.

O double calcula a precisão usando binários, e acaba acontecendo alguns problemas de vez em quando.

Faça esse teste para você entender o que eu estou falando:

public class TesteDeDouble {
   public static void main (String[] args){
      double valor = 0.1;
      // Quanto deve dar 0.1 + 0.1 + 0.1?
      System.out.println(valor + valor + valor);
   }
}
drsmachado

AnaDezuo:
O erro que digo é que código executa até o recebimento das variavéis…
Mas não me retorna o valor Delta…

Bom troquei pelo que me indicou… e agora funcionou …
Estranho que copiei de um projeto que estava dando certo, desta maneira…

Obrigado pela ajuda…


Está usando alguma IDE para criar essas classes?
Se sim, já tentou debugar?
Se sim, o que acontece?

A

Então eu usei o debug… mas não aparecia o erro… apenas mostrava a linha aonde o resultado deveria aparecer…
mas dai mudei de

cc = Entrada.nextDouble();

para

cc = Double.parseDouble(Entrada.nextLine());

Dai funcionou…

drsmachado

Então, o que acontece é que o nextDouble, nextInt, nextFloat e nextQualquerCoisaDiferenteDeLine pode receber sujeira de memória.
Isso prejudica o que você pretende fazer.

Criado 3 de setembro de 2012
Ultima resposta 3 de set. de 2012
Respostas 6
Participantes 4