Yurttas/PL/IL/Ada-95/OO/GEO/geometry-io.adb

Revision as of 06:14, 5 November 2013 by MassBot1 (talk | contribs) (Created page with "<syntaxhighlight lang="ada" line start="1" enclose="div">with Ada.Text_IO; use Ada.Text_IO; with Ada.Float_Text_IO; use Ada.Float_Text_IO; with Geometry.Circles; with Geomet...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
 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;