// Example with functions
// These #include statements also declare information at "file scope"
#include <iostream>
#include <cstdlib>
#include <cmath>
// create global variable
int number1 = 10;
// function declaration or function prototype
// this declaration has "file scope" which is often
// the same as being a "global" identifier
// function definition - include the code for the function
// calculate the root of the polyinomial equation ax^2+bx+c = 0
//
// root1 = (-b + sqrt(b^2 - 4ac))/2a
//
// return a value of zero for an imaginary root
float getRoot1(int a, int b, int c)
{
cout << "Number1: " << number1 << endl;
float t1, t2;
t1 = pow(b, 2) - 4*a*c;
// check for imaginary root
if (t1 < 0)
{
cout << "Imaginary root" << endl;
t2 = 0;
}
else
{
t2 = (-b + sqrt(t1)) / 2*a;
}
return t2;
}
int main()
{
float getRoot2(int, int, int);
int c1, c2, c3;
float root1, root2;
int number1 = 7;
cout << "Number1: " << number1 << endl;
cout << "Starting Main" << endl;
cout << "Enter in the 3 coeffiecients: ";
cin >> c1 >> c2 >> c3;
// function call
root1 = getRoot1(c1, c2, c3);
root2 = getRoot2(c1, c2, c3);
cout << "The first root is: " << root1 << endl;
cout << "The second root is: " << root2 << endl;
cout << "Ending Main" << endl;
// send the value of zero back the Operating System
return 0;
// The value of zero indicates normal execution of the program
// The program "terminated normally"
// Another function that is that same as "return 0;" is "exit(int);"
exit(0);
// exit() can be used at any location in your program to stop
// execution.
// "return" is a C++ operator; while "exit()" is a library function
}
// function definition - include the code for the function
// calculate the root of the polyinomial equation ax^2+bx+c = 0
//
// root2 = (-b - sqrt(b^2 - 4ac))/2a
//
// return a value of zero for an imaginary root
float getRoot2(int a, int b, int c)
{
float t1, t2;
t1 = pow(b, 2) - 4*a*c;
// check for imaginary root
if (t1 < 0)
{
cout << "Imaginary root" << endl;
t2 = 0;
}
else
{
t2 = (-b - sqrt(t1)) / 2*a;
}
return t2;
}