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/d5e81671c27b66ed62e3f21ee7633970 to your computer and use it in GitHub Desktop.
Save rafarocha/d5e81671c27b66ed62e3f21ee7633970 to your computer and use it in GitHub Desktop.
turma-1076-desafio01-feedback-carlos-luis.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Calculadora Bhaskara");
System.out.print("Valor de a: ");
double a = input.nextDouble();
System.out.print("Valor de b: ");
double b = input.nextDouble();
System.out.print("Valor de c: ");
double c = input.nextDouble();
if (a == 0) {
System.out.println("O valor de 'a' não pode ser igual a zero.");
} else {
double x1 = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);
double x2 = (-b - Math.sqrt(b * b - 4 * a * c)) / (2 * a);
System.out.println("As raízes são x1 = " + x1 + " e x2 = " + x2);
}
}
}
@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 deveria indicar uma única raiz. Ver cenário 02
  • Para entradas (a,b,c)=(2,1,5) indicou x1 = NaN e x2 = NaN. Ver cenário 03
  • 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(b * b - 4 * a * c)) / (2 * a) com a mudança de sinal incluindo numeradores
  • 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