Calculadora de ecuaciones cuadráticas [ESP-ENG] | C++

avatar
(Edited)

cover.jpg

Programación c++.png

¡Buenos días desde la tierra del pescado y la gente que habla rapidito! Hoy traigo más programación en C++. Otro clásico, una calculadora de ecuaciones cuadráticas, es decir, para hallar sus raíces.

Las librerías que usé ya las he mencionado antes. Están para la entrada y salida de datos, el uso de funciones matemáticas como sqrt, funciones para controlar el flujo de datos como getch y para la limpieza de pantalla como System ("cls").

En cuanto al código, las variables son primeramente a,b,c para capturar cada uno de los coeficientes de la ecuación, RootI para calcular la parte que involucra la parte interna de la raíz de b^2 - 4ac, de modo que luego podamos comprobar si es menor que cero, pues esto causaría problemas al calcular la raíz de su resultado. Llevándonos a la condición que desplegaría el mensaje de que la solución de esta raíz no está en el sistema de los números reales.

Good morning from the land of fish and fast-talking people! Today I bring more C++ programming. Another classic, a calculator for quadratic equations, that is, to find their roots.

The libraries I used have already been mentioned before. They are for data input and output, the use of mathematical functions like sqrt, functions to control data flow like getch and for screen clearing like System ("cls").

As for the code, the variables are first a,b,c to capture each of the coefficients of the equation, RootI to calculate the part involving the inner part of the root of b^2 - 4ac, so that we can then check if it is less than zero, as this would cause problems when calculating the root of its result. Leading us to the condition that would display the message that the solution of this root is not in the system of real numbers.

image.png

Programación c++.png

Esta condición también incluye el caso en que a=0, pues haría 0 la parte de abajo de la ecuación (2*a), causando una división algo problemática. El else consiguiente involucra calcular ambos resultados y guardarlos en solu1 y solu2, variables declaradas al principio, (Si no se cumple RootI<0 || a==0), una vez calculados, compara si ambos son iguales o no, para enviar un mensaje que muestre una respuesta o ambas según sea el caso.

Todo esto está dentro de un do-while que ya es algo repetitivo por acá. Que funciona con un selector del tipo char, esto para que se pueda seguir usando el programa después de una ejecución y cerrarlo cuando ya se desee terminar, con la letra "x".

Entre los ejemplos está a=1, b=-45, c=504. Este no fue al azar sino que aproveché el programa para resolver un reto matemático de @ydavgonzalez que involucraba hallar cuál par de números suman 45 y producen 504 al ser multiplicados.

This condition also includes the case where a=0, as it would make the bottom part of the equation (2*a) 0, causing a somewhat problematic division. The subsequent else involves calculating both results and storing them in solu1 and solu2, variables declared at the beginning, (If RootI<0 || a==0), once calculated, it compares if both are equal or not, to send a message that shows an answer or both as the case may be.

All this is inside a do-while that already is something repetitive for here. That works with a char selector, this so that you can continue using the program after an execution and close it when you want to finish, with the letter "x".

Among the examples are a=1, b=-45, c=504. This one was not random but I took advantage of the program to solve a mathematical challenge from @ydavgonzalez that involved finding which pair of numbers add up to 45 and produce 504 when multiplied.

image.png

image.png

Programación c++.png

image.png

image.png

image.png

¡Y bueno... Eso es todo por hoy! Espero sea de ayuda a tus estudios. Te recomiendo pasarte por los retos matemáticos de @ydavgonzalez para que ejercites tus habilidades y afiles esos dotes numéricos.

Si te interesa otro tutorial de programación acá te dejo los links a los que he realizado hasta ahora:

And well... That's all for today! I hope it will be helpful for your studies. I recommend you to visit @ydavgonzalez's math challenges to exercise your skills and sharpen those numerical skills.

If you are interested in another programming tutorial here are the links to the ones I have done until now:


Nombre de la publicación / Name of the postLINK
Calculador de datos para un triángulo rectángulo en C++1
Concecionario de autos, ejercicio en JAVA2
Calculador de edad básico C++3
Inversor de números de tres cifras4
¿Cuántos números de 3 cifras existen cuya suma sea 10? - ¡Respondiendo a otro usuario! C++6
Calculadora simple, cifra menos significativa y portada simple C++7
¡Vistazo a BeatUDO! [ESP-ENG] JAVA9
Comprobar si un número de dos cifras es primo C++10
Conversor de pulgadas a 7 unidades distintas C++11
Comprobar si un número es capicúa (Máx 5 cifras) C++12
Comprobador de caracteres C++13
Calculadora de índice de masa corporal C++14
Calculadora de factoriales C++15
Conversor (Grados Celsius - Fahrenheit - Kelvin) C++16
Calculadora de longitud, diametro y área de una circunferencia C++17
Graficando números en consola (0-3) C++18
Graficando números en consola II (4-6) C++19
Graficando números en consola III (7-9) C++20


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

using namespace std;

int main(){
    
    double a, b, c;
    double solu1=0, solu2=0, RootI;
    char selector;
    
    do{
                
    
        cout<<"Recordando que la forma general de la ecuacion cuadratica es:\n";
        cout<<"ax^2 +- bx +- c = 0" << "\n\n";

        cout<<"Ingrese el coeficiente de x^2, la variable a:"<<"\n\n";
        cin>>a;
 
        cout<<"Ingrese el coeficiente de x, la variable b:"<<"\n\n";
        cin>>b;
  
        cout<<"Ingrese la variable c"<<"\n\n";
        cin>>c; 
    
        RootI = (b*b) - 4 * (a*c);
 
        if(RootI < 0 || a==0){   
    
        cout << "Esta ecuacion no tiene solucion en el sistema de numeros reales" << "\n\n";
                     
         }
    
        else{
    
        solu1 = ( -b + sqrt(RootI) ) / (2*a);
        
        solu2 = ( -b - sqrt(RootI)) / (2*a);
    
         if(solu1 != solu2){   
            
            cout << "Solucion 1: " << solu1 << "\n\n";
            cout << "Solucion 2: " << solu2 << "\n\n";
        
        
    
         }
    
           else{
            
            cout << "Solo existe una solucion:" << solu1<<"\n\n";
            
        }
    
  } 
 

    
    cout<<"Si desea salir, pulse x, sino presione cualquier otra tecla para comprobar otro caracter"<<endl;
    
    selector=getch();
    
    system("cls");  
    
    }while(selector!='x' && selector!='X');

return 0;

}

Programación c++.png

Puedes seguirme por acá si lo deseas:
You can follow me here if you want:

Diseño sin título.gif

Cuenta secundaria
(Dibujos, edición y juegos) | Secondary account (Drawings, editing and games)



0
0
0.000
3 comments