Yurttas/PL/IL/Ada-95/OO/GEO/geometry-io.adb
Jump to navigation
Jump to search
1with Ada.Text_IO; use Ada.Text_IO;
2
3with Ada.Float_Text_IO; use Ada.Float_Text_IO;
4
5with Geometry.Circles;
6with Geometry.Triangles;
7with Geometry.Squares;
8
9package body Geometry.IO is
10
11 function Get_Circle return Lists.Pointer is
12 use Circles;
13 X_Coord : Float;
14 Y_Coord : Float;
15 Radius : Float;
16 begin
17 Get(X_Coord);
18 Get(Y_Coord);
19 Get(Radius);
20 return new Circle'(X_Coord, Y_Coord, Radius);
21 end Get_Circle;
22
23 function Get_Triangle return Lists.Pointer is
24 use Triangles;
25 X_Coord : Float;
26 Y_Coord : Float;
27 A, B, C : Float;
28 begin
29 Get(X_Coord);
30 Get(Y_Coord);
31 loop
32 Get(A);
33 Get(B);
34 Get(C);
35
36 -- check to ensure a valid triangle
37 exit when A < B+C and B < C+A and C < A+B;
38
39 Put("Sorry, not a triangle, " &
40 "enter sides again please");
41 New_Line;
42 end loop;
43 return new Triangle'(X_Coord, Y_Coord, A, B, C);
44 end Get_Triangle;
45
46 function Get_Square return Lists.Pointer is
47 use Squares;
48 X_Coord : Float;
49 Y_Coord : Float;
50 Side : Float;
51 begin
52 Get(X_Coord);
53 Get(Y_Coord);
54 Get(Side);
55 return new Square'(X_Coord, Y_Coord, Side);
56 end Get_Square;
57
58end Geometry.IO;