Технологии программирования | страница 125
Итак, пусть известна "школьная" формула решения квадратного уравнения вида ax>2 + bx + с = 0.
Известно также, что первоначально надо вычислить дискриминант уравнения D:
D = b>2 — 4ac.
Даже если забыли о случае отрицательности дискриминанта — ничего страшного нет. Записываем формулу решения:
Нам известно, что если D < 0, то из отрицательного числа нельзя извлекать квадратный корень. Поэтому вспоминаем, что при отрицательном дискриминанте нет корней. Еще обнаруживаем факт особого случая, которому соответствует факт при D = 0 наличия двух равных корней. Еще известно, что делить на ноль нельзя, а при a = 0 имеем именно этот случай. В этом случае исходное квадратное уравнение превращается в линейное уравнение:
bx + c = 0.
Решение получившегося уравнения будет следующим:
x = (—c)/b.
Это решение возможно лишь в случае a = 0 и (одновременно) b ≠ 0. В случае a = 0 и (одновременно) b = 0 и (одновременно) c ≠ 0 линейное уравнение не имеет решения.
Анализируя исходное уравнение, выясняем, что в случае a = 0 и (одновременно) b = 0 и (одновременно) c = 0 уравнение имеет бесчисленное множество решений (корни x1 и x2 — любые числа).
Составим наглядную таблицу правил решения квадратного уравнения (табл. 5.3).
Таблица 5.3
Наглядная таблица правил решения квадратного уравнения
№ п/п | а | b | с | d | Вариант решения |
1 | a ≠ 0 | Любое | Любое | d > 0 | Два различных корня |
2 | a ≠ 0 | Любое | Любое | d = 0 | Два равных корня |
3 | a ≠ 0 | Любое | Любое | d < 0 | Нет решения |
4 | а = 0 | b ≠ 0 | Любое | Нет | Есть корень линейного уравнения |
5 | а = 0 | b = 0 | c ≠ 0 | Нет | Нет решения |
6 | а = 0 | b = 0 | с = 0 | Нет | Бесчисленное множество решений |
В табл. 5.3 нет сочетаний значений, которые еще не выявлены. Теперь можно определить выходную информацию "черного ящика", которая выдается в пяти вариантах:
1) уравнение имеет бесчисленное множество решений (корни x1 и x2 — любые числа);
2) значения двух различных корней x1 и x2;
3) значения двух равных корней в виде x1 и дополняющей надписи о двух равных корнях;
4) надпись нет решения;
5) значение одного корня x1 с надписью, что уравнение является линейным.
Тип переменных, в которых размещаются выходные значения корней x1 и x2, — вещественный (Real). Теперь определяем входную информацию. Из исходного уравнения следует, что входной информацией являются значения трех коэффициентов a, b, c типа вещественный (Real). В ходе анализа формул было установлено, что значения трех коэффициентов a, b, c могут принимать любые значения, что было не очевидно до анализа формул решения уравнения (например, случай a = 0).