with text_io,integer_io; use text_io,integer_io;
with Complex_Numbers; use Complex_Numbers;
with Brackets,Brackets_io; use Brackets,Brackets_io;
with Bracket_Monomials; use Bracket_Monomials;
with Bracket_Monomials_io; use Bracket_Monomials_io;
with Bracket_Polynomials; use Bracket_Polynomials;
with Bracket_Polynomials_io; use Bracket_Polynomials_io;
procedure ts_brackpols is
procedure Compare ( p : in Bracket_Polynomial; t : in Bracket_Term ) is
-- DESCRIPTION :
-- Compares every monomial in p with the term t.
procedure Compare ( tt : in Bracket_Term; continue : out boolean ) is
begin
if tt < t
then put(tt); put(" < "); put(t);
elsif tt > t
then put(tt); put(" > "); put(t);
else put(tt); put(" = "); put(t);
end if;
new_line;
if tt > t
then put(tt); put(" > "); put(t);
elsif tt < t
then put(tt); put(" < "); put(t);
else put(tt); put(" = "); put(t);
end if;
new_line;
continue := true;
end Compare;
procedure Compare_Terms is new Enumerate_Terms(Compare);
begin
Compare_Terms(p);
end Compare;
procedure Interactive_Read ( d : in natural; t : out Bracket_Term ) is
m : natural;
b : Bracket(1..d);
s,c : integer;
bm : Bracket_Monomial;
begin
c := 1;
put("Give the number of brackets in the monomial : "); get(m);
for i in 1..m loop
put("Give "); put(d,1); put(" numbers for the ");
put(i,1); put("th bracket : "); get(b,s);
c := s*c;
Multiply(bm,b);
end loop;
put_line("The bracket monomial : "); put(bm); new_line;
if c > 0
then t.coeff := CMPLX(1.0);
else t.coeff := -CMPLX(1.0);
end if;
t.monom := bm;
end Interactive_Read;
procedure Interactive_Read ( d : in natural; p : out Bracket_Polynomial ) is
m : natural;
bp : Bracket_Polynomial;
begin
put_line("Reading a bracket polynomial.");
put("Give the number of monomials : "); get(m);
for i in 1..m loop
declare
bt : Bracket_Term;
begin
put("Reading bracket monomial "); put(i,1); new_line;
Interactive_Read(d,bt);
put_line("The bracket term : "); put(bt);
Compare(bp,bt);
Add(bp,bt);
put_line("The bracket polynomial : "); put(bp);
end;
end loop;
p := bp;
end Interactive_Read;
procedure Main is
d : natural;
bp : Bracket_Polynomial;
begin
put("Give the number of entries in the brackets : "); get(d);
Interactive_Read(d,bp);
put_line("The bracket polynomial : "); put(bp);
end Main;
begin
Main;
end ts_brackpols;