Einzelnen Beitrag anzeigen

Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Kleinster Wert in einem Set

  Alt 8. Mai 2006, 23:51
Hey there

Hier zwei allgemeine Lösungen:

Delphi-Quellcode:
function ElemCount(const ASet; const Size: Cardinal): Byte;
var
  X, I: Integer;
begin
  Result:= 0;
  X:= Cardinal(ASet);
  for I:= 0 to Pred(Size shl 3) do
  begin
    if Odd(X) then Inc(Result);
    X:= X shr 1;
  end;
end;

function SmallestElem(const ASet; const Size: Cardinal; out Elem): Boolean;
var
  X, I: Integer;
begin
  Result:= False;
  X:= Cardinal(ASet);
  for I:= 0 to Pred(Size shl 3) do
  begin
    if Odd(X) then
    begin
      Byte(Elem):= I;
      Result:= True;
      Exit;
    end;
    X:= X shr 1;
  end;
end;
Gruss
Shaman
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat