Directory:Derek Elder/Programs/Quadratic Formula

MyWikiBiz, Author Your Legacy — Friday November 29, 2024
< Directory:Derek Elder‎ | Programs
Revision as of 17:32, 6 May 2008 by Derek Elder (talk | contribs) (Modifications)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
#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;
}