home *** CD-ROM | disk | FTP | other *** search
/ Chip 1995 March / CHIP3.mdf / programm / prog4 / funcpkg.ada < prev    next >
Encoding:
Text File  |  1991-07-01  |  1.2 KB  |  56 lines

  1.                                      -- Chapter 29 - Program 5
  2. generic
  3.    type ITEM is range <>;
  4.    with function Funny_Average(A, B, C : ITEM) return ITEM;
  5. package Dis_Avg is
  6.    procedure Display_Funny_Average(A, B, C : ITEM);
  7. end Dis_Avg;
  8.  
  9.  
  10.  
  11. with Text_IO;
  12. use Text_IO;
  13.  
  14. package body Dis_Avg is
  15.    package Int_IO is new Text_IO.Integer_IO(ITEM);
  16.    use Int_IO;
  17.    procedure Display_Funny_Average(A, B, C : ITEM) is
  18.    Mean : ITEM;
  19.    begin
  20.       Mean := Funny_Average(A, B, C);
  21.       Put("The funny average is ");
  22.       Put(Mean);
  23.       New_Line;
  24.    end Display_Funny_Average;
  25. end Dis_Avg;
  26.  
  27.  
  28.  
  29. with Dis_Avg;
  30.  
  31. procedure FuncPkg is
  32.  
  33.    function R_Average(First, Second, Third : INTEGER)
  34.                                              return INTEGER is
  35.    begin
  36.       return (First + 2 * Second + Third) / 4;
  37.    end R_Average;
  38.  
  39.    package Averages is new Dis_Avg(INTEGER, R_Average);
  40.  
  41. begin
  42.    Averages.Display_Funny_Average(1,3,5);
  43.    Averages.Display_Funny_Average(1,3,17);
  44.    Averages.Display_Funny_Average(3,17,5);
  45. end FuncPkg;
  46.  
  47.  
  48.  
  49.  
  50. -- Result of execution
  51.  
  52. -- The funny average is     3
  53. -- The funny average is     6
  54. -- The funny average is    10
  55.  
  56.