Javascript: resolver ecuación de 2º grado

Este es un ejemplo de como Javascript es útil incluso para resolver problemas matemáticos más o menos complicados. En este caso se trata de encontrar las dos soluciones de una ecuación de 2º grado,, si esas que estudiaste en el colegio y que tienen la forma  a·x2 + b·x + c = 0 donde a,b,c son números y x es la incógnita que tienes que resolver

Una aplicación matemática con objeto de crear un script a partir de un algoritmo conocido, traducir a programa un proceso de matemáticas..Se usan el objeto Math, condicionales y arrays

Solución

<script>

function discrim(a, b, c)

{

return (b*b - 4*a*c);

}

function solucionar(a, b, c, sol)

{

let disc = discrim(a,b,c);

if (disc < 0)

   alert("Sin solución real");

else

   {

   sol[0] = (-b + Math.sqrt(disc))/(2*a);

   sol[1] = (-b - Math.sqrt(disc))/(2*a);

   }

}

</script>

La sección body contiene

<body>

<p>La ecuación es </p>

<p>Ecuación x2 - 8·x  + 12 = 0 </p>

<script>

var soluc = new Array(2);

solucionar(1,-8,12, soluc) ;

document.write( "Soluciones "+soluc[0]+" y "+soluc[1]);

</script>

</body>

Explicación

Primero recordemos que las soluciones venían dadas por la expresión:

x = ( -b ± sqrt(b2 - 4ac) )/2·a

Donde sqrt es raiz cuadrada.

Observa el uso de un objeto (el Array para las soluciones, soluc) para lograr que el último argumento de la función soluciones( ) sea pasado por referencia, es decir, para que los cambios que se hagan en el argumento dentro de la función se mantengan al terminar ésta.

Por supuesto se podría haber creado un obejto para devolver ambas soluciones mediante return. Pero se trata de mostrar un paso de argumento por referencia