Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
6
Task/Continued-fraction/Ada/continued-fraction-1.ada
Normal file
6
Task/Continued-fraction/Ada/continued-fraction-1.ada
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
generic
|
||||
type Scalar is digits <>;
|
||||
|
||||
with function A (N : in Natural) return Natural;
|
||||
with function B (N : in Positive) return Natural;
|
||||
function Continued_Fraction (Steps : in Natural) return Scalar;
|
||||
11
Task/Continued-fraction/Ada/continued-fraction-2.ada
Normal file
11
Task/Continued-fraction/Ada/continued-fraction-2.ada
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
function Continued_Fraction (Steps : in Natural) return Scalar is
|
||||
function A (N : in Natural) return Scalar is (Scalar (Natural'(A (N))));
|
||||
function B (N : in Positive) return Scalar is (Scalar (Natural'(B (N))));
|
||||
|
||||
Fraction : Scalar := 0.0;
|
||||
begin
|
||||
for N in reverse Natural range 1 .. Steps loop
|
||||
Fraction := B (N) / (A (N) + Fraction);
|
||||
end loop;
|
||||
return A (0) + Fraction;
|
||||
end Continued_Fraction;
|
||||
35
Task/Continued-fraction/Ada/continued-fraction-3.ada
Normal file
35
Task/Continued-fraction/Ada/continued-fraction-3.ada
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
with Ada.Text_IO;
|
||||
|
||||
with Continued_Fraction;
|
||||
|
||||
procedure Test_Continued_Fractions is
|
||||
type Scalar is digits 15;
|
||||
|
||||
package Square_Root_Of_2 is
|
||||
function A (N : in Natural) return Natural is (if N = 0 then 1 else 2);
|
||||
function B (N : in Positive) return Natural is (1);
|
||||
|
||||
function Estimate is new Continued_Fraction (Scalar, A, B);
|
||||
end Square_Root_Of_2;
|
||||
|
||||
package Napiers_Constant is
|
||||
function A (N : in Natural) return Natural is (if N = 0 then 2 else N);
|
||||
function B (N : in Positive) return Natural is (if N = 1 then 1 else N-1);
|
||||
|
||||
function Estimate is new Continued_Fraction (Scalar, A, B);
|
||||
end Napiers_Constant;
|
||||
|
||||
package Pi is
|
||||
function A (N : in Natural) return Natural is (if N = 0 then 3 else 6);
|
||||
function B (N : in Positive) return Natural is ((2 * N - 1) ** 2);
|
||||
|
||||
function Estimate is new Continued_Fraction (Scalar, A, B);
|
||||
end Pi;
|
||||
|
||||
package Scalar_Text_IO is new Ada.Text_IO.Float_IO (Scalar);
|
||||
use Ada.Text_IO, Scalar_Text_IO;
|
||||
begin
|
||||
Put (Square_Root_Of_2.Estimate (200), Exp => 0); New_Line;
|
||||
Put (Napiers_Constant.Estimate (200), Exp => 0); New_Line;
|
||||
Put (Pi.Estimate (10000), Exp => 0); New_Line;
|
||||
end Test_Continued_Fractions;
|
||||
6
Task/Continued-fraction/Ada/continued-fraction-4.ada
Normal file
6
Task/Continued-fraction/Ada/continued-fraction-4.ada
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
generic
|
||||
type Scalar is digits <>;
|
||||
|
||||
with function A (N : in Natural) return Natural;
|
||||
with function B (N : in Positive) return Natural;
|
||||
function Continued_Fraction_Ada95 (Steps : in Natural) return Scalar;
|
||||
18
Task/Continued-fraction/Ada/continued-fraction-5.ada
Normal file
18
Task/Continued-fraction/Ada/continued-fraction-5.ada
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
function Continued_Fraction_Ada95 (Steps : in Natural) return Scalar is
|
||||
function A (N : in Natural) return Scalar is
|
||||
begin
|
||||
return Scalar (Natural'(A (N)));
|
||||
end A;
|
||||
|
||||
function B (N : in Positive) return Scalar is
|
||||
begin
|
||||
return Scalar (Natural'(B (N)));
|
||||
end B;
|
||||
|
||||
Fraction : Scalar := 0.0;
|
||||
begin
|
||||
for N in reverse Natural range 1 .. Steps loop
|
||||
Fraction := B (N) / (A (N) + Fraction);
|
||||
end loop;
|
||||
return A (0) + Fraction;
|
||||
end Continued_Fraction_Ada95;
|
||||
87
Task/Continued-fraction/Ada/continued-fraction-6.ada
Normal file
87
Task/Continued-fraction/Ada/continued-fraction-6.ada
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
with Ada.Text_IO;
|
||||
|
||||
with Continued_Fraction_Ada95;
|
||||
|
||||
procedure Test_Continued_Fractions_Ada95 is
|
||||
type Scalar is digits 15;
|
||||
|
||||
package Square_Root_Of_2 is
|
||||
function A (N : in Natural) return Natural;
|
||||
function B (N : in Positive) return Natural;
|
||||
|
||||
function Estimate is new Continued_Fraction_Ada95 (Scalar, A, B);
|
||||
end Square_Root_Of_2;
|
||||
|
||||
package body Square_Root_Of_2 is
|
||||
function A (N : in Natural) return Natural is
|
||||
begin
|
||||
if N = 0 then
|
||||
return 1;
|
||||
else
|
||||
return 2;
|
||||
end if;
|
||||
end A;
|
||||
|
||||
function B (N : in Positive) return Natural is
|
||||
begin
|
||||
return 1;
|
||||
end B;
|
||||
end Square_Root_Of_2;
|
||||
|
||||
package Napiers_Constant is
|
||||
function A (N : in Natural) return Natural;
|
||||
function B (N : in Positive) return Natural;
|
||||
|
||||
function Estimate is new Continued_Fraction_Ada95 (Scalar, A, B);
|
||||
end Napiers_Constant;
|
||||
|
||||
package body Napiers_Constant is
|
||||
function A (N : in Natural) return Natural is
|
||||
begin
|
||||
if N = 0 then
|
||||
return 2;
|
||||
else
|
||||
return N;
|
||||
end if;
|
||||
end A;
|
||||
|
||||
function B (N : in Positive) return Natural is
|
||||
begin
|
||||
if N = 1 then
|
||||
return 1;
|
||||
else
|
||||
return N - 1;
|
||||
end if;
|
||||
end B;
|
||||
end Napiers_Constant;
|
||||
|
||||
package Pi is
|
||||
function A (N : in Natural) return Natural;
|
||||
function B (N : in Positive) return Natural;
|
||||
|
||||
function Estimate is new Continued_Fraction_Ada95 (Scalar, A, B);
|
||||
end Pi;
|
||||
|
||||
package body Pi is
|
||||
function A (N : in Natural) return Natural is
|
||||
begin
|
||||
if N = 0 then
|
||||
return 3;
|
||||
else
|
||||
return 6;
|
||||
end if;
|
||||
end A;
|
||||
|
||||
function B (N : in Positive) return Natural is
|
||||
begin
|
||||
return (2 * N - 1) ** 2;
|
||||
end B;
|
||||
end Pi;
|
||||
|
||||
package Scalar_Text_IO is new Ada.Text_IO.Float_IO (Scalar);
|
||||
use Ada.Text_IO, Scalar_Text_IO;
|
||||
begin
|
||||
Put (Square_Root_Of_2.Estimate (200), Exp => 0); New_Line;
|
||||
Put (Napiers_Constant.Estimate (200), Exp => 0); New_Line;
|
||||
Put (Pi.Estimate (10000), Exp => 0); New_Line;
|
||||
end Test_Continued_Fractions_Ada95;
|
||||
Loading…
Add table
Add a link
Reference in a new issue