type
TipoLettera = 'A'..'Z';
TipoInsLettere = array [TipoLettera] of boolean;
procedure InitInsLettere (var ins: TipoInsLettere);
var
ch : TipoLettera;
begin
for ch := 'A' to 'Z' do
ins[ch] := FALSE
end;
function TestInsiemeVuoto (ins: TipoInsLettere): boolean;
var
ch : TipoLettera;
begin
TestInsiemeVuoto := TRUE;
for ch := 'A' to 'Z' do
if ins[ch] then
TestInsiemeVuoto := FALSE
end;
procedure InserisciLettera (var ins: TipoInsLettere; lettera: TipoLettera);
begin
ins[lettera] := TRUE
end;
procedure EliminaLettera (var ins: TipoInsLettere; lettera: TipoLettera);
begin
ins[lettera] := FALSE
end;
function VerificaAppartenenza (ins : TipoInsLettere;
lettera : TipoLettera): boolean;
begin
VerificaAppartenenza := ins[lettera]
end;
procedure Unione (ins1, ins2: TipoInsLettere; var ins_unione: TipoInsLettere);
var
ch : TipoLettera;
begin
for ch := 'A' to 'Z' do
ins_unione[ch] := ins1[ch] or ins2[ch]
end;
procedure Intersezione (ins1, ins2: TipoInsLettere; var ins_int: TipoInsLettere);
var
ch : TipoLettera;
begin
for ch := 'A' to 'Z' do
ins_int[ch] := ins1[ch] and ins2[ch]
end;
procedure Complemento (ins: TipoInsLettere; var ins_compl: TipoInsLettere);
var
ch : TipoLettera;
begin
for ch := 'A' to 'Z' do
ins_compl[ch] := not ins[ch]
end;