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;