Por favor una rutina combinatoria

181 views
Skip to first unread message

pepemil

unread,
Mar 18, 2012, 12:42:01 PM3/18/12
to Comunidad de Visual Foxpro en Español
Hola de nuevo estoy con este problema y de verdad me urge...

necesito hacer una rutina donde pueda combinar de 20 a 35 numeros
pares ( 00 al 99 pudiendo modificar la cantidad a combinar a menos )
de dos en dos 12 -22 -35 ,,,,

entro por ejemplo 10- 12- 24- 78- 99 ... hasta x numeros menos de 99 y
debería de combinarlos entre si dando resultados de 6 cifras.

pongo un ejemplo con 8 numeros para no hacerlo largo..

10 12 34 35 38 40 45 87 99

10 12 34 35 38 40
10 12 34 35 38 45
10 12 34 35 38 87
10 12 34 35 38 99

despues cambiaria el 10 y vuelta empèzar haci con todos, no estoy
claro si con una permutacion se podría hacer o combinatorias y
permutas son iguales ?

de antemano gracias

pepemil

Carlos Miguel FARIAS

unread,
Mar 19, 2012, 7:36:32 AM3/19/12
to publice...@googlegroups.com
Lo puedes hacer con 6 bucles anidados...
En un arreglo colocas los numeros ingresados
En un cursor o tabla colocas los numeros generados
Te aclaro que la cantidad es grande, porque son en tu caso 9 tomados de 6
5! * 4! * 3! * 2!

USE Destino && tabla o cursor con 6 columnas
LOCAL ARRAY laNumeros[2], laDestino[6]
laNumeros = ALINES( "10 12 34 35 38 40 45 87 99", " " )
lnQ = ALEN( laNumeros )
FOR I = 1 TO lnQ
FOR J = I+1 TO lnQ
FOR K = I+1 TO lnQ
FOR L= I+1 TO lnQ
FOR M = I+1 TO lnQ
FOR N = I+1 TO lnQ
laDestino[1] = laNumeros[I]
laDestino[2] = laNumeros[J]
laDestino[3] = laNumeros[K]
laDestino[4] = laNumeros[L]
laDestino[5] = laNumeros[M]
laDestino[6] = laNumeros[N]
APPEND BLANK
SCATTER FROM ARRAY laDestino
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR

Proba y nos contas.

Saludos: Miguel, La Pampa (RA)


El 18/03/12, pepemil <sistemas...@yahoo.com> escribió:

pepemil

unread,
Mar 19, 2012, 2:49:04 PM3/19/12
to Comunidad de Visual Foxpro en Español
Hola bueno gracias por la atencion bien cree una tabla llamada destino
de 6 de 2 pero la funcion no me tira bien me
da estos errores,




disculpa por ser tan patoso :)




USE Destino && tabla o cursor con 6 columnas
LOCAL ARRAY laNumeros[2], laDestino[6]
laNumeros = ALINES( "10 12 34  35 38 40 45 87 99", " " ) *****    "
falta algun operando " ignoro y sigo corriendo
lnQ = ALEN( laNumeros )
FOR I = 1 TO lnQ
   FOR J = I+1 TO lnQ
      FOR K = I+1 TO lnQ
          FOR L= I+1 TO lnQ
            FOR M = I+1 TO lnQ
               FOR N = I+1 TO lnQ
                  laDestino[1] = laNumeros[I] *****> " falta algun
operando "
                  laDestino[2] = laNumeros[J]
                  laDestino[3] = laNumeros[K]
                  laDestino[4] = laNumeros[L]
                  laDestino[5] = laNumeros[M]
                  laDestino[6] = laNumeros[N]
                  APPEND BLANK
                  SCATTER FROM ARRAY  LADestino ****comamdo tiene
frase no reconocida
               ENDFOR
            ENDFOR
         ENDFOR
      ENDFOR
   ENDFOR
ENDFOR

On 19 mar, 12:36, Carlos Miguel FARIAS <carlosmiguelfar...@gmail.com>
wrote:
> El 18/03/12, pepemil <sistemasestef...@yahoo.com> escribió:

Víctor Hugo Espínola Domínguez

unread,
Mar 19, 2012, 5:09:12 PM3/19/12
to publice...@googlegroups.com
Disculpa por meter la cuchara, la instrucción debe quedar así:
= ALINES( laNumeros,  "10 12 34 35 38 40 45 87 99", " "  )
Reemplaza SCATTER por GATHER.

Saludos, Víctor.

pepemil

unread,
Mar 19, 2012, 5:35:38 PM3/19/12
to Comunidad de Visual Foxpro en Español
LOCAL ARRAY laNumeros[2], laDestino[6] ----me da este error "
redifinicion no valida no funciona ....

On 19 mar, 22:09, Víctor Hugo Espínola Domínguez <vichus...@gmail.com>
wrote:
> Disculpa por meter la cuchara, la instrucción debe quedar así:
> = ALINES( laNumeros,  "10 12 34 35 38 40 45 87 99", " "  )
> Reemplaza SCATTER por GATHER.
>
> Saludos, Víctor.
>

Víctor Hugo Espínola Domínguez

unread,
Mar 19, 2012, 7:28:04 PM3/19/12
to publice...@googlegroups.com
Qué versión de VFP usas?

Carlos Miguel FARIAS

unread,
Mar 19, 2012, 8:01:06 PM3/19/12
to publice...@googlegroups.com
Si sería un scatter en lugar de un gather, las otras fijate en el manual, me concentre en solucionar las combinaciones, los otros errores depende de que otro codigo hayas involucrado.
Cuando escribi la respuesta no tenia un editor fox si no que lo escribi "de dorapa", ademas hoy a la mañana teniamos mucho problema de comunicación en la web (posiblemente una tormenta electrica que sacudia todo).
Saludos: Miguel, Santa Rosa (LP)

pepemil

unread,
Mar 20, 2012, 12:37:20 AM3/20/12
to Comunidad de Visual Foxpro en Español
Hola

bueno uso la version 7

gracias

On 20 mar, 00:28, Víctor Hugo Espínola Domínguez <vichus...@gmail.com>
wrote:
> Qué versión de VFP usas?
>

pepemil

unread,
Mar 20, 2012, 1:39:39 AM3/20/12
to Comunidad de Visual Foxpro en Español
Bien mas o menos ya funciona pero en -----> SCATTER FROM ARRAY
laDestino ------ me da error----> " comando o clave no reconocida " y
solo me llena la base de datos en blanco y he puesto GATHER y sigue
dandome el mismo error

Carlos Miguel FARIAS

unread,
Mar 20, 2012, 7:53:07 AM3/20/12
to publice...@googlegroups.com
La tabla esta definida con campos numéricos?
Entonces, al hacer el alines, creo los elementos del array del tipo texto.
Entonces, antes del bucle de combinación, debes hacer un bucle para
pasar esos datos a formato numerico.

FOR I = 1 TO lnQ
laNumeros[I] )= VAL( laNumeros[I] )
ENDFOR

El 20/03/12, pepemil <sistemas...@yahoo.com> escribió:

pepemil

unread,
Mar 20, 2012, 2:54:32 PM3/20/12
to Comunidad de Visual Foxpro en Español
Gracias pero tampoco : ahora carlos a mi me gustaría si no es molestia
saber cual es la forma en que ideaste las combinaciones o si pudiieras
explicar la rutina a ver si la entiendo y consigo que me funcione :)

saludos y gracias por tu atencion


On 20 mar, 12:53, Carlos Miguel FARIAS <carlosmiguelfar...@gmail.com>
wrote:
> La tabla esta definida con campos numéricos?
> Entonces, al hacer el alines, creo los elementos del array del tipo texto.
> Entonces, antes del bucle de combinación, debes hacer un bucle para
> pasar esos datos a formato numerico.
> FOR I = 1 TO lnQ
>    laNumeros[I] )= VAL( laNumeros[I] )
> ENDFOR
>
> El 20/03/12, pepemil <sistemasestef...@yahoo.com> escribió:

Víctor Hugo Espínola Domínguez

unread,
Mar 20, 2012, 5:56:30 PM3/20/12
to publice...@googlegroups.com
Ahí va el programa de Miguel adaptado para VFP6.

Saludos, Víctor.
arreglos.prg_

Carlos Miguel FARIAS

unread,
Mar 20, 2012, 6:26:15 PM3/20/12
to publice...@googlegroups.com
clarius, accipere aqua

pepemil

unread,
Mar 21, 2012, 12:54:12 AM3/21/12
to Comunidad de Visual Foxpro en Español
Perfecto funciona :)

Gracias mil por la ayuda a todos

pepemil

On 20 mar, 22:56, Víctor Hugo Espínola Domínguez <vichus...@gmail.com>
wrote:
> Ahí va el programa de Miguel adaptado para VFP6.
>
> Saludos, Víctor.
>
>  arreglos.prg_
> 1 KVerDescargar
Reply all
Reply to author
Forward
0 new messages