我剛來,並決定嘗試一些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