Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Wieder mal Kombinationen

  Alt 21. Mär 2013, 10:13
Na, ganz einfach: 8 Variablen und jede kann 5 Werte annehmen. Dann nimm ein Array mit 8 Elementen. Jedes Element kann einen der 5 Werte annehmen. Anfangen tust Du mit (0,0,0,0,0,0,0,0). Dann (1,0,0,0,0,0,0,0)... nach (4,0,0,0,0,0,0,0) wird es interessant: (0,1,0,0,0,0,0,0)

So kann man das in Delphi machen.
Delphi-Quellcode:
Type TDigitArray = Array [0..7] Of Byte;

Function AddOne(Var Digits : TDigitArray) : Boolean;
Var
  i : Integer;

Begin
  for i := 0 to 7 do
    if Digits[i] = 4 then
      Digits[i] = 0
    else begin
      inc (Digits[i]);
      Result := True;
      exit;
    end;
  Result := False;
end;

Procedure ShowData (Digits :TDigitArray);
Const
  Values : Array [0..4] Of String = ('0000', '1000', '0100', '1010', '0101');

Var
  i : Integer;

Begin
  For i:=0 to 7 do Write(Values[Digits[i]], ' ');
  Writeln;
End;

Procedure CountThemAll;
Var
  a : TDigitArray;

Begin
  FillChar(a, SizeOf(a), 0);
  Repeat
    ShowData(a);
  Until Not AddOne(a);
End;
  Mit Zitat antworten Zitat