Enviar um café pro programador

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

Aplicativo: Determina as raízes de uma equação do segundo grau

Crie um programa, em Java, que receba os coeficientes de uma equação do 2o grau e retorne suas raízes.

Um equação do segundo grau é uma equação onde:
ax² + bx + c = 0 , com 'a' diferente de 0


Programa em Java que calcula as raízes e resolve uma equação do segundo grau

Passo 1:

A primeira parte do programa recebe os três coeficientes da equação, que são 'a', 'b' e 'c' e serão representados pelo tipo float.

Passo 2:

Uma equação do 2o grau só é válida se 'a' for diferente de 0, então, se for igual a 0 o programa deverá terminar.
Ou seja, nosso programa irá acontece dentro do 'if' que checa que 'a' é diferente de 0.

Passo 3:

Determinando o valor de delta: delta = b² - 4ac
Determinando a raiz quadrada de delta: sqrtdelta = (float)Math.sqrt(delta);

Onde sqrt significa 'square root', ou raiz quadrada, em inglês.
Em Java, calculamos a raiz quadrada do número x com o método: Math.sqrt(x);
Esse método retorna um tipo 'double'. Como usamos float em nossos coeficientes, usamos o cast '(float)' para transformar o double em float.

Passo 4:

Se delta for maior ou igual a zero, as raízes são dadas por:
raiz1 = (-b + sqrtdelta) / 2a
raiz2 = (-b - sqrtdelta) / 2a

Passo 5:

Se delta for menor que zero, suas raízes serão complexas e as raízes serão da forma:
raiz1 = (-b + i.sqrt(-delta) )/2a
raiz2 = (-b - i.sqrt(-delta) )/2a

Formatei a saída da seguinte forma, para ficar mais legível, que é a mesma coisa das equações anteriores:
raiz1 = (-b)/2a + i.sqrt(-delta)/2a
raiz2 = (-b)/2a - i.sqrt(-delta)/2a

Código Java:


import java.util.Scanner;

public class Bhaskara {
    public static void main(String[] args) {
        float a, b, c,      //coeficientes
              delta,        //delta
              sqrtdelta,    //raiz quadrada de delta
              raiz1,raiz2;  //raízes
        Scanner entrada = new Scanner(System.in);
        
        //Passo 1: Recebendo os coeficientes
        System.out.println("Equação do 2o grau: ax² + bx + cx = 0");
        System.out.print("Entre com o valor de a: ");
        a = entrada.nextFloat();
        System.out.print("Entre com o valor de b: ");
        b = entrada.nextFloat();
        System.out.print("Entre com o valor de c: ");
        c = entrada.nextFloat();
        
        //Passo 2: Checando se a equação é válida
        if(a != 0){
        
        //Passo 3: recebendo o valor de delta e calculando sua raiz quadrada
            delta = (b*b) - (4*a*c);
            sqrtdelta = (float)Math.sqrt(delta);
        
        //Passo 4: se a raiz de delta for maior que 0, as raízes são reais    
            if(delta >=0){
                raiz1 = ((-1)*b + sqrtdelta)/(2*a);
                raiz2 = ((-1)*b - sqrtdelta)/(2*a);
                System.out.printf("Raízes: %.2f e %.2f", raiz1, raiz2);
            }
        //Passo 5: se delta for menor que 0, as raízes serão complexas
            else{
                delta = -delta;
                sqrtdelta = (float)Math.sqrt(delta);
                System.out.printf("Raíz 1: %.2f + i.%.2f\n", (-b)/(2*a), (sqrtdelta)/(2*a));
                System.out.printf("Raíz 2: %.2f - i.%.2f\n", (-b)/(2*a), (sqrtdelta)/(2*a));
                
            }
            
        }
        else{
            System.out.println("Coeficiente 'a' inválido. Não é uma equação do 2o grau");
        }
    }

}

Um comentário:

Anônimo disse...

Ali onde está escrito:

//Passo 4: se a raiz de delta for maior que 0, as raízes são reais

Deveria ser: se delta for maior que zero

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