Квадратное уравнение на Аде

I just came around and decided to try some Ada. The downside is that the syntax and function strays quite away from 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 (), чтобы превратить их в положительные. Но странно то, что в другом случае он отлично работает, что странно ...

10
задан L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳ 22 December 2010 в 02:15
поделиться