fork download
  1. Type
  2. Day = (mon,tue,wed,thu,fri,sat,sun);
  3. Days = set of Day;
  4.  
  5. Procedure PrintDays(W : Days);
  6. Const
  7. DayNames : array [Day] of String[3]
  8. = ('mon','tue','wed','thu',
  9. 'fri','sat','sun');
  10. Var
  11. D : Day;
  12. S : String;
  13. begin
  14. S:='';
  15. For D:=Mon to Sun do
  16. if D in W then
  17. begin
  18. If (S<>'') then S:=S+',';
  19. S:=S+DayNames[D];
  20. end;
  21. Writeln('[',S,']');
  22. end;
  23.  
  24. Var
  25. W : Days;
  26.  
  27. begin
  28. W:= [low(Days)..high(Days)]; // all elements of the set or inverse of the empty set []
  29. PrintDays(W);
  30. W:=[mon,tue]+[wed,thu,fri]; // equals [mon,tue,wed,thu,fri]
  31. PrintDays(W);
  32. W:=[mon,tue,wed]-[wed]; // equals [mon,tue]
  33. PrintDays(W);
  34. W:=[mon,tue,wed]-[wed,thu]; // also equals [mon,tue]
  35. PrintDays(W);
  36. W:=[mon,tue,wed]*[wed,thu,fri]; // equals [wed]
  37. PrintDays(W);
  38. W:=[mon,tue,wed]><[wed,thu,fri]; // equals [mon,tue,thu,fri]
  39. PrintDays(W);
  40. end.
Success #stdin #stdout 0s 4512KB
stdin
Standard input is empty
stdout
[mon,tue,wed,thu,fri,sat,sun]
[mon,tue,wed,thu,fri]
[mon,tue]
[mon,tue]
[wed]
[mon,tue,thu,fri]