Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

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.
xxx
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);
            
        }
    }

}

Um comentário:

Anônimo disse...

Essa é dificil

Contribuir com o Java Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo


Tutoriais de Java