Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,54 @@
|
|||
with Ada.Text_Io;
|
||||
with Ada.Strings.Unbounded;
|
||||
with Ada.Strings.Fixed;
|
||||
|
||||
procedure Display_Linear is
|
||||
|
||||
subtype Position is Positive;
|
||||
type Coefficient is new Integer;
|
||||
type Combination is array (Position range <>) of Coefficient;
|
||||
|
||||
function Linear_Combination (Comb : Combination) return String is
|
||||
use Ada.Strings.Unbounded;
|
||||
use Ada.Strings;
|
||||
Accu : Unbounded_String;
|
||||
begin
|
||||
for Pos in Comb'Range loop
|
||||
case Comb (Pos) is
|
||||
when Coefficient'First .. -1 =>
|
||||
Append (Accu, (if Accu = "" then "-" else " - "));
|
||||
when 0 => null;
|
||||
when 1 .. Coefficient'Last =>
|
||||
Append (Accu, (if Accu /= "" then " + " else ""));
|
||||
end case;
|
||||
|
||||
if Comb (Pos) /= 0 then
|
||||
declare
|
||||
Abs_Coeff : constant Coefficient := abs Comb (Pos);
|
||||
Coeff_Image : constant String := Fixed.Trim (Coefficient'Image (Abs_Coeff), Left);
|
||||
Exp_Image : constant String := Fixed.Trim (Position'Image (Pos), Left);
|
||||
begin
|
||||
if Abs_Coeff /= 1 then
|
||||
Append (Accu, Coeff_Image & "*");
|
||||
end if;
|
||||
Append (Accu, "e(" & Exp_Image & ")");
|
||||
end;
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
return (if Accu = "" then "0" else To_String (Accu));
|
||||
end Linear_Combination;
|
||||
|
||||
use Ada.Text_Io;
|
||||
begin
|
||||
Put_Line (Linear_Combination ((1, 2, 3)));
|
||||
Put_Line (Linear_Combination ((0, 1, 2, 3)));
|
||||
Put_Line (Linear_Combination ((1, 0, 3, 4)));
|
||||
Put_Line (Linear_Combination ((1, 2, 0)));
|
||||
Put_Line (Linear_Combination ((0, 0, 0)));
|
||||
Put_Line (Linear_Combination ((1 => 0)));
|
||||
Put_Line (Linear_Combination ((1, 1, 1)));
|
||||
Put_Line (Linear_Combination ((-1, -1, -1)));
|
||||
Put_Line (Linear_Combination ((-1, -2, 0, -3)));
|
||||
Put_Line (Linear_Combination ((1 => -1)));
|
||||
end Display_Linear;
|
||||
Loading…
Add table
Add a link
Reference in a new issue