# C++ > Mathematics Code Examples

## Program to Calculate roots of 4th order algebraic equation

``` Program to Calculate roots of 4th order algebraic equation of the form ax^4 + bx^3 + cx^2 + dx + e = 0. #include<iostream.h> #include<math.h> #include<conio.h> #include<stdlib.h> #include<graphics.h> const int IMAX = 800; class coeffs { public : float a, b, c, d, e, x, y, p, q, r, z; void getdata(void); void divide(void); void chkrealcmplx(void); void dispreal(float, float, float); void dispcomplx(float, float, float); }; void coeffs :: getdata() { cout<<"Enter coefficients 'a' through 'e' : "; cin>>a>>b>>c>>d>>e; } void coeffs :: divide(void) { int i; float y1,z1; b = b/a; c = c/a; d = d/a; e = e/a; a = 1; y = d/c; z = e/c; x = 1; for(i=1;i<=IMAX;i++) { y1 = (d-z*(b-y))/((c-z)-y*(b-y)); z1 = e/((c-z)-y*(b-y)); y = y1; z = z1; p = 1; q = b-y; r = (c-z)-y*(b-y); } } void coeffs :: chkrealcmplx(void) { float delta1,delta2; delta1 = q*q - 4*p*r; delta2 = y*y - 4*x*z; if(delta1<0) { cout<<" Roots R1 and R2 are complex "; cout<<"Roots are : "; dispcomplx(delta1,p,q); } if(delta2<0) { cout<<" Roots R3 and R4 are complex "; cout<<"Roots are : "; dispcomplx(delta2,x,y); } if(delta1>=0) { cout<<" Roots R1 and R2 are real "; cout<<"Roots are : "; dispreal(delta1,p,q); } if(delta2>=0) { cout<<" Roots R3 and R4 are real "; cout<<"Roots are : "; dispreal(delta2,x,y); } } void coeffs :: dispreal(float delta,float A,float B) { float r1,r2; r1 = (-B+sqrt(delta))/(2*A); r2 = (-B-sqrt(delta))/(2*A); cout<<r1<<endl; cout<<r2<<endl; } void coeffs :: dispcomplx(float delta,float A,float B) { float rp,ip; delta = -delta; rp = -B/(2*A); ip = (sqrt(delta))/(2*A); cout<<rp<<" +j "<<ip<<endl; cout<<rp<<" -j "<<ip<<endl; } void line() { char t = 0XC4; for(int i = 1;i<=80;i++) cout<<t; } void main() { clrscr(); int gdriver = EGA, gmode = VGAHI, errorcode; initgraph(&gdriver, &gmode, "c:\tc\bgi"); setbkcolor(BLUE); coeffs coefficients; line(); cout<<" PROGRAM TO SOLVE A FOURTH ORDER ALGEBRAIC EQUATION "; line(); coefficients.getdata(); line(); line(); coefficients.divide(); coefficients.chkrealcmplx(); line(); line(); getch(); closegraph(); } ```