program test(Output); const Three = 2 + 1; NULL = NIL; PI = 3.14159; Plus = '+'; Fred = 'Fred'; type Week = ( Mon, Tue, Wed, Thu, Fri, Sat, Sun ); Weekday = Mon..Fri; Weekend = Sat..Sun; type Count = ( Zero, One, Two, Ten = 10, Eleven=10 ); type RR = ( A, B, C ); var day : Week; wday : Weekday; wend : Weekend; lunch : array[Week] of Integer; cnt : Count; // procedure P1(v:Week); // begin // Writeln('Week'); // end; procedure P1(v:Weekday); begin Writeln('Weekday'); end; procedure P1(v:RR); begin Writeln('RR'); end; begin day := Sat; wday := day; // invalid but allowed wend := day; // valid day := Mon; wday := day; // valid wend := day; // invalid but allowed day := wday; // valid day := wend; // valid if day = wday then Writeln( day ); if day <= Fri then Writeln( 'weekday'); case day of Mon..Fri : Writeln( 'weekday'); Sat..Sun : Writeln( 'weekend') end; day := Mon; while day <= Sat do begin Write( day, ' ' ); day := succ( day ); end; Writeln(); for day := Mon to Sat do begin Write( day, ' ' ); end; Writeln(); for day := Mon to Sat do lunch[day] := ord(day) * 10; for day := Mon to Sun do Write( lunch[day], ' ' ); Writeln(); for cnt := Zero to Eleven do begin Write( ord( cnt ), ' ' ); end; day := Tue; P1( day ); Writeln(); case (day) of Mon: writeln('Excellent!' ); Tue: writeln('Well done' ); end; end. { Local Variables: } { tab-width: 4 } { pascal-indent-level: 4 } { compile-command: "fpc test.pas" } { End: }