[Programación] Calcular Ecuaciones Cuadráticas (de segundo grado) en C++

Bueno, he estado aburriéndome en la universidad durante unos minutos, así que me he instalado el CodeBlocks y me he puesto a programar algo. Éste es el resultado, una ecuación de segundo grado.

/*
Calculadora de Ecuaciones de Segundo Grado, por Arnau Martín
Si usas este código en tu aplicación, por favor indica en los
créditos que hay parte de mi código.
Copyright, 2014 © Glint Development Group.
*/

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
int a, b, c;
cout << "Kyngo's Equator - Resuelve ecuaciones de segundo grado :>" << endl << endl;
cout << "Introduce a continuacion el valor de las variables." << endl << endl;

cout << "Variable A> ";
cin >> a;
cout << "Variable B> ";
cin >> b;
cout << "Variable C> ";
cin >> c;

float x1, x2;
x1 = (-b + sqrt(b * b - 4 * a * c)) / 2 * a;
x2 = (-b - sqrt(b * b - 4 * a * c)) / 2 * a;

cout << endl << "¡Ya tengo los resultados!" << endl;
cout << "+X = " << x1 << endl;
cout << "-X = " << x2 << endl;

return 0;
}

 

Así se calculan las Ecuaciones Cuadráticas, ahora explicaré el código con detalle. Aunque lo importante son las dos líneas del algoritmo. Bueno, explico…

#include <iostream>
#include <math.h>

Aquí se incluyen las librerías básicas a usar para el precompilador. La librería iostream se encarga del tema de entrada y salida de información (mostrar el texto y recoger los números a calcular). La librería math se encarga de hacer los cálculos un poco complejos, como la raíz cuadrada.

using namespace std;

El espacio de nombres donde se recogen las funciones básicas de C++ es el espacio estándar, conocido como std en el código.

int main()
{
// código aquí
return 0;

Esto es una función. Aquí se establece el código que ejecutará el programa, todo lo hecho hasta ahora se dedica a preparar el entorno para que lo que se ponga aquí dentro se ejecute bien. Siempre será de tipo int (número entero) y devolverá un número. Se suele usar 0 como respuesta indicando que la aplicación se ha ejecutado bien. En caso de error, algunos programadores ponen -1 u otro número. No pasa nada si se cambia, pero mejor dejarlo en 0 por si acaso.

int a, b, c;

int es el valor de variable numérica usado por defecto. Sirve para almacenar números no decimales, sin ocupar demasiado espacio en la memoria. a, b y c son tres variables de tipo int declaradas en esa misma línea. Así, nos evitamos tener que hacer tres líneas con cada declaración.

cout << "Texto cualquiera" << endl;
cin >> a;

cout se encarga de mostrar texto en pantalla, simplemente. El endl del final de la línea se encarga de finalizar la línea de texto, lo cual se podría hacer también poniendo n después de “Texto cualquiera”. Ejemplo: “Texto cualquieranSegunda línea de texto cualquiera”. Sin espacios ni nada, del palo. Tal cual.
cin sirve para recibir y guardar en una variable lo que se le pida al usuario para operar. En este caso, números enteros.

float x1, x2;

Esto es lo mismo que int, sólo que esta vez los números pueden tener decimales.

 x1 = (-b + sqrt(b * b - 4 * a * c)) / 2 * a;
x2 = (-b - sqrt(b * b - 4 * a * c)) / 2 * a;

Vale, esto es lo que se conoce como “algoritmo”. Un algoritmo es una fórmula para resolver una operación matemática compleja. Para hacer que la variable x1 guarde el resultado, debes especificar que x1 es igual a… y pones acto seguido el algoritmo, el cual es muy sencillo. Se debe leer de esta manera:

Ecuación real Primera operación Segunda operación
__________ | __________ | __________
-b ± √b^2 - 4ac | -b + √b^2 - 4ac | -b - √b^2 - 4ac
x = --------------------- | x = --------------------- | x = ---------------------
2a | 2a | 2a

La función de la raíz se hace con sqrt(). Dentro de los paréntesis pones el número a procesar o la variable que contenga el número. Para elevar a dos la variable b la hemos multiplicado por sí misma, ya que viene a ser lo mismo. Ya que el resultado se guarda en x1 el valor de b no se altera al elevarse a sí mismo, dejándonos libres de conflictos. Una vez tenemos el resultado, devolvamos los valores contenidos en x1 y x2. x1 equivale a +x, y x2 a -x.

En fin, esto es todo, visitante. Espero serte de ayuda, no se me dan muy bien las mates, pero algo puedo hacer. ¡Nos vemos gente! 😀

Deja un comentario