-- Programme de génération des accords.
with Text_Io;
use Text_Io;
procedure Main is
subtype T_Note is Natural range 21..108;
type T_Interval is array (1..12) of Natural;
Interval : T_Interval := (0,1,2,3,4,5,6,7,8,9,10,11);
begin
for A in 21..97 loop
for I in 1..Interval'Length-1 loop
for J in I+1..Interval'length loop
Put(Integer'Image(Interval(I)+A));
Put(Integer'Image(Interval(J)+A));
New_Line;
end loop;
end loop;
for I in 1..Interval'Length-2 loop
for J in I+1..Interval'Length-1 loop
for K in J+1..Interval'Length loop
Put(Integer'Image(Interval(I)+A));
Put(Integer'Image(Interval(J)+A));
Put(Integer'Image(Interval(K)+A));
New_Line;
end loop;
end loop;
end loop;
for I in 1..Interval'Length-3 loop
for J in I+1..Interval'Length-2 loop
for K in J+1..Interval'Length-1 loop
for L in K+1..Interval'length loop
Put(Integer'Image(Interval(I)+A));
Put(Integer'Image(Interval(J)+A));
Put(Integer'Image(Interval(K)+A));
Put(Integer'Image(Interval(L)+A));
New_Line;
end loop;
end loop;
end loop;
end loop;
for H in 1..Interval'Length-4 loop
for i in H+1..Interval'Length-3 loop
for J in I+1..Interval'Length-2 loop
for K in J+1..Interval'Length-1 loop
for L in K+1..Interval'length loop
Put(Integer'Image(Interval(H)+A));
Put(Integer'Image(Interval(I)+A));
Put(Integer'Image(Interval(J)+A));
Put(Integer'Image(Interval(K)+A));
Put(Integer'Image(Interval(L)+A));
New_Line;
end loop;
end loop;
end loop;
end loop;
end loop;
end loop;
end Main;