Эх, жалко что 15х3! Было бы 15х4 можно было бы обойтись без вложенных циклов...
for i:=0 to 1073741823 do....
и 30 битов числа i поделить на 15 кусочков по 2 бита.
Три - это неудобно.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Вот вся программа.
Код: Выделить всё
const
m:array[1..15,1..3] of integer =
((1, 2, 3),(4, 5, 6),(7, 8, 9),(10, 11, 12),(13, 14, 15),
(16, 17, 18),(19, 20, 21),(22, 23, 24),(25, 26, 27),(28, 29, 30),
(31, 32, 33),(34, 35, 36),(37, 38, 39),(40, 41, 42),(43, 44, 45));
var
i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15:byte;
begin
for i1:=1 to 3 do for i2:=1 to 3 do for i3:=1 to 3 do for i4:=1 to 3 do for i5:=1 to 3 do
for i6:=1 to 3 do for i7:=1 to 3 do for i8:=1 to 3 do for i9:=1 to 3 do for i10:=1 to 3 do
for i11:=1 to 3 do for i12:=1 to 3 do for i13:=1 to 3 do for i14:=1 to 3 do for i15:=1 to 3 do begin
writeln(
M[1,i1],'-',M[2,i2],'-',M[3,i3],'-',M[4,i4],'-',M[5,i5],'-',
M[6,i6],'-',M[7,i7],'-',M[8,i8],'-',M[9,i9],'-',M[10,i10],'-',
M[11,i11],'-',M[12,i12],'-',M[13,i13],'-',M[14,i14],'-',M[15,i15]);
end;
end.