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

  1.                                        -- Chapter 20 - Program 6
  2. with Text_IO;
  3. use Text_IO;
  4.  
  5. procedure Variant2 is
  6.  
  7.    package Int_IO is new Text_IO.Integer_IO(INTEGER);
  8.    use Int_IO;
  9.  
  10.    type POWER is (GAS, STEAM, DIESEL, NONE);
  11.  
  12.    type VEHICLE (Engine : POWER := NONE) is
  13.       record
  14.          Model_Year : INTEGER range 1888..1992;
  15.          Wheels     : INTEGER range 2..18;
  16.          case Engine is
  17.             when GAS    => Cylinders   : INTEGER range 1..16;
  18.             when STEAM  => Boiler_Size : INTEGER range 5..22;
  19.                            Coal_Burner : BOOLEAN;
  20.             when DIESEL => Fuel_Inject : BOOLEAN;
  21.             when NONE   => Speeds      : INTEGER range 1..15;
  22.          end case;
  23.       end record;
  24.  
  25.    Ford, Truck, Schwinn : VEHICLE;
  26.    Stanley              : VEHICLE(STEAM);
  27.  
  28. begin
  29.  
  30.    Ford := (GAS, 1956, 4, 8);
  31.    Ford := (DIESEL, 1985, Fuel_Inject => TRUE, Wheels => 8);
  32.  
  33.    Truck := (DIESEL, 1966, 18, TRUE);
  34.    Truck.Model_Year := 1968;
  35.    Truck.Fuel_Inject := FALSE;
  36.  
  37.    Stanley.Model_Year := 1908;    -- This is constant as STEAM
  38.    Stanley.Wheels := 4;
  39.    Stanley.Boiler_Size := 21;
  40.    Stanley.Coal_Burner := FALSE;
  41.  
  42.    Schwinn.Speeds := 10;          -- This defaults to NONE
  43.    Schwinn.Wheels := 2;
  44.    Schwinn.Model_Year := 1985;
  45.  
  46. end Variant2;
  47.  
  48.  
  49.  
  50.  
  51. -- Result of Execution
  52.  
  53. --   (No output when executed)
  54.  
  55.