我刚来,并决定尝试一些Ada。 缺点是语法和函数离C++很远。 所以我不得不喜欢塞满各种东西才能使这件事情起作用。Ada中的二次方程
我的问题是,如果有一些更好的方式来做到这一点的计算是什么,我在这里做
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()把这些变成积极的。但奇怪的是,它完全适用于其他情况下,这是奇怪...
+1为SO – ja72 2010-12-22 02:24:41
关于第一个两行提ADA - 我会避免使用ABS()当你已经知道B是否定的时候。使用B:= - B。即使编译器很聪明并且可以内联东西。 – DarenW 2011-01-06 23:21:57