ВУЗ:
Составители:
Рубрика:
75
// формирование списка вызова для решения уравнения –
// сначала определяется тип уравнения, далее
// уравнение решается, в конце печатается результат
SolveEquation += DefineTypeEquation;
SolveEquation += Solve;
SolveEquation += PrintSolution;
}
// метод определения типа уравнения
void DefineTypeEquation()
{
if (a == 0)
if (b == 0)
// уравнение 0-ого порядка
type = 0;
else
// линейное уравнение
type = 1;
else
// квадратное уравнение
type = 2;
}
// метод определения способа решения
// в зависимости от типа уравнения
void Solve()
{
switch (type)
{
case 0: NullSolve(); break;
case 1: LinSolve(); break;
case 2: QSolve(); break;
}
}
// решение квадратного уравнения
void QSolve()
{
double disc = b * b - 4 * a * c;
if (disc < 0.0)
count = 0;
else if (disc == 0.0)
{
count = 1;
x1 = -b / (2 * a);
x2 = x1;
}
else
{
count = 2;
x1 = (-b + Math.Sqrt(disc)) / (2 * a);
x2 = (-b - Math.Sqrt(disc)) / (2 * a);
// формирование списка вызова для решения уравнения –
// сначала определяется тип уравнения, далее
// уравнение решается, в конце печатается результат
SolveEquation += DefineTypeEquation;
SolveEquation += Solve;
SolveEquation += PrintSolution;
}
// метод определения типа уравнения
void DefineTypeEquation()
{
if (a == 0)
if (b == 0)
// уравнение 0-ого порядка
type = 0;
else
// линейное уравнение
type = 1;
else
// квадратное уравнение
type = 2;
}
// метод определения способа решения
// в зависимости от типа уравнения
void Solve()
{
switch (type)
{
case 0: NullSolve(); break;
case 1: LinSolve(); break;
case 2: QSolve(); break;
}
}
// решение квадратного уравнения
void QSolve()
{
double disc = b * b - 4 * a * c;
if (disc < 0.0)
count = 0;
else if (disc == 0.0)
{
count = 1;
x1 = -b / (2 * a);
x2 = x1;
}
else
{
count = 2;
x1 = (-b + Math.Sqrt(disc)) / (2 * a);
x2 = (-b - Math.Sqrt(disc)) / (2 * a);
75
Страницы
- « первая
- ‹ предыдущая
- …
- 73
- 74
- 75
- 76
- 77
- …
- следующая ›
- последняя »
