Schreib dir als erstes eine
Unterfunktion, die deine Menge in einen string übersetzen kann:
Delphi-Quellcode:
const
MAXPLATZ = 20; // Konstanten nur in GROSSBUCHSTABEN
type
TMenge = set of 1..maxplatz; // Datentypen beginnen mit "T"
...
function MengeAsString(x:TMenge):string;
var
n : Integer;
Begin
For a:=1 to maxplatz do
if a in x then
Begin
Result:=Result+inttostr(n)+' ';
End;
End;
Der Rest ist einfach, da du diese Funktion mehrfach verwenden kannst.
Du willst dann sicher auch die Plätze ausgeben, die
nicht in der Menge sind,oder?
Kein Problem, man erweitert die Funktion:
Delphi-Quellcode:
function MengeAsString(x:TMenge; Rest:Boolean):string;
var
n : Integer;
enthalten : Boolean;
Begin
For a:=1 to maxplatz do
begin
enthalten := a in x;
if (Rest and not enthalten) or (not Rest and enthalten) then // könnte auch durch XOR ersetzt werden
Begin
Result:=Result+inttostr(n)+' ';
End;
end;