Friday, March 29, 2024
HomeC ProgrammingC++ Program to unravel the Quadratic Equation – MYCPLUS

C++ Program to unravel the Quadratic Equation – MYCPLUS


This program will remedy quadratic equations. It accepts coefficients of a quadratic equation from the person i.e. a, b and c and shows the roots.

To compile this system title it quadratic_solver.cpp then kind

g++ -o quadratic_solver quadratic_solver.cpp

It’s possible you’ll want to make use of math.h like this: #embrace in case you are utilizing  C++ compiler software program on Home windows. (I attempted it with out the <math.h> and received an “undeclared identifier” error)

What’s Quadratic Equation?

The Quadratic equation is the equation of the shape as beneath:

ax2 + bx +c = 0

The place x represents unknown and a, b and c are coefficients, it’s roots is given by following the method.

Quadratic Equation - C++ Implementation

Quadratic Equation – C++ Implementation

Right here,

The time period b2-4ac is called the discriminant of a quadratic equation. The discriminant tells the character of the roots.

  1. If discriminant is bigger than 0, the roots are actual and totally different.
  2. If discriminant is the same as 0, the roots are actual and equal.
  3. If discriminant is lower than 0, the roots are complicated and totally different.

C++ Program to Clear up Quadratic Equation

/*
program to seek out answer to quadratic equation in the usual type ax^+bx+c=0.
Creator David Tarsi. The logic portion of this program was developed from instruction.
The coding is by the writer. Any questions or feedback welcome
at [email protected]
*/

#embrace <iostream>
#embrace <math.h>

utilizing namespace std;

void one()
{
    float a = 0.0; //right here we declare the variables and use float as a result of we
    float b = 0.0; //are coping with sq. roots
    float c = 0.0;
    float x1 = 0.0;
    float x2 = 0.0;
    float x3 = 0.0;
    float x4 = 0.0;

    //this part will get person enter and shows message
    cout << "Enter the coefficients a , b , c for equation within the type ax^ + bx + c = 0:n";
    cout << "Enter worth for a:n";
    cin >> a;
    cout << "Enter worth for b:n";
    cin >> b;
    cout << "Enter worth for c:n";
    cin >> c;

    //are all of the coefficients 0? if that's the case each roots are 0
    if (a == 0 && b == 0 && c == 0) {
        x1 = 0;
        x2 = 0;
        cout << "The roots are:"
                "n"
             << "x1 = " << x1 << " , "
             << "x2 = " << x2 << "n";
    }

    //is c the one non-zero quantity? if that's the case inform the person
    if (a == 0 && b == 0 && c != 0) {
        c = c;
        cout << "There are not any roots"
                "n"
             << "c = " << c << "n";
    }
    //is a zero? if that's the case remedy the ensuing linear equations and notify person
    if (a == 0 && b != 0 && c != 0) {
        cout << "The values entered don't make a quadratic expression"
                "n"
             << "x = " << -c / b << "n";
    }

    //if b is zero and c is zero inform person
    if (a == 0 && b != 0 && c == 0) {
        x1 = 0;
        x2 = 0;
        cout << "The roots are:"
                "n"
             << "x1 = " << x1 << " , "
             << "x2 = " << x2 << "n";
    }
    //if b and c are equal to zero then ax^=0 and since a can't be zero with out x being
    // zero additionally let person know
    if (a != 0 && b == 0 && c == 0) {
        x1 = 0;
        x2 = 0;
        cout << "The values entered end in ax^= 0; so each roots are 0"
                "n"
             << "x1 = " << x1 << " , "
             << "x2 = " << x2 << "n";
    }
    //issue out x from ax^+bx=0 and both x = 0 or ax + b =0
    //then remedy the linear equation
    if (a != 0 && b != 0 && c == 0) {
        x1 = 0;
        x2 = -b / a;
        cout << "The roots are:"
                "n"
             << "x1 = " << x1 << " , "
             << "x2 = " << x2 << "n";
    }

    //now we get to make use of the sq. root perform and let the person
    //know they've some imaginary numbers to take care of
    if (a < 0 && b == 0 && c < 0) {

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

        cout << "The roots aren't actual numbers:"
                "n"

             << "x1 =" << x1 << " + " << x2 << " * i "
             << "n"
             << "x2 =" << x1 << " + " << x3 << " * i "
             << "n";
    }

    if (a > 0 && b == 0 && c > 0) {

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

        cout << "The roots aren't actual numbers:"
                "n"

             << "x1 =" << x1 << " + " << x2 << " * i "
             << "n"
             << "x2 =" << x1 << " + " << x3 << " * i "
             << "n";
    }
    //now a and c are reverse indicators so the reply might be actual

    if (a > 0 && b == 0 && c < 0) {

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

        cout << "The roots are:"
                "n"
             << "x1 =  " << x1 << " , "
             << "x2 = " << x2 << "n";
    }
    if (a < 0 && b == 0 && c > 0) {

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

        cout << "The roots are:"
                "n"
             << "x1 =  " << x1 << " , "
             << "x2 = " << x2 << "n";
    }

    //okay now if we find yourself not having to take the sq. root of a neg
    // do the maths
    if (a != 0 && b != 0 && c != 0 && (4 * a * c) <= pow(b, 2)) {

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

        cout << "The roots are:"
                "n"
             << "x1 = " << x1 << " , "
             << "x2 = " << x2 << "n";
    }

    //right here we have now to take care of non x intercepts ie: sqrt(-1)
    // alter the method barely to offer right output and
    // let the person know
    if (a != 0 && b != 0 && c != 0 && (4 * a * c) > pow(b, 2)) {

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

        cout << "The roots aren't actual numbers"
                "n"

             << "x1 =" << x1 << " + " << x2 << " * i "
             << "n"
             << "x2 =" << x1 << " + " << x3 << " * i "
             << "n";
    }
    return;
}

//hold output from vanishing earlier than we are able to learn it.
void two()
{
    char c;
    cout << "Press c after which Enter to proceed...."
            "n";
    cin >> c;
    for (;;) {
        if (c) {
            break;
        }
    }

    cout << "Accomplished"
            "n";
}

int primary()
{
    one();
    two();
    return 0;
}

Output of C++ Program

Compile: $ g++ -o quadratic_solver quadratic_solver.cpp

Run:

$ ./quadratic_solver
Enter the coefficients a , b , c for equation within the type ax^ + bx + c = 0:
Enter worth for a:
6
Enter worth for b:
4
Enter worth for c:
1
The roots aren’t actual numbers
x1 =-0.333333 + 0.235702 * i
x2 =-0.333333 + -0.235702 * i
Press c after which Enter to proceed….
c
Accomplished

$ ./quadratic_solver
Enter the coefficients a , b , c for equation within the type ax^ + bx + c = 0:
Enter worth for a:
9
Enter worth for b:
24
Enter worth for c:
2
The roots are:
x1 = -0.0861142 , x2 = -2.58055
Press c after which Enter to proceed….
c
Accomplished



RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments