Uma coisa boa para vc é consultar a documentação do jdk, lá diz que se o parametro passado para a metodo Math.sqrt() for negativo ele retornara NaN...
e possuia alguns erros na questão da precedencia de operadores...

Abaixo o código funcionando ...

import javax.swing.JOptionPane;
import java.lang.*;

public class RaizQuadrada
{
   public static void main( String args[] )
   {
      String a1, b2, c3;
      double a, b, c, r1, r2, delta;

      a1 = JOptionPane.showInputDialog( "Digite o valor de a");
      b2 = JOptionPane.showInputDialog( "Digite o valor de b");
      c3 = JOptionPane.showInputDialog( "Digite o valor de c");

      a = Double.parseDouble(a1);
      b = Double.parseDouble(b2);
      c = Double.parseDouble(c3);

      delta = Math.sqrt(Math.pow(b,2) - 4*(a*c));

      if( ! String.valueOf(delta).equals("NaN") )
      {
        r1 = ( -b + (delta) ) / ( 2 * a );
        r2 = ( -b - (delta) ) / ( 2 * a );

        JOptionPane.showMessageDialog(null, "O resultado de r1 é:" + r1 +
                                      " e de r2 é:" + r2,"Results",
                                      JOptionPane.PLAIN_MESSAGE );
      }
      else
      {
        JOptionPane.showMessageDialog(null, "Não existe raízes reais","Results",
                                      JOptionPane.PLAIN_MESSAGE );
      }
      System.exit( 0 );
   }
}

At 01:05 AM 3/27/01 -0300, you wrote:
    Primeiramente agradeço a ajuda anterior, a lista está sendo de extrema importancia para o meu aprendizado da linguagem.
Mas a saga continua:
 
import javax.swing.JOptionPane;
import java.lang.*;

 
public class Baskara
{
   public static void main( String args[] )
   {
      String a1, b2, c3;
   double a, b, c, r1, r2, delta;

 
      a1 = JOptionPane.showInputDialog( "Digite o valor de a");
      b2 = JOptionPane.showInputDialog( "Digite o valor de b");
      c3 = JOptionPane.showInputDialog( "Digite o valor de c");

 
      a = Double.parseDouble(a1);
      b = Double.parseDouble(b2);
      c = Double.parseDouble(c3);
  
   delta = Math.sqrt(b * b -4 * a * c);
  
      r1 = (-1 * b)+(delta) / 2 * a;
   r2 = (-1 * b)-(delta) / 2 * a;
  
   JOptionPane.showMessageDialog(null, "O resultado de r1 é:" + r1 +" e de r2 é:" + r1,       "Results",JOptionPane.PLAIN_MESSAGE );

 
 
 
      System.exit( 0 );
   }
}
Estou tendo como resultado "NaN", como resultado das duas raizes, o que devo fazer para acertar o programa? Tratamento de erro? Conto novamente com a ajuda dos mestres ...
 
Roberto Metz

[]´s
-----------------------
Silvio Fragata da Silva
Infonet Serviços
[EMAIL PROTECTED]
-----------------------

Responder a