irgendwie vermisse ich hier die (mMn) einfachste lösung. naja dann poste ich sie halt mal
Delphi-Quellcode:
type TAufzaehlungsTyp = (a, b, c, d); //oder was auch immer
TAufzaehlungsMenge = set of TAufzaehlungsTyp;
function ElementCount(ASet: TAufzaehlungsMenge): Integer;
var i: TAufzaehlungsTyp;
begin
Result := 0;
for i := Low(TAufzaehlungsTyp) to High(TAufzaehlungsTyp) do
if i in ASet then
Inc(Result);
end;
function MinElement(ASet: TAufzaehlungsMenge): TAufzaehlungsTyp;
var i: TAufzaehlungsTyp;
begin
Result := High(TAufzaehlungsTyp);
for i := High(TAufzaehlungsTyp) downto Low(TAufzaehlungsTyp) do
if i in ASet then
Result := i;
end;
hab ich zwar grade so aus dem Kopf geschrieben, aber das sollte so gehen.
edit: Man sollte sich nur gedanken machen, was MinElement zurückgeben soll, wenn eine leer Menge übergeben wird. (im Moment wird der höchste darstellbare Wert zurückgegeben)
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.