Unit halmu2; {Logikai Tomb, mint halmaz} INTERFACE Type Tszin=(piros, feher, zold, kek, barna, sarga, fekete); Type Thalmaz=array [piros..fekete] of boolean; Procedure Halmazba (var halmaz:Thalmaz; elem:Tszin); {Fuggveny} Procedure Unio (var halmaz1:Thalmaz; halmaz2:Thalmaz); {Fuggveny!!} Procedure Metszet (var halmaz1:Thalmaz; halmaz2:Thalmaz); {Fuggveny!!} Procedure Kulonbseg (var halmaz1:Thalmaz; halmaz2:Thalmaz); {Fuggveny!!} Function Eleme_e (halmaz:Thalmaz; elem:Tszin):boolean; Procedure Beolvas (var halmaz:Thalmaz); Procedure Kiiras (var halmaz:Thalmaz); {Kell, mert a halmaztipus nem standard!} IMPLEMENTATION Const SzTszin:array [piros..fekete] of string=('piros', 'feher', 'zold', 'kek', 'barna', 'sarga', 'fekete'); Procedure Halmazba (var halmaz:Thalmaz; elem:Tszin); Begin halmaz[elem]:=true; End; Procedure Unio (var halmaz1:Thalmaz; halmaz2:Thalmaz); Var i:Tszin; Begin For i:=piros to fekete do halmaz1[i]:=halmaz1[i] or halmaz2[i]; End; Procedure Metszet (var halmaz1:Thalmaz; halmaz2:Thalmaz); Var i:Tszin; Begin For i:=piros to fekete do halmaz1[i]:=halmaz1[i] and halmaz2[i]; End; Procedure Kulonbseg (var halmaz1:Thalmaz; halmaz2:Thalmaz); Var i:Tszin; Begin For i:=piros to fekete do Begin halmaz1[i]:=halmaz1[i] and halmaz2[i]; If halmaz1[i] and (not halmaz2[i]) then halmaz1[i]:=true else if halmaz1[i] and halmaz2[i] then halmaz1[i]:=false; End; End; Function Eleme_e (halmaz:Thalmaz; elem:Tszin):boolean; Var i:Tszin; Begin For i:=piros to fekete do Begin if elem=halmaz[i] then eleme_e:=true else eleme_e:=false; End; End; Procedure Beolvas (var halmaz:Thalmaz); Begin End; Procedure Kiiras (var halmaz:Thalmaz); Begin End; End.