我是Ada的絕對初學者,我試圖通過使用泰勒級數來計算sin(x)[sin(3)現在],但我只是'讓它工作。Ada sin(x)用泰勒級數計算
因此,這裏是我的方法:
with Ada.Float_Text_IO;
with Mat;
procedure SinKoz is
X:Float:=3.0;
Szamlalo:Float:=0.0;
begin
for I in 1..100 loop
Szamlalo := Szamlalo + ((-1.0)**I)*(X**(2.0*I+1.0))/Mat.Faktorialis(2*I+1);
end loop;
Ada.Float_Text_IO.Put(Szamlalo);
end SinKoz;
而且裏面墊,這裏是我的Faktorialis,其計算2的階乘* I + 1:
function Faktorialis(N: Float) return Float is
Fakt : Float := 1.0;
begin
for I in 1..N loop
Fakt := Fakt * I;
end loop;
return Fakt;
end Faktorialis;
當我試圖編譯我的代碼,這個錯誤出現: 指數的類型必須是自然,找到類型爲「Standard.Float」
我希望你可以幫助我弄清楚我的類型出了什麼問題!
+1:duh。這個答案比我的要好:)我已經離開了Ada一段時間了。 – 2013-02-28 16:29:14
謝謝,這是一個非常詳細的答案! – Krav 2013-02-28 16:30:40
有時候,通過多種方式來完成這項工作是件好事。 Ada是一個非常好的工具箱,不僅僅是一把錘子:-) – 2013-02-28 16:31:19