Directory:Derek Elder/Programs/Quadratic Formula

< Directory:Derek Elder‎ | Programs
Revision as of 23:34, 1 November 2007 by Derek Elder (talk | contribs) (start of page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
#include <iostream>
#include <cmath>
using namespace std;

double sqrt(int discrim)
{
	return sqrt(double(discrim));
}

int main()
{

	int A = 0;
	int B = 0;
	int C = 0;

	cout<<"Please enter a value for A: ";
	cin>>A;
	cout<<"Please enter a value for B: ";
	cin>>B;
	cout<<"Please enter a value for C: ";
	cin>>C;
	
	double discrim = sqrt((B * B) - 4 * A * C);
	double imaginary_discrim = sqrt(-((B * B) - 4 * A * C));

	if (discrim >= 0)
	{
		cout<<"The value of the discriminant is: "<<discrim<<"\n";
	}
	else
	{
		cout<<"The value of the discriminant is: "<<imaginary_discrim<<"i"<<"\n";
	}

	if(A != 0)
	{
		if(A <0)
		{
			A *= -1;
		}

		if (discrim > 0)
		{
			cout<<"When A = "<<A<<", B = "<<B<<", and C = "<<C<<", the two real solutions are:"<<"\n";
			cout<<"X = "<<(-B + discrim)/(2.0 * A)<<"\n";
			cout<<"X = "<<(-B - discrim)/(2.0 * A)<<"\n";
		}
		else if (discrim == 0)
		{
			cout<<"When A = "<<A<<", B = "<<B<<", and C = "<<C<<", the one real solution is:"<<"\n";
			cout<<"X = "<<-B /(2.0 * A)<<"\n";
		}
		else
		{
			cout<<"When A = "<<A<<", B = "<<B<<", and C = "<<C<<", the two imaginary solutions are:"<<"\n";
			cout<<"X = "<<-B / (2.0 * A)<<" + "<<imaginary_discrim /(2 * A)<<"i"<<"\n"; 
			cout<<"X = "<<-B / (2.0 * A)<<" - "<<imaginary_discrim /(2 * A)<<"i"<<"\n"; 
		}

	}
	else
		cout<<"There is no solution for the equation when A = 0."<<"\n";

	return 0;
}