1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- { Old file: tbs0046.pp }
- { problems with sets with values over 128 due to sign extension (already fixed ) but also for SET_IN_BYTE }
- program test;
- {$R-}
- {$ifdef fpc}
- {$ifdef go32v2}
- uses
- dpmiexcp;
- {$endif}
- {$endif}
- type byteset = set of byte;
- bl = record i,j : longint;
- end;
- const set1 : byteset = [1,50,220];
- set2 : byteset = [55];
- var i : longint;
- b : bl;
- function bi : longint;
- begin
- bi:=b.i;
- end;
- begin
- set1:=set1+set2;
- writeln('set 1 = [1,50,55,220]');
- i:=50;
- if i in set1 then
- writeln(i,' is in set1');
- i:=220;
- if i in set1 then
- writeln(i,' is in set1');
- i:=$100+220;
- if i in set1 then
- writeln(i,' is in set1');
- i:=-35;
- if i in set1 then
- writeln(i,' is in set1');
- b.i:=50;
- i:=$100+220;
- if i in [50,220] then
- writeln(i,' is in [50,220]');
- if Bi in [50,220] then
- writeln(b.i,' is in [50,220]');
- b.i:=220;
- if bi in [50,220] then
- writeln(b.i,' is in [50,220]');
- B.i:=-36;
- if bi in [50,220] then
- writeln(B.i,' is in [50,220]');
- end.
|