home *** CD-ROM | disk | FTP | other *** search
- (* Chapter 8 - Program 1 *)
- program Enumerated_Types;
-
- type Days = (Mon,Tue,Wed,Thu,Fri,Sat,Sun);
- Time_Of_Day = (Morning,Afternoon,Evening,Night);
-
- var Day : Days;
- Time : Time_Of_Day;
- Regular_Rate : real;
- Evening_Premium : real;
- Night_Premium : real;
- Weekend_Premium : real;
- Total_Pay : real;
-
- begin (* main program *)
- Writeln('Pay rate table':33);
- Writeln;
- Write(' DAY Morning Afternoon');
- Writeln(' Evening Night');
- Writeln;
-
- Regular_Rate := 12.00; (* This is the normal pay rate *)
- Evening_Premium := 1.10; (* 10 percent extra for working late *)
- Night_Premium := 1.33; (* 33 percent extra for graveyard *)
- Weekend_Premium := 1.25; (* 25 percent extra for weekends *)
-
- for Day := Mon to Sun do begin
- case Day of
- Mon : Write('Monday ');
- Tue : Write('Tuesday ');
- Wed : Write('Wednesday');
- Thu : Write('Thursday ');
- Fri : Write('Friday ');
- Sat : Write('Saturday ');
- Sun : Write('Sunday ');
- end; (* of case statement *)
-
- for Time := Morning to Night do begin
- case Time of
- Morning : Total_Pay := Regular_Rate;
- Afternoon : Total_Pay := Regular_Rate;
- Evening : Total_Pay := Regular_Rate * Evening_Premium;
- Night : Total_Pay := Regular_Rate * Night_Premium;
- end; (* of case statement *)
-
- case Day of
- Sat : Total_Pay := Total_Pay * Weekend_Premium;
- Sun : Total_Pay := Total_Pay * Weekend_Premium;
- end; (* of case statement *)
-
- Write(Total_Pay:10:2);
- end; (* of "for Time" loop *)
- Writeln;
- end; (* of "for Day" loop *)
- end. (* of main program *)
-
-
-
-
- { Result of execution
-
- Pay rate table
-
- DAY Morning Afternoon Evening Night
-
- Monday 12.00 12.00 13.20 15.96
- Tuesday 12.00 12.00 13.20 15.96
- Wednesday 12.00 12.00 13.20 15.96
- Thursday 12.00 12.00 13.20 15.96
- Friday 12.00 12.00 13.20 15.96
- Saturday 15.00 15.00 16.50 19.95
- Sunday 15.00 15.00 16.50 19.95
-
- }
-
-