45 lines
1.1 KiB
Ada
45 lines
1.1 KiB
Ada
with Ada.Text_IO; use Ada.Text_IO;
|
|
with Ada.Containers.Doubly_Linked_Lists;
|
|
|
|
procedure Pythagore_Set is
|
|
|
|
type Triangles is array (1 .. 3) of Positive;
|
|
|
|
package Triangle_Lists is new Ada.Containers.Doubly_Linked_Lists (
|
|
Triangles);
|
|
use Triangle_Lists;
|
|
|
|
function Find_List (Upper_Bound : Positive) return List is
|
|
L : List := Empty_List;
|
|
begin
|
|
for A in 1 .. Upper_Bound loop
|
|
for B in A + 1 .. Upper_Bound loop
|
|
for C in B + 1 .. Upper_Bound loop
|
|
if ((A * A + B * B) = C * C) then
|
|
Append (L, (A, B, C));
|
|
end if;
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
return L;
|
|
end Find_List;
|
|
|
|
Triangle_List : List;
|
|
C : Cursor;
|
|
T : Triangles;
|
|
|
|
begin
|
|
Triangle_List := Find_List (Upper_Bound => 20);
|
|
|
|
C := First (Triangle_List);
|
|
while Has_Element (C) loop
|
|
T := Element (C);
|
|
Put
|
|
("(" &
|
|
Integer'Image (T (1)) &
|
|
Integer'Image (T (2)) &
|
|
Integer'Image (T (3)) &
|
|
") ");
|
|
Next (C);
|
|
end loop;
|
|
end Pythagore_Set;
|