Actualizar código de combinaciones numericas

373 views
Skip to first unread message

pepemil

unread,
Feb 7, 2012, 7:51:18 AM2/7/12
to Comunidad de Visual Foxpro en Español
Hola a todos como deje el foxpro hace algunos años por trabajo y ahora
me quiero actualizar (estoy muiy quemado) ejjeje hice un programa que
me combinaba numeros pero a traves de get y a base variables por cada
una tipo

a=10
b=20 y a si hasta 35 get (uff que trabajon jejej hacer una por una )

y despues las enviaba a una funcion que me combinaba todos entre todos
en resultados de 6 numeros o combinaciones y lo entraba en una tabla
libre.bueno quein me puede enseñar a hacerlo desde un form o me de
pistas donde debo buscar


agardecido

Pepemil

ZeRoberto

unread,
Feb 7, 2012, 2:53:21 PM2/7/12
to publice...@googlegroups.com
No entiendo pero deseas meter varios parametros en un numero como el del Messagebox
 
#DEFINE PROTEGIDO 1
#DEFINE OCULTO       2
#DEFINE SISTEMA      4
#DEFINE ARCHIVO      8
 
lnParmetros = PROTEGIDO + OCULTO
 
o
 
lnParmetros = BITOR(PROTEGIDO, OCULTO)
 
Para sacar los parametros
 
If BITAND(lnParametros, PROTEGIDO) = PROTEGIDO
  ? "SI"
EndIf
 
Mas o menos es asi dejame revisar mis archivos :D
 
Saludos

Roberto Reátegui Kanashiro

unread,
Feb 16, 2012, 11:21:53 AM2/16/12
to Comunidad de Visual Foxpro en Español
Bueno segun lo que me explicaste hice esto, espero que sea lo que
buscabas

***************************************************

Clear

Dimension laResult[1]
lnCount = Permuta(@laResult, "AABBCC", 2)

For lnItem = 1 To lnCount
? Int(lnItem), laResult[lnItem], Transform(laResult[lnItem], "@R
##-##-##")
EndFor

Return

Function Permuta(taArray, tcString, tnSize)
Local lnCount, lnIndex, lcLeft, lcRight
tnSize = Iif(Vartype(tnSize) # "N", 1, tnSize)
lnCount = Int(Len(tcString) / tnSize)
lnCount = Iif(lnCount = 0, 1, lnCount)
Dimension taArray[1]
taArray[1] = tcString
If lnCount > 1
For lnIndex = 2 To lnCount
lcLeft = Left(tcString, tnSize)
lcRight = Substr(tcString, tnSize + 1)
tcString = lcRight + lcLeft
Dimension taArray[lnIndex]
taArray[lnIndex] = tcString
EndFor
EndIf
Return (lnCount)

pepemil

unread,
Feb 21, 2012, 4:04:11 PM2/21/12
to Comunidad de Visual Foxpro en Español
Gracias a mi amigo Roberto por su ayuda ahora pongo su rutina bien
malograda por mi jjeje.... bien ahora cuando la guardo en la base de
datos no se como hacer que guarde solo los registros donde no salga
nin gun numero mayor que 50 ejemplo esto es lo que me guarda en la
base de datos . lo primero y lo segundo es lo que no se como hacer

@r 05-91-11-21-15-61-35-62-29-03
@r 09-01-12-31-16-73-36-72-30-13
@r 10-11-13-51-17-53-27-93-31-33
@r 11-21-15-30-35-36-29-03-33-43
@r 12-31-16-26-36-22-30-13-34-44
@r 13-51-17-53-27-93-31-33-35-73


@r 05-91-11-21-15-61-35-62-29-03 ---------no me lo debe de guardar o
mostrar
> @r 09-01-12-31-16-73-36-72-30-13 ---------no
> @r 10-11-13-51-17-53-27-93-31-33 ---------no
> @r 11-21-15-30-35-36-29-03-33-43----------si ----este resultado es el que debe de guardar
> @r 12-31-16-26-36-22-30-13-34-44----------si
> @r 13-51-17-53-27-93-31-33-35-73----------no



Clear
Dimension laResult[1,1]

= ASORT(laResult)
*SUBSTR(mystring, 1,2)

lnCount = Permuta(@laResult,
"03040509101112131516173536272930313334353738394243444546474849",2)

*lnCount = Permuta(@laResult,
"123456789101213141617181920212223242728293132333536373839404145464749",
2)

For lnItem = 1 To lnCount
? Transform(laResult[lnItem]," @r ##-##-##-##-##-##-##-##-##-## ")
EndFor
******************


*rutina de guardar
Select numeros
For lnItem = 1 To lnCount
Append Blank
Replace a With Transform(laResult[lnItem]," @r ##-##-##-##-##-##-
##-##-##-## ")
EndFor
*****************
Return
Function Permuta(taArray, tcString, tnSize)
Local lnCount, lnIndex, lcLeft, lcRight
tnSize = Iif(Vartype(tnSize) # "N", 1, tnSize)
lnCount = Int(Len(tcString) / tnSize)
lnCount = Iif(lnCount = 0, 1, lnCount)
Dimension taArray[1]
taArray[1] = tcString
If lnCount > 1
For lnIndex = 2 To lnCount
lcLeft = Left(tcString, tnSize)
lcRight = Substr(tcString, tnSize + 1)
tcString = lcRight + lcLeft
Dimension taArray[lnIndex]
taArray[lnIndex] = tcString
EndFor
EndIf
Return (lnCount)


gracias



On 16 feb, 17:21, Roberto Reátegui Kanashiro <zeroha...@gmail.com>
wrote:

pepemil

unread,
Feb 22, 2012, 4:20:21 PM2/22/12
to Comunidad de Visual Foxpro en Español
Bien como me he liado con todo esto re formulo la cuestión ya que para
mi es mas fácil trabajar con el código tradicional hasta que
aprenda :) es un ejercicio de combinaciones

introduzco numeros de dos en dos ejemplo "
09-12-14-15-20-21-23-25-30-35-40-45-48" así hasta unos 35 numeros.
creo que esto puede ser desde un form con unos tex, bien se cojen
estos 35 digitos y se combinan entre todos si repetir en resultados de
6 numeros. ( 09 12 14 15 20 21 ) ( 12 14 15 20 21 23 ) (14
15 20 21 23 25 ) y se guardan en una base de datos separados cada
dos digitos en 6 campos " a1.a2.a3.a4.a5.a6 " yo me encargo del
set order :)

Yo lo que quiero es saber como combinar sin repetición 35 numeros de
dos dígitos

saludos

aviso por cálculos manuales salen un sopoton de combinaciones

pepemil

Denny Teran

unread,
Apr 30, 2013, 8:37:42 AM4/30/13
to publice...@googlegroups.com
saludos. Necesito una ayuda de Visual Fox Pro 9.0. Quiero hacer una aplicación que me de las posibles combinaciones de 3 dígitos (permuta) y también que me de la cantidad de triples que se generan de cuatro dígitos. 
ejemplo de 3 dígitos: que introduzca 123 y me genere las siguientes combinaciones= 123-321-132-312-213-231 (sabemos que de 3 números se generan 6 triples o combinaciones)
ejemplo de 4 dígitos: que introduzca 5172 y me genere las siguientes combinaciones= 

527

271

571

521

572

217

517

512

725

172

157

215

752

127

175

251

275

721

715

152

257

712

751

125

(tambien sabemos que de 4 numeros solo exiten 24 triples o combinaciones )
espero alguien pueda ayudarme con esa formula..!!

Carlos Miguel FARIAS

unread,
Apr 30, 2013, 9:21:14 AM4/30/13
to Grupo Fox
No creo que haya una formula para obtener cada una de las combinaciones, si para la cantidad final.
Parece ser una tarea para la una clase de programación.
Si es realmente para una clase de programación, vas a aprender mucho de programación (lógica) codificándolo tu mismo.
Hacerlo en VFP no va a ser mucho más difícil que en otros lenguajes (y posiblemente, más fácil que otros "clásicos") .
Saludos: Miguel, La Pampa (RA)

Analyzer

unread,
Apr 30, 2013, 11:11:53 AM4/30/13
to Comunidad de Visual Foxpro en Español
Para encontrar el número de permutaciones de n objetos diferentes en grupos de r, se usan las siguientes fórmulas:  

    Cuando no se permite repetición



   Cuando se permita repetición




Que raro que tu profe de mate discretas o probabilidad no les haya explicado las fórmulas.


Saludos!

Denny Teran

unread,
Apr 30, 2013, 2:27:40 PM4/30/13
to publice...@googlegroups.com
Saludos Analycer gracias por tu respuesta. Si me explicaron permutaciones. El problema es que esa formula no me servira en VISUAL FOX PRO y necesito ver los codigos para que el programa sepa de que le estoy hablando. Espero alguien me ayude.

Denny Teran

unread,
Apr 30, 2013, 2:32:01 PM4/30/13
to publice...@googlegroups.com
Saludos Carlos miguel. Gracias por tu respuesta. Entiendo que no exista una formula exacata en fox pro que me de esos resultados pero si la cantidad final. Me puedes dar una idea de codigo de como jugar con las posiciones numericas. Que introducido 3 digitos y a travez de un codigo valla cambiando sus posiciones. Soy nuevo en fox pro pero me gustaria que me des un empujon para saber por donde empezar. Busque mucho en internet y consegui una aplicacion .exe que lo hace. Pero me gustaria darle un diseÑo personal a esa aplicacion. Por casualidad no existe alguna manera para ver el codigo usado en esa aplicacion? 

Analyzer

unread,
Apr 30, 2013, 2:43:31 PM4/30/13
to Comunidad de Visual Foxpro en Español
Seguro que ya buscaste en el inter?..

Aquí hay un ejemplo de cómo calcular el factorial usando VFP.


Lo demas solo serían restas.


Saludos!

Víctor Hugo Espínola Domínguez

unread,
Apr 30, 2013, 4:00:59 PM4/30/13
to publicesvfoxpro
Hola Denny

Adjunto el código que hace lo que quieres.

Saludos,
Víctor.

permuta.txt

Denny Teran

unread,
Apr 30, 2013, 6:01:29 PM4/30/13
to publice...@googlegroups.com
MUCHAS GRACIAS AMIGO. LOGRE HACER UNO QUE DA LA PERMUTA DE 3 Y 4 DIGITOS. PERO PODRIAS ENVIARLO EN WINRAR PARA EJECUTARLO EN VISUAL FOX PRO. 


Víctor Hugo Espínola Domínguez

unread,
Apr 30, 2013, 6:26:54 PM4/30/13
to publicesvfoxpro
Hola Denny

El archivo que envié debes cambiarle la extensión a .prg, no es un formulario.

Saludos,
Víctor.

Reply all
Reply to author
Forward
0 new messages