procedure imprimir_array (arr: array of integer; primero: integer);
var i : integer;
begin
for i:=primero to 10 do
write (arr[i], ' ');
end;
procedure combij (var arr: array of integer; num, primero: integer);
var n, temp, i : integer;
begin
n := arr[primero];
repeat
begin
imprimir_array(arr, primero); (*imprime el array empezando por primero*)
if num > 2 then
combij (arr, num-1, primero +1);
(*rotacion del array:*)
temp := arr[tam];
for i := tam downto primero+1 do
arr[i] := arr[i-1];
arr[primero] := temp;
(*array rotado*)
end;
until (arr[primero] <> n);
end;