Aplicativo gráfico: mostra as raízes de uma equação do segundo grau

Exercício:

Faça um programa que receba os coeficientes de uma equação do segundo grau e retorne suas raízes, mesmo as complexas, através de caixas de diálogo.

Aplicativo em Java que resolve uma equação do segundo grau, todo feito de modo gráfico, em caixas de diálogo. Código inteiramente comentado.

Programa em Java

Passo 1: 
Primeiro o programa recebe os dados do usuário, que são os 3 coeficientes da equação, 'a', 'b' e 'c':
ax² + bx + c = 0

Passo 2:

Uma equação do 2o grau só é do segundo grau se 'a' for diferente de 0.
Caso o usuário entre com o valor 0 o programa entrará em um loop até que o usuário entre com um valor diferente de 0.

Passo 3:

Se delta for maior ou igual a 0 as raízes serão reais e são facilmente calculadas pela fórmula de Bháskara.

Passo 4:

Caso não seja, as raízes serão complexas.
Para calcular as raízes complexas fazemos delta ser positivo (-delta), tiramos sua raiz e calculamos separadamente a parte real e a parte imaginária.

import javax.swing.JOptionPane;

public class bhaskara_dialogBoxes {
    
    public static float delta(float a, float b, float c){
        return (b*b - 4*a*c);
    }
    
    public static void main(String[] args){
        String valor, raizes;
        float a=0, b, c,      //coeficientes
        delta,                //delta
        sqrtdelta,            //raiz quadrada de delta
        raiz1,raiz2;          //raízes
        
        //PASSO 1: recebe os coeficientes
        valor = JOptionPane.showInputDialog("Digite o valor de a");
        a = Float.parseFloat(valor.trim());
        
        valor = JOptionPane.showInputDialog("Digite o valor de b");
        b = Float.parseFloat(valor.trim());
        
        valor = JOptionPane.showInputDialog("Digite o valor de c");
        c = Float.parseFloat(valor.trim());
        
        //PASSO 2: checa se 'a' não é 0
        while(a==0){
            if(a==0){
                valor = JOptionPane.showInputDialog("'a' não pode ser 0. Insira outro valor");
                a = Float.parseFloat(valor.trim());
            }
        }
        
        //PASSO 3: checa se o delta é positivo. Se for, mostra as raízes reais
        if(delta(a,b,c)>=0){
            raiz1 = (-b + (float)Math.sqrt(delta(a,b,c)))/(2*a);
            raiz2 = (-b - (float)Math.sqrt(delta(a,b,c)))/(2*a);
            
            raizes = String.format("As raízes são: %.2f e %.2f", raiz1,raiz2);
            
            JOptionPane.showMessageDialog(null,raizes);
        
        //PASSO 4: caso seja negativo, devemos formatar para a exibição para números complexos    
        } else {
            
            raizes = String.format("As raízes são:\n" +
                    "%.2f + %.2fi\n" +
                    "%.2f - %.2fi",(-b/(2*a)), ( (float)Math.sqrt(-delta(a,b,c) ) / (2*a) )
                                  ,(-b/(2*a)), ( (float)Math.sqrt(-delta(a,b,c) ) / (2*a) )
                                   );
            
            JOptionPane.showMessageDialog(null,raizes);
            
        }
    }

}


Dicas e Novidades de Java por e-mail

Sabe quanto custa um bom livro de java?
Entre R$ 100,00 e R$300,00

Sabe quanto custa um bom curso presencial de Java?
Entre R$ 1.500,00 até R$ 4.000,00

Sabe quanto custa estudar pelo Java Progressivo?
Absolutamente nada.

Porém, também precisamos de sua ajuda e apoio.
Para isso, basta curtir nossa Fan Page e clicar no botão G+ do Google.