2016-10-01 40 views
0

爲什麼我得到這個錯誤?「ADA.FLOAT_IO」不是預定義的庫單元

「ADA.FLOAT_IO」不是預定義的庫單元

我從來沒有在ADA以前寫過什麼,只是我不知道我在做什麼。我使用GNAT進行編譯。

with Ada.Text_IO; use Ada.Text_IO; 
with Ada.Float_IO; use Ada.Float_IO; 
with Ada.Numerics.Elementary_Functions; 
use Ada.Numerics.Elementary_Functions; 

procedure MAIN is 
    A,B,C:Float; 
    W : Float; 
    Re, Im:Float; 
begin 
    Put("Give A");Get(A); 
    Put("Give B");Get(B); 
    Put("Give C");Get(C);New_Line; 
    if A=0.0 then 
     Put_Line("It is not second degree polynomial"); 
    else 
     W:=B*B - 4.0*A*C; 
     Re:=B/(2.0*A); Im:=Sqrt(Abs(W))/(2.0*A); 
     Put("dif = "); Put(W);New_Line; 
     if W<0.0 then 
     Put_Line("Complex "); 
     Put("x1 = ");Put(-Re);Put(" -j ");Put(Im);Put(" "); 
     Put("x2 = ");Put(-Re);Put(" +j ");Put(Im);New_Line; 
     else 
     Put_Line("Real"); 
     Put("x1 = ");Put(-Re-Im);Put(" "); 
     Put("x2 = ");Put(-Re+Im); 
     end if; 
    end if; 
end MAIN; 

回答

4

IIRC Float_IOText_IO孩子:Ada.Text_IO.Float_IO。此外,這是一個通用的軟件包。我想你想要Ada.Float_Text_IO,它被定義爲

package Ada.Float_Text_IO is new Ada.Text_IO.Float_IO (Float); 
+0

好的。兩個問題。我想在哪裏寫我的代碼?這條線究竟發生了什麼? – Ravo

+6

關於第二個問題,請參閱[Wikibook有關泛型的文章](https://en.wikibooks.org/wiki/Ada_Programming/Generics)。首先,編譯器提供'Ada.Float_Text_IO'([ARM A10.9(32)](http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-A-10-9.html #p32)),因此所有_you_所要做的就是用'Ada.Float_Text_IO'替換'Ada.Float_IO'。 –

相關問題