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;