#include <iostream>
#include <math.h>
using namespace std;
bool Continue (const char *theThingWeAreDoing)
{
char DoneCharacter;
cout << endl << theThingWeAreDoing << " - Nazhmite \"n\" i \"Enter\" dlya vihoda ili druguyu klavishu dlya povtora: ";
cin >> DoneCharacter;
return (DoneCharacter != 'n');
}
int NumError(void)
{
cerr << "Vozmozhno vi vveli ne chislo!" << endl;
cin.clear();
char BadInput[5];
cin >> BadInput;
return 1;
}
int main(int argc, char* argv[])
{
do
{
try
{
cout << "Vvedite argumenty a, b, c uravneniya vida \"ax2 + bx + c = 0\" v sootvetstvii s ih znakami. a ne dolzhno byt' ravno 0." << endl;
double a = 1;
cout << "a: ";
cin >> a;
if(a == 0)
{
cout << "a ne dolzhno byt' ravno 0!" << endl;
}
else
{
double b = 0;
cout << "b: ";
cin >> b;
double c = 0;
cout << "c: ";
cin >> c;
double D = (b*b)-(4*a*c);
if(D < 0)
{
cout << "Diskriminant menshe 0!" << endl;
}
else
{
double x1 = (-(b)-sqrt(D))/(a*2);
double x2 = (-(b)+sqrt(D))/(a*2);
if(D == 0)
{
cout << "x = ";
cout << x1;
cout << "." << endl;
}
if(D > 0)
{
cout << "x1 = ";
cout << x1;
cout << ";" << endl;
cout << "x2 = ";
cout << x2;
cout << "." << endl;
}
}
}
}
catch(...)
{
NumError(void);
};
}
while (Continue("Escho raz? "));
return 0;
}
Социальные закладки