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

  1.                                        -- Chapter 19 - Program 5
  2. with Text_IO;
  3. use Text_IO;
  4.  
  5. procedure UnaryOp is
  6.  
  7.    package Int_IO is new Text_IO.Integer_IO(INTEGER);
  8.    use Int_IO;
  9.  
  10.    type ARY_INT is array(1..6) of INTEGER;
  11.  
  12.    Crowd, Group1, Group2    : ARY_INT;
  13.  
  14.    function "+"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is
  15.    Temp_Array : ARY_INT;
  16.    begin
  17.       for Index in ARY_INT'RANGE loop
  18.          Temp_Array(Index) := In_Array1(Index) + In_Array2(Index);
  19.       end loop;
  20.       return Temp_Array;
  21.    end "+";
  22.  
  23.    function "-"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is
  24.    Temp_Array : ARY_INT;
  25.    begin
  26.       for Index in ARY_INT'RANGE loop
  27.          Temp_Array(Index) := In_Array1(Index) - In_Array2(Index);
  28.       end loop;
  29.       return Temp_Array;
  30.    end "-";
  31.  
  32.    function "+"(In_Array : ARY_INT) return ARY_INT is
  33.    begin
  34.       return In_Array;
  35.    end "+";
  36.  
  37.    function "-"(In_Array : ARY_INT) return ARY_INT is
  38.    Temp_Array : ARY_INT;
  39.    begin
  40.       for Index in ARY_INT'RANGE loop
  41.          Temp_Array(Index) := - In_Array(Index);
  42.       end loop;
  43.       return Temp_Array;
  44.    end "-";
  45.  
  46. begin
  47.  
  48.    Group1 := (12, 17, -1, 3, -100, 5);
  49.    Group2 := (13, -2, 22, 1, 1242, -12);
  50.  
  51.    Crowd := Group1 + Group2;
  52.    Crowd := Group1 - Group2;
  53.    Crowd := +Group1;
  54.    Crowd := -Group1;
  55.    Crowd := (Group1 + Group2) - (-Group1 + Group2);
  56.  
  57. end UnaryOp;
  58.  
  59.  
  60.  
  61.  
  62. -- Result of execution
  63.  
  64. -- (There is no output from this program)
  65.  
  66.