Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

Equação do Segundo Grau em PHP

Faça um site que calcule as raízes de uma equação do segundo grau, na forma ax² + bx + c. O script deverá pedir os valores de a, b e c e fazer as consistências e informando as raízes, sejam elas reais ou imaginárias.

Apostila de PHP para download

Equação do 2° Grau

Para resolver uma equação do segundo grau, usamos a fórmula de Bháskara:
Equação do 2° Grau em PHP

Onde esse símbolo do triângulo se chama delta (letra grega).
Se delta for 0, temos apenas uma raiz, real.
Se for maior que 0, temos duas raízes reais (uma com sinal + e outra com sinal -).
Se for menor que 9, temos duas raízes imaginárias (já estudou números complexos?)

Script em PHP: Raízes de uma equação do segundo grau

Vamos pedir pelo HTML os três coeficientes a, b e c e armazenar respectivamente nas varáveis $a, $b e $c.

O primeiro teste é se $a é diferente de 0, se sim, continuamos no script.
Se for 0, cai no ELSE e já encerra o script.

Se for diferente, vamos ter três casos.
Primeiro tratamos para delta maior que 0, onde teremos duas raízes reais.
$raiz1 = (-$b + sqrt($delta) )/(2*$a);
$raiz2 = (-$b - sqrt($delta) )/(2*$a);

Se delta for 0, as duas raízes serão iguais:
$raiz1=$raiz2 = -($b)/(2*$a);

Se for menor, vamos ter que fazer algo mais complexo.
Como a raiz é imaginária, ela terá uma parte real ($real) e outra imaginária ($img)
E as raízes serão strings, pois temos que adicionar um i na resposta.

Para concatenar uma variável com uma string, usamos o símbolo de ponto .

Veja como ficou nossa solução completa:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  a:  <input type="number" name="numero1" /><br />
  b:  <input type="number" name="numero2" /><br />
  c:  <input type="number" name="numero3" /><br />
  <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $a = $_GET['numero1'];
  $b = $_GET['numero2'];
  $c = $_GET['numero3'];

  if($a != 0){
   $delta = $b*$b - 4*$a*$c;
   if($delta>0){
    $raiz1 = (-$b + sqrt($delta) )/(2*$a);
    $raiz2 = (-$b - sqrt($delta) )/(2*$a);
   }elseif ($delta==0)
    $raiz1=$raiz2 = -($b)/(2*$a);
   else{
    $real = -$b/(2*$a);
    $img =  sqrt(-$delta)/(2*$a);

    $raiz1 =  $real."+i".$img;
    $raiz2 =  $real."-i".$img;
   }

  }else
   echo "Equação inexistente";
  
  echo "Raiz 1: $raiz1 <br />";
  echo "Raiz 2: $raiz2 <br />"
 ?>
 </body>
</html>