Find nature of roots and actual roots of Quadratic equation in C++

This C++ program is able to find nature or roots and the actual roots of given quadratic equations in C++ whose values are the user has entered. There is a method called quadratic formula which is used in mathematics to get this information. This can also be implemented in programming language to do our work more efficiently and accurately.

Nature of roots and actual roots of Quadratic equation in C++

Programming approach

  • Define constants a, b and c and store values for quadratic equation.
  • Now calculates discriminant for the given equation and show the result as per the mathematics rule.
  • If the roots are real, apply the quadratic equation and show the result otherwise print that roots are imaginary.

Quadratic formula and analysis of roots

For a given quadratic equation ax2+bx+c=0 where a, b, c are constants.
The nature of the roots of quadratic equation is determine by the determinant, D.
Where D= b2-4ac

Now three cases are possible-

  • If D>0 the roots are real and distinct.
  • If D=0 the roots are real and equal.
  • Id D<0 the roots are imaginary

Value of roots are calculated by quadratic formula:

quadratic equation formula c++

quadratic equation formula

Program/Source code

The following program in C++  determine the nature of the roots and calculate the actual values of them if they are real. This code is successfully compiled and tested in CodeBlocks v 16.01 in windows 10.

/* C++ program to find nature of roots and their actual values
....nature of roots is determined by value of discriminant
....value of roots is calculated by using quadratic formula */

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

using namespace std;

int main()
{
    int a,b,c;              // constants of equation
    float x1,x2;            //roots

    cout<<"Enter value of a: ";
    cin>>a;
    cout<<"Enter value of b: ";
    cin>>b;
    cout<<"Enter value of c: ";
    cin>>c;

    int D;
    D= b*b - 4*a*c;                     // determinant

    if(D>=0){                           //nature of roots
        if(D==0)
            cout<<"Roots are real and equal: ";
        else
            cout<<"Roots are real and distinct: ";

        x1=(-b+ sqrt(D))/(2*a);             // roots calculation by quadratic formula
        x2=(-b- sqrt(D))/(2*a);

        cout<<x1<<", "<<x2;
    }
    else
        cout<<"Roots are imaginary!";

    return 0;
}

Output example

Enter value of a: 2
Enter value of b: 3
Enter value of c: 1
Roots are real and distinct: -0.5, -1
Enter value of a: 4
Enter value of b: 1
Enter value of c: 5
Roots are imaginary!

Program Explanation

  1. Declare variables for quadratic equation constants and its roots.
  2. Store values of constants as provided by the user.
  3. Using the constants find the discriminant of the equation.
  4. With the help of discriminant print nature of the roots accordingly.
  5. In the case of determinant≥0 find the values of roots and print on the screen.

Also, read

Leave a Reply

Your email address will not be published. Required fields are marked *