PS: как указывается в статье в Википедии, эта реализация, вероятно, устарела для большинства платформ.
сто пришел и решил попробовать Аду. Недостатком является то, что синтаксис и функция отклоняются от C ++. Так что мне нужно было набивать разные вещи, чтобы заставить эту штуку работать.
У меня вопрос, есть ли лучший способ сделать этот расчет, чем то, что я сделал здесь
IF(B < 0.0) THEN
B := ABS(B);
X1 := (B / 2.0) + Sqrt( (B / 2.0) ** 2.0 + ABS(C));
X2 := (B / 2.0) - Sqrt( (B / 2.0) ** 2.0 + ABS(C));
ELSE
X1 := -(B / 2.0) + Sqrt( (B / 2.0) ** 2.0 - C);
X2 := -(B / 2.0) - Sqrt( (B / 2.0) ** 2.0 - C);
END IF;
У меня были некоторые проблемы с отрицательными числами, поэтому я сделал оператор IF и использовал ABS (), чтобы превратить их в положительные. Но странная вещь в том, что он отлично работает для другого случая, что странно ...