1(* 2 * Copyright (c) 1980, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 * 7 * @(#)setest.p 8.1 (Berkeley) 06/06/93 8 *) 9 10program setest(input,output); 11 12type 13aset = set of 1..41; 14sint = 0 .. 30000; 15 16var 17set1, set2 :aset; 18ptr :^aset; 19i :sint; 20 21begin 22writeln('Enter a number between 2 and 41.'); 23writeln('Numbers 2, 10..12, 17, and 37 print "false" all others "true".'); 24i := ord(input^); 25read(i); 26writeln('i =',i:2); 27write('The set opcodes work :'); 28set1 := [5..15]; 29set2 := [10]; 30if set1 * [23] = [] then 31write(' []') 32else 33write(false:6); 34if set1-set2 <> [5..9,11..15] then 35 write(false:6); 36new(ptr); 37ptr^ := [2,10,37,i]; 38set1 := ptr^ - [1..3]; 39set2 := ptr^ + [10..12,17]; 40if ptr^ * set1 = set1 then 41 write(' mul plus minus') 42else 43 write(false:6); 44if (17 in [10..13,15..20,25..30]) and 45 (not (22 in [1..17,36..41])) then 46 write(' in') 47else 48 write(false:6); 49if (set1 <> set2) and 50 (set1 < set2) and 51 (set2 > set1) and 52 (set2 >= ptr^) and 53 (set1 <= set2) and 54 (set1 >= set1) and 55 (set1 <= set1) and 56 (card(set2) = 7) then 57 write(' and rel') 58else 59 write(false:6); 60if (set1 <> set1) or 61 (set2 < set1) or 62 (set1 > set2) or 63 (ptr^ >= set2) or 64 (set2 <= set1) or 65 (set1 = set2) or 66 (17 in set2) then 67 writeln(' or rel') 68else 69 writeln(false:6); 70i := pred(i); 71i := (i + i) div i; 72end. 73