Unit halmazu; Interface Type Tszin=(piros,feher,zold,kek,barna,sarga,fekete); Thalmaz=set of Tszin; Procedure halmazba (var halmaz:Thalmaz;elem:Tszin); {fuggveny!!} Procedure unio(var halmaz1:Thalmaz; halmaz2:Thalmaz); Procedure metszet(var halmaz1:Thalmaz; halmaz2:Thalmaz); Procedure kulonbseg(var halmaz1:Thalmaz; halmaz2:Thalmaz); Function elem_e(var halmaz:Thalmaz;elem:Tszin):boolean; Procedure beolvas(var halmaz:thalmaz); Procedure kiiras(halmaz:thalmaz); Implementation Const SzTszin:array[piros..fekete] of string=('piros','feher','zold','kek','barna','sarga','fekete'); Procedure halmazba (var halmaz:Thalmaz;elem:Tszin); begin halmaz:=halmaz+[elem]; end; Procedure unio(var halmaz1:Thalmaz; halmaz2:Thalmaz); begin halmaz1:=halmaz1+halmaz2; end; Procedure metszet(var halmaz1:Thalmaz; halmaz2:Thalmaz); begin halmaz1:=halmaz1*halmaz2; end; Procedure kulonbseg(var halmaz1:Thalmaz; halmaz2:Thalmaz); begin halmaz1:=halmaz1-halmaz2; end; Function elem_e(var halmaz:Thalmaz;elem:Tszin):boolean; begin elem_e:=elem in halmaz; end; Procedure beolvas(var halmaz:thalmaz); var c:char; be:string; begin halmaz:=[]; repeat writeln('A halmaz kovetkezo eleme: '); readln(be); halmazba(halmaz,elem); readln(c); until c='*'; end; Procedure kiiras(halmaz:thalmaz); var elem:Tszin; ures:boolean; begin ures:=true; for elem:=low(Tszin) to high(Tszin) do if elem in thalmaz then begin write(sztszin[elem]); ures:=false; end; if ures then writeln('Ures halmaz'); end; end.