вот прочитал FAQ, поискал на форумах... но все-равно че-та не догнал...
Вот как мне допустим в результате вычислений получит комплексное число???
например переменная Д есть дисскриминант, и вот если он меньше нуля.....
Заранее спасибо!
volvo
15.09.2006 22:39
Вот пример решения квадратного уравнения с получением комплексных корней:
Type { Этот тип используется для указания, является ли корень действительным или комплексным } T = (_real, _complex);
{ Это - структура для работы с любыми корнями } ResType = record case style: T of _real : (r: real); _complex: (re, im: real); end;
{ Процедура, печатающая число как действительное или комплексное, в зависимости от поля style } Procedure Print(X: ResType); Const sign: Array[Boolean] Of Char = ('-', '+'); { Для отображения знака числа } Begin Case X.style Of _real : WriteLn(X.r:10:5); _complex: WriteLn(X.re:10:5, ' ' + sign[X.im > 0], Abs(X.im):10:5, ' * i'); End; End;
Const Epsilon = 1.0E-10; maxDistance = 1.0E+07;
{ Сама функция решения квадратного уравнения взята из
FAQ: Решение уравнений различных степеней
и немного подправлена ... } Function solveQuadratic(Var x: Array Of Double; Var y: Array Of ResType): Byte; Var a, b, c, Desc: Double; T: Double; Begin a := x[0]; b := -x[1]; c := x[2]; If a = 0 Then Begin solveQuadratic := 0; If b = 0.0 Then Exit;