Previous topic | Ada Home Page | Index

Package example

Package Specification

package  PLANIMETRY  is

   type length is digits 5 range 0.0 .. 1.0E10;
   type area   is digits 5 range 0.0 .. 1.0E20;

   function area_rectangle (L,H : length) return area;

   function area_circle    (R   : length) return area;

   function area_triangle  (B,H : length) return area;

   function circumf_circle (R   : length) return length;

end PLANIMETRY;

Package Body

package body PLANIMETRY is

   PI : constant := 3.1415926536;


   function area_rectangle (L,H : length) return area is
   begin
      return area(L) * area(H);
   end;


   function area_circle    (R   : length) return area is
   begin
      return PI * area(R) ** 2;
   end;


   function area_triangle  (B,H : length) return area is
   begin
      return area(B) * area(H) / 2.0;
   end;


   function circumf_circle (R   : length) return length is
   begin
      return 2.0 * PI * R;
   end;

end PLANIMETRY;

User Program

    with TEXT_IO, PLANIMETRY;
    procedure main is

        use TEXT_IO;

        ... declarations

        L : PLANIMETRY.length;    -- length
        H : PLANIMETRY.length;    -- height
        A : PLANIMETRY.area;      -- area
        R : PLANIMETRY.length;    -- radius

    begin

        R := ... ;

        A := PLANIMETRY.area_circle (R);

    end main;

Compilation commands

sun ada

  1. adac planimetry_s.a
  2. adac planimetry_b.a
  3. adac main.a
  4. adae main

gnat ada

  1. gnatcc planimetry.ads
  2. gnatcc planimetry.adb
  3. gnatcc main.adb
  4. gnatbl main.ali


Previous topic | Ada Home Page | Index
c-lokan@adfa.oz.au / 20 Feb 96