t85_setops.pas 869 B

1234567891011121314151617181920212223
  1. PROGRAM T85;
  2. TYPE
  3. Attr = (A, B, C, D, E) ;
  4. AttrSet = SET OF Attr ;
  5. Rec = RECORD
  6. Status : AttrSet ;
  7. END ;
  8. VAR
  9. M : ARRAY [1..2, 1..2] OF Rec ;
  10. I, J : Integer ;
  11. BEGIN
  12. I := 1 ; J := 1 ;
  13. M [I,J].Status := [B,D] ;
  14. IF M [I,J].Status * [C,D] = [D] THEN WRITELN ('inter') ELSE WRITELN ('bad1') ;
  15. IF M [I,J].Status = [B,D] THEN WRITELN ('eq') ELSE WRITELN ('bad2') ;
  16. IF [B,D] * M [I,J].Status = [B,D] THEN WRITELN ('leftlit') ELSE WRITELN ('bad3') ;
  17. IF M [I,J].Status >= [B] THEN WRITELN ('sup') ELSE WRITELN ('bad4') ;
  18. IF [B] <= M [I,J].Status THEN WRITELN ('sub') ELSE WRITELN ('bad5') ;
  19. M [I,J].Status := M [I,J].Status + [C] ;
  20. IF M [I,J].Status = [B,C,D] THEN WRITELN ('union') ELSE WRITELN ('bad6') ;
  21. M [I,J].Status := M [I,J].Status - [B] ;
  22. IF M [I,J].Status = [C,D] THEN WRITELN ('diff') ELSE WRITELN ('bad7')
  23. END.