Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rafarocha/22e5e6612ee41876f0eb6cc6c384bfa8 to your computer and use it in GitHub Desktop.
Save rafarocha/22e5e6612ee41876f0eb6cc6c384bfa8 to your computer and use it in GitHub Desktop.
turma-1076-desafio01-feedback-clarice-copstein.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Digite o valor de 'a': ");
double a = input.nextDouble();
System.out.print("Digite o valor de 'b': ");
double b = input.nextDouble();
System.out.print("Digite o valor de 'c': ");
double c = input.nextDouble();
double discriminante = b * b - 4 * a * c;
if (a == 0) {
System.out.println("A equação não é quadrática, 'a' não pode ser igual a zero.");
} else if (discriminante < 0) {
System.out.println("A equação não possui raízes reais.");
} else {
double x1 = (-b + Math.sqrt(discriminante)) / (2 * a);
double x2 = (-b - Math.sqrt(discriminante)) / (2 * a);
System.out.println("As raízes da equação são x1 = " + x1 + " e x2 = " + x2);
}
input.close();
}
}
@rafarocha
Copy link
Author

Revisão

  • Algoritmo para alguns casos implementados com falhas em 67 linhas totais
  • Código com fluxo funcional favorável para maioria dos casos

Melhorias

  • Para entradas (a,b,c)=(4,4,1) indicou x1 = -0.5 e x2 = -0.5
    • Não está errado mas poderia indicar uma raiz apenas
  • Poderia ter feito uma discreta apresentação do programa na inicialização
  • Poderia tratar em próxima oportunidade o try/catch conforme link abaixo no uso do scanner
  • Poderia haver constantes para textos fixos específicos
  • Poderia extrair cálculo em método (-b + Math.sqrt(discriminante)) / (2 * a)
  • Poderia extrair obter dados de entrada em método e entre outras partes do código

Referências

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment