Risolutore di equazioni di II° grado

Data: 21/10/2025

Exit

// Importing libs
#include <iostream>;
#include <math.h>;

using namespace std;

// Variables definition
int a, b, c;
float x, x1, x2, delta;


// FUNCTION DEFINITION
// Get coefficients
void getCoef() {
    cout << "Inserisci il valore del primo coefficiente: ";
    cin >> a;
    
    cout << "Inserisci il valore del secondo coefficiente: ";
    cin >> b;
    
    cout << "Inserisci il valore del terzo coefficiente: ";
    cin >> c;
}

// Calc Delta
void calcDelta() {
    delta = (b * b) - (4 * a * c); // delta = pow(b,b) - (4*a*c)
}

// Print Solutions
void printSol() {
    if (delta < 0) cout << "\nL'equazione non ammette soluzioni reali 😔";
    else {
        x1 = (-b - sqrt(delta)) / (2 * a);
        x2 = (-b + sqrt(delta)) / (2 * a);

        cout << "\nL'equazione ha come soluzioni:\nx1: " << x1 << "\nx2: " << x2;
    }
}

// First equation
void firstEq() {
    if ((b == 0) && (c == 0)) cout << "\nL'equazione è indeterminata 😔";
    else if (b == 0) cout << "\nL'equazione è impossibile 😔";
    else {
        x = float(-c) / float(b);
        cout << "\nL'equazione ha come soluzione:\nx: " << x;
    }
}


// MAIN
int main() {
    getCoef();

    if (a != 0) {
        calcDelta();
        printSol();
    } else firstEq();

    return 0;
}