Equação do Segundo (2º) Grau em JavaScript

Neste tutorial de nossa apostila de JavaScript, vamos te ensinar como criar um script que resolve qualquer equação do segundo grau.

Equação do 2º grau: Bháskara

Para resolvermos uma equação qualquer do segundo grau, usamos a fórmula de Bháslkara, talvez a equação mais conhecida da Matemática:

Fórmula de Bháskara em JavaScript

O 'triângulo' é a letra grega delta.
Onde a, b e c são os coeficientes da equação:
ax² + bx + c = 0

Por ser de grau 2, elas possuem duas raízes.
Se delta for positivo, essas raízes são reais e distintas.
Se delta for igual a 0, essas raízes são reais e iguais.
Se delta for menor que 0, as raízes são imaginárias e distintas.

Equação do 2º grau em JavaScript

Nosso site conta com 3 formulários, onde pede os coeficientes a, b e c ao usuário.
Em seguida, tem um botão "Calcular raízes", que invoca a função raiz() do JavaScript

Dentro dessa função, capturamos os coeficientes.
Em seguida, calculamos o delta:

  • var delta = b*b - 4*a*c

Agora vamos calcular as raízes.
Porém, para isso, precisamos primeiramente analisar o delta.

Se ele for maior que 0, exibimos as duas raízes reais distintas.
Se não for, cai no ELSE.

Dentro do ELSE, tem outro IF, para saber se o delta é nulo.
Se for, exibimos a raiz dupla.

E dentro desse ELSE, tem outro ELSE.
Cai nele caso o delta seja negativo.

Se for, primeiro calculamos a parte real:
real = -b/(2*a)

Depois, as duas partes imaginárias:
img1 = Math.sqrt(-delta)/(2*a)
img2 = - Math.sqrt(-delta)/(2*a)

E exibimos da seguinte forma:
raiz1 = real + img1i
raiz2 = real + img2i

Veja o código:

<!DOCTYPE html>
<html>
 <head>
   <title>Curso JavaScript Progressivo</title>
       Equação do 2o grau: ax² + bx + c = 0  <br />
    Coeficiente a:<input id="num1" type="number"> <br />
    Coeficiente b:<input id="num2" type="number"> <br />
    Coeficiente c: <input id="num3" type="number"> <br />
    <button onclick="raiz()">Calcular raízes</button><br />

    <div id='resposta'></div>

    <script type="text/javascript">
     function raiz(){
       var a = parseFloat(document.getElementById("num1").value);
       var b = parseFloat(document.getElementById("num2").value);
       var c = parseFloat(document.getElementById("num3").value);
       ans = document.getElementById('resposta');

       var delta = (b*b) - 4*a*c;

       if (delta>0){
        raiz1 = (-b + Math.sqrt(delta) )/(2*a);
        raiz2 = (-b - Math.sqrt(delta) )/(2*a);

        ans.innerHTML = "Raiz 1: " + raiz1 + "<br/>" +"Raiz 2: " + raiz2;
       }else{
        if (delta==0){
         raiz = (-b + Math.sqrt(delta) )/(2*a);
         ans.innerHTML="Raiz dupla: " + raiz;
        }else{
         real = (-b)/(2*a);
         img1  = Math.sqrt(-delta)/(2*a);
         img2  = - Math.sqrt(-delta)/(2*a);

         ans.innerHTML = "Raiz 1: " + real + "+" + img1+"i"+"<br/>" +
             "Raiz 2: " + real + "+" + img2+"i"
        }
       }
     }
    </script>

 </head>
</html>


Faça o teste:

Equação do 2o grau: ax² + bx + c = 0
Coeficiente a:
Coeficiente b:
Coeficiente c:



  • Exercício Hacker
Quebre o script anterior. Encontre um erro, uma coisa que você digitar, vai dar problema.
Escreva nos comentários.

Nenhum comentário:

Postar um comentário