我刚走过来,决定尝试一下Ada.缺点是语法和功能远离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;
Run Code Online (Sandbox Code Playgroud)
我有一些负数的问题,这就是为什么我做了一个IF语句并使用ABS()将它们转为正数.但奇怪的是它适用于另一种情况,这很奇怪......