-- Funzione Sin(x) approssimata dalla funzione -- f(x) = x-x^3/6+x^5/120 -- Autore: Carlos Montoya -- Data: 26 gennaio 2001 --------------------------------------------------- with Ada.Text_Io, Ada.Float_Text_Io,Ada.Numerics.Elementary_Functions; use Ada.Text_Io, Ada.Float_Text_Io,Ada.Numerics.Elementary_Functions; procedure Fsinx is X: Float:=0.0; Function F(X:float) return Float is begin return X-(X**3/6.0)+(X**5/120.0); end F; begin Set_Col(8);Put("=============================================================");New_Line; Set_Col(8);Put("= Approssimazione del Sin(x) con la funzione : =");New_Line; Set_Col(8);Put("= =");New_Line; Set_Col(8);Put("= f(x) = x-x^3/6+x^5/120 =");New_Line; Set_Col(8);Put("=============================================================");New_Line(2); Set_Col(10);Put("x"); Set_Col(17);Put("Sin(x)"); Set_Col(26);Put("f(x)"); Set_Col(37);Put("|Sin(x)-f(x)|"); Set_Col(53);Put("(Sin(x)-f(x)/Sin(x)");New_Line; Set_Col(5);for I in 1..65 loop Put("-");end loop;New_Line; while X <= 1.0 loop if X = 0.0 then Set_Col(8);Put(X,1,3,0); Set_Col(17);Put(Sin(X),1,4,0); Set_Col(26);Put(F(X),1,4,0); Set_Col(37);Put(abs(Sin(X)-F(X)),1,7,0); Set_Col(57);Put("Undef");New_Line; else Set_Col(8);Put(X,1,3,0); Set_Col(17);Put(Sin(X),1,4,0); Set_Col(26);Put(F(X),1,4,0); Set_Col(37);Put(abs(Sin(X)-F(X)),1,7,0); Set_Col(57);Put((Sin(x)-F(X))/Sin(x),1,7,0);New_Line; end if; X:= X+0.05; end loop; Set_Col(5);for I in 1..65 loop Put("-");end loop;New_Line; end Fsinx;