home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PASSRC.ZIP / ENTYPES.PAS < prev    next >
Pascal/Delphi Source File  |  1991-02-04  |  2KB  |  77 lines

  1.                                 (* Chapter 8 - Program 1 *)
  2. program Enumerated_Types;
  3.  
  4. type Days = (Mon,Tue,Wed,Thu,Fri,Sat,Sun);
  5.      Time_Of_Day = (Morning,Afternoon,Evening,Night);
  6.  
  7. var  Day              : Days;
  8.      Time             : Time_Of_Day;
  9.      Regular_Rate     : real;
  10.      Evening_Premium  : real;
  11.      Night_Premium    : real;
  12.      Weekend_Premium  : real;
  13.      Total_Pay        : real;
  14.  
  15. begin  (* main program *)
  16.    Writeln('Pay rate table':33);
  17.    Writeln;
  18.    Write('  DAY        Morning  Afternoon');
  19.    Writeln('  Evening    Night');
  20.    Writeln;
  21.  
  22.    Regular_Rate := 12.00;     (* This is the normal pay rate *)
  23.    Evening_Premium := 1.10;   (* 10 percent extra for working late *)
  24.    Night_Premium := 1.33;     (* 33 percent extra for graveyard *)
  25.    Weekend_Premium := 1.25;   (* 25 percent extra for weekends *)
  26.  
  27.    for Day := Mon to Sun do begin
  28.       case Day of
  29.         Mon : Write('Monday   ');
  30.         Tue : Write('Tuesday  ');
  31.         Wed : Write('Wednesday');
  32.         Thu : Write('Thursday ');
  33.         Fri : Write('Friday   ');
  34.         Sat : Write('Saturday ');
  35.         Sun : Write('Sunday   ');
  36.       end;  (* of case statement *)
  37.  
  38.       for Time := Morning to Night do begin
  39.          case Time of
  40.            Morning   : Total_Pay := Regular_Rate;
  41.            Afternoon : Total_Pay := Regular_Rate;
  42.            Evening   : Total_Pay := Regular_Rate * Evening_Premium;
  43.            Night     : Total_Pay := Regular_Rate * Night_Premium;
  44.          end;  (* of case statement *)
  45.  
  46.          case Day of
  47.            Sat : Total_Pay := Total_Pay * Weekend_Premium;
  48.            Sun : Total_Pay := Total_Pay * Weekend_Premium;
  49.          end;  (* of case statement *)
  50.  
  51.          Write(Total_Pay:10:2);
  52.       end;  (* of "for Time" loop *)
  53.       Writeln;
  54.    end; (* of "for Day" loop *)
  55. end.  (* of main program *)
  56.  
  57.  
  58.  
  59.  
  60. { Result of execution
  61.  
  62.                     Pay rate table
  63.  
  64.  DAY          Morning  Afternoon   Evening     Night
  65.  
  66.  Monday        12.00     12.00      13.20      15.96
  67.  Tuesday       12.00     12.00      13.20      15.96
  68.  Wednesday     12.00     12.00      13.20      15.96
  69.  Thursday      12.00     12.00      13.20      15.96
  70.  Friday        12.00     12.00      13.20      15.96
  71.  Saturday      15.00     15.00      16.50      19.95
  72.  Sunday        15.00     15.00      16.50      19.95
  73.  
  74. }
  75.  
  76.  
  77.