Last active
July 2, 2023 19:36
-
-
Save samueldcs/e580a2b44bb028789177a73da3e516f7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Classe Bhaskara, onde calculamos | |
* o conjunto solucão de uma equacão | |
* dados os valores dos coeficientes | |
* a, b e c. | |
* | |
* @author Samuel Simão | |
* | |
*/ | |
class Bhaskara { | |
/** | |
* | |
* Calcular o conjunto solução de | |
* uma equacão do segundo grau completa | |
* dados os coeficientes a, b e c. | |
* | |
* @param $a int | |
* @param $b int | |
* @param $c int | |
* @return string | |
*/ | |
function calculate($a, $b, $c) | |
{ | |
// Calcular o delta usando a fórmula b.b - 4.a.c | |
$delta = pow($b, 2) - (4 * $a) * $c; | |
// Se Delta for menor que 0, | |
// o resultado não pertence | |
// ao conjunto dos numeros | |
// reais, portanto devemos | |
// matar o script e anunciar | |
// o motivo | |
if ($delta < 0) { | |
die("Not a real number"); | |
} | |
// O conjunto solução tem duas respostas, | |
// as vezes chamadas de x' e x'' ou x1 e x2 | |
// O x1 ou x' é o positivo e x2 ou x'' é o | |
// negativo de acordo com a fórmula de X: | |
// X = -b +/- a raiz quadrdada de Delta / 2.a | |
// A função sqrt do PHP extrai a raiz quadrada | |
// de um numero. | |
$plus = (-($b) + sqrt($delta)) / (2 * $a); | |
$minus = (-($b) - sqrt($delta)) / (2 * $a); | |
// Por convenção, o conjunto solução | |
// deve apresentar duas respostas, mas | |
// se as duas raizes da equação são iguais | |
// não ha motivo para isso | |
if ($minus == $plus) { | |
$complete = "S = {" . $minus . "}"; | |
} else { | |
$complete = "S = {" . $plus . "; " . $minus ."}"; | |
} | |
// Imprimir Delta | |
echo "Delta: " . $delta . "<br>"; | |
// Imprimir x' positivo | |
echo "x': " . $plus . "<br>"; | |
// Imprimir x'' negativo | |
echo "x'': " . $minus . "<br>"; | |
// Imprimir conjunto solução | |
echo "Complete: " . $complete . "<br>"; | |
} | |
} | |
// Construir a classe Bhaskara | |
$power = new Bhaskara(); | |
// Usar a função para imprimir o resultado | |
// se os coeficientes fossem 1, -6 e 9 | |
$equiation->calculate(1, -6, 9); | |
/** | |
* Resultado do Script quando executado: | |
* | |
* Delta: 0 | |
* x': 3 | |
* x'': 3 | |
* Complete: S = {3} | |
*/ | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this solution! I make some adjustments, I hope this helps someone: