Matemáticas: ecuaciones 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 dicen a·x2 + b·x + c = 0

Solución

<!--

function discrim(a, b, c)

{

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

}

function solucionar(a, b, c, sol)

{

var 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);

   }

}

-->

La sección body contiene

<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>

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 él 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