Primeros pasos en Qbasic, aplicado al 1X2

Programas, sistemas, condiciones, filtros...
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

Aqui he comparado los premios que tienen 2 columnas simetricas, la CUATRO X y DOS 2 con la DOS X y CUATRO 2:

Recordamos que una sola columna, ademas de 1 posible 14, podría tener:
28 treces.
364 doces.
2912 onces y
16016 dieces.

aquí se desglosan por figuras (X+2) de las figuras "11111111 XXXX 22" y la "111111 22 XXXX"




Imagen

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
anubal
14
14
Mensajes: 6707
Registrado: Mar 27 Mar, 2007 1:49 am

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por anubal »

juanknito escribió:

Recordamos que una sola columna, ademas de 1 posible 14, podría tener:
28 treces.
364 doces.
2912 onces y
16016 dieces.

Esos datos son los aparentes a simple vista, Juan. Ya que aquí en el foro ya quedó claro, hace bastantes años, que los 28 treces posibles quedaron muy atrás y para algunos quinielistas se convirtieron en 84 treces posibles en sus archivos personales, usando el "sencillo" truco del comodín en el pleno al quince... :secretito:

Y, la gran ventaja es que, usando ese sencillo truco, se multiplican todas las categorías de premios de la combinación en la que se emplee, ¡¡¡Pero la categoría de premios que más se multiplica es la que todo el mundo busca!!!... ¿Sabes cual es?... ¿Sabes por cuanto se multiplica? :;):


Nota: No quiero saber nada más del tema, que demasiados miles de mensajes me ha costado ya en el foro, cuando trabajaba, tenía dos trabajos y tenía tiempo libre... (Que maravilla entonces :D :D :D ) Porque ahora ya no trabajo, estoy jubilado y tengo menos tiempo libre que entonces... Exactamente no tengo nada de tiempo libre :enfado: :enfado: :enfado:


:;): :) :saludo:
Peña Figura$$$$$$$: LA PEÑA CON MAS PLENOS EN EL DNP*


https://www.quinielista.es/dnp1x2/figurassssss/ ...Nuevo acceso a la peña

*Mas plenos cobrados, de 14 y-ó 15, en sus 3 primeras temporadas completas en TODO el D.N.P. ¡¡Y EMPEZANDO DESDE CERO!!
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

Saludos Anubal,

Me alegro de ese pleno, y de liderar el n° de ellos en el DNP,

sin duda es la mejor muestra de que el sistema de figuras, de ser de las condiciones "menores" !? sería de estas, de las más importantes.

Entiendo también, que después de tantos años, estés un poco cansado, y es que la quiniela es muy desagradecida, los exitos nunca son proporcionales al esfuerzo y tiempo empleados para intentar cazarlos..

Yo seguiré con el análisis de éste filtro menor !?, porque creo que solapando figuras y tapando huecos, es una forma de reducción nada desdeñable, juego poco, en peñas casi siempre, pero siempre consciente que no solo jugamos nosotros con la quiniela, ella también juega con nosotros y de paso, haciendo honor al título del hilo, si podemos compartir pequeños conocimientos de BASIC, pues genial !!

Suerte Anubal

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

el pequeño código que genera las 120 FIGURAS* en los 14 triples, su nº de apuestas, su % respecto al 100% de los 14 triples y una columna ejemplo.

* FIGURA: es la combinación de UNOS, EQUIS Y DOCES, en cualquier posición de los 14 triples. (o en otro nº de triples que deseemos).

El siguiente código nos crea un archivo, con toda la información generada:120 FIGURAS EN 14 SIGNOS.TXT
se puede ver en el hilo: viewtopic.php?f=32&t=98197&p=2684095#p2684095

captura de los datos que vuelca el programilla:
Imagen


y el código Qbasic:

OPEN "120 FIGURAS EN 14 SIGNOS.TXT" FOR OUTPUT AS 1:
rem SE ABRE FICHERO TXT PARA GUARDAR LOS DATOS.
PRINT
PRINT "LAS 120 FIGURAS POSIBLES (1+X+2) EN LOS 14 TRIPLES"
PRINT
PRINT "N.Caso 1 X 2 Apuestas % 14 Trip. Columna / figura "
PRINT "====== == == == ======== ========== ================"

PRINT #1,
PRINT #1, "LAS 120 FIGURAS POSIBLES (1+X+2) EN LOS 14 TRIPLES"
PRINT #1,
PRINT #1, "N.Caso 1 X 2 Apuestas % 14 Trip. Columna / figura "
PRINT #1, "====== == == == ======== ========== =================="


FOR u = 14 TO 0 STEP -1
FOR e = 0 TO 14
FOR d = 0 TO 14

IF u + e + d <> 14 THEN GOTO 300 ELSE cas = cas + 1:
IF cas / 19 = INT(cas / 19) THEN LOCATE 25, 1: INPUT " Pulsa ENTER para seguir "; jj: CLS

PRINT USING " ### "; cas;: PRINT USING "###"; u; e; d,:
PRINT #1, USING " ###"; cas; u; e; d,
IF fac_14 = 0 THEN GOSUB fac_14:
GOSUB fac_0:
Ap = fac_14 / (Fu * Fe * Fd): PRINT USING " ##,###,### "; Ap;: TAp = TAp + Ap
PRINT #1, USING " ##,###,### "; Ap;
PRINT USING " ###.#### % "; (Ap * 100) / 4782969;
PRINT #1, USING " ###.#### % "; (Ap * 100) / 4782969;


GOSUB FIG: PRINT " "; F$: PRINT #1, " "; F$
F$ = ""
300
NEXT d, e, u

PRINT: PRINT "Total Apuestas:"; TAp
PRINT #1,: PRINT #1, "Total Apuestas:"; TAp

CLOSE #1
LOCATE 25, 1: INPUT " Pulsa ENTER para FIN "; jj: STOP
400 GOTO 400
FIG:
FOR u2 = 1 TO u: F$ = F$ + "1": NEXT u2
FOR e2 = 1 TO e: F$ = F$ + "X": NEXT e2
FOR d2 = 1 TO d: F$ = F$ + "2": NEXT d2
RETURN

fac_0:
n = u: GOSUB fac_n1: Fu = fac_n
n = e: GOSUB fac_n1: Fe = fac_n
n = d: GOSUB fac_n1: Fd = fac_n
RETURN

fac_n1:
fac_n = 1
FOR i = 1 TO n
fac_n = fac_n * i
NEXT i

RETURN

fac_14:
fac_14 = 1
FOR i = 1 TO 14
fac_14 = fac_14 * i
NEXT i
RETURN

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

El escrutinio, para aquellos programas que lo necesitan, se acelera sin necesidad de escrutar los 14 signos de cada columna, lo solucionamos con una instrucción if- then..

If Nescrutados-az>=5 then descartamos


Donde Nescrutados, es el n° de signos de la columna ya escrutados, y az, sería los aciertos hasta ese momento..si superan los 4 fallos, la descartamos y escrutados la siguiente columna.

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

saludos,
(se adjunta link actualización v.1.2)

en estos días de confinamiento, he estado dándole vueltas a una utilidad que analiza una combinación que deseemos (llamada combinacion.txt), desde el punto de vista de las figuras (casos de variantes X y 2), aislando en ficheros, cada una con sus columnas correspondientes,

en ésta primera parte, admite hasta 7 variantes, se ampliará en la siguiente versión de la aplicación.

en siguiente versión, podrá acumular los % de signos por casilla, para ver que peso tienen en los % totales de la combinación madre, así como aislar un nº determinado de figuras, para ver de forma conjunta, su importancia en los % de todas las figuras que forman la combinación.

par los que no puedan o sepan compilar el código, lo pongo seguidamente, en un archivo compartido como: Qfiguras.exe

link de Google Drive: Qfiguras v.1.2. (ahora pide introducir nombre fichero a analizar, para extracción de ficheros por figuras)





CODIGO QBASIC version de Qfiguras (V.1.0):

DIM TotX2(16, 16)
fch2$ = "combinacion.txt"
fch5$ = fch2$ + "+" + " Fig.txt"

OPEN fch5$ FOR OUTPUT AS #5

OPEN fch2$ FOR INPUT AS #2
WHILE NOT EOF(2): INPUT #2, col2$: lee2 = lee2 + 1

FOR w = 1 TO 14

IF MID$(col2$, w, 1) = "x" THEN MID$(col2$, w, 1) = "X" ' pasa x a X
figuras:
IF MID$(col2$, w, 1) = "2" THEN T2 = T2 + 1 ELSE IF MID$(col2$, w, 1) = "1" THEN T1 = T1 + 1

NEXT w

TX = 14 - (T1 + T2)
TotX2(TX, T2) = TotX2(TX, T2) + 1

cas = cas + 1: loct = loct + 1: LOCATE (loct + 1), 2
IF cas / 1 = INT(cas / 1) THEN loct = 1: LOCATE 2, 2
PRINT USING " ######## "; cas;: PRINT col2$, TX; T2, TotX2(TX, T2)
PRINT #5, col2$, TX; T2, TotX2(TX, T2)


GOSUB almacena '

T1 = 0: TX = 0: T2 = 0

WEND

99 LOCATE 25, 1: INPUT " Pulsa ENTER par seguir."; ll: CLS
GOSUB resumenTot

CLOSE #1, #5, #(nF)
100 LOCATE 25, 1: INPUT " Pulsa ENTER par Fin."; ll: STOP

resumenTot: ' generando parejas de figuras de X y 2
FOR s2 = 0 TO 14
FOR w2 = 0 TO 14
IF TotX2(s2, w2) = 0 THEN GOTO 699
PRINT USING " ##"; s2; w2,: PRINT USING " #######"; TotX2(s2, w2);
PRINT USING " ###.##"; TotX2(s2, w2) * 100 / 38172;: PRINT " %"
699:
NEXT w2
NEXT s2

RETURN

almacena: ' se archivan totales por figuras, se crea nombre fichero desde: TX mas T2 mas .txt (linea 59)

IF STR$(TX) <> fch1$ THEN fch1$ = STR$(TX): new = 1
IF STR$(T2) <> fch2$ THEN fch2$ = STR$(T2): new = 1

IF new <> 1 THEN GOTO 701: ' new = 0 ' repite figura

400: CLOSE #nF: fch_fig$ = fch1$ + fch2$ + ".txt": GOTO 700 ' no repite figura / close #7

600:
700:
REM Figuras admitidas, en esta version de Qfiguras (V.1.0)
IF fch_fig$ = " 0 5.txt" THEN nF = 7: GOTO 7000
IF fch_fig$ = " 0 6.txt" THEN nF = 8: GOTO 7000
IF fch_fig$ = " 1 3.txt" THEN nF = 9: GOTO 7000
IF fch_fig$ = " 1 4.txt" THEN nF = 10: GOTO 7000
IF fch_fig$ = " 1 5.txt" THEN nF = 11: GOTO 7000
IF fch_fig$ = " 1 6.txt" THEN nF = 12: GOTO 7000
IF fch_fig$ = " 2 3.txt" THEN nF = 13: GOTO 7000
IF fch_fig$ = " 2 4.txt" THEN nF = 14: GOTO 7000
IF fch_fig$ = " 2 5.txt" THEN nF = 15: GOTO 7000
IF fch_fig$ = " 3 2.txt" THEN nF = 16: GOTO 7000
IF fch_fig$ = " 3 3.txt" THEN nF = 17: GOTO 7000
IF fch_fig$ = " 3 4.txt" THEN nF = 18: GOTO 7000
IF fch_fig$ = " 4 1.txt" THEN nF = 19: GOTO 7000
IF fch_fig$ = " 4 2.txt" THEN nF = 20: GOTO 7000
IF fch_fig$ = " 4 3.txt" THEN nF = 21: GOTO 7000
IF fch_fig$ = " 5 0.txt" THEN nF = 22: GOTO 7000
IF fch_fig$ = " 5 1.txt" THEN nF = 23: GOTO 7000
IF fch_fig$ = " 5 2.txt" THEN nF = 24: GOTO 7000
IF fch_fig$ = " 6 0.txt" THEN nF = 25: GOTO 7000
IF fch_fig$ = " 6 1.txt" THEN nF = 26: GOTO 7000


7000:
OPEN fch_fig$ FOR APPEND AS #nF: new = 0: GOTO 701 '<<<<< hoy LOCATE 25, 1: INPUT " Pulsa ENTER para seguir2."; ll: CLS

701: PRINT #nF, col2$, TX; T2, TotX2(TX, T2)
702
800: RETURN
Última edición por juanknito el Mar 12 May, 2020 1:08 pm, editado 2 veces en total.

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

Se actualiza CODIGO, el anterior no abría fichero, ahora pide nombre para su apertura.

link descarga en post anterior (Qfiguras v.1.2):
viewtopic.php?p=2830192#p2830192

REM CODIGO DE UTILIDAD EXTRACTORA DE FIGURAS (COLUMNAS CON IGUAL No. DE X Y 2 A FICHERO. V.1.2

DIM TotX2(16, 16)

CLS
LOCATE 3, 1: PRINT " Utilidad: Qfiguras V.1.2 "
LOCATE 5, 1: PRINT " Se extraen FIGURAS (columnas con mismas variantes X y 2), a ficheros. "
LOCATE 25, 1: INPUT " Nombre de fichero a extraer figuras y pulsar ENTER."; fch2$: CLS
'fch2$ = "combinacion.txt"
fch5$ = fch2$ + "+" + " Fig.txt"



OPEN fch5$ FOR OUTPUT AS #5

OPEN fch2$ FOR INPUT AS #2
WHILE NOT EOF(2): INPUT #2, col2$: lee2 = lee2 + 1

FOR w = 1 TO 14

IF MID$(col2$, w, 1) = "x" THEN MID$(col2$, w, 1) = "X" ' pasa x a X
figuras:
IF MID$(col2$, w, 1) = "2" THEN T2 = T2 + 1 ELSE IF MID$(col2$, w, 1) = "1" THEN T1 = T1 + 1

NEXT w

TX = 14 - (T1 + T2)
TotX2(TX, T2) = TotX2(TX, T2) + 1

cas = cas + 1: loct = loct + 1: LOCATE (loct + 1), 2
IF cas / 1 = INT(cas / 1) THEN loct = 1: LOCATE 2, 2
PRINT USING " ######## "; cas;: PRINT col2$, TX; T2, TotX2(TX, T2)
PRINT #5, col2$, TX; T2, TotX2(TX, T2)


GOSUB almacena '

T1 = 0: TX = 0: T2 = 0

WEND

99 LOCATE 25, 1: INPUT " Pulsa ENTER par seguir."; ll: CLS
GOSUB resumenTot

CLOSE #1, #5, #(nF)
100 LOCATE 25, 1: INPUT " Pulsa ENTER par Fin."; ll: STOP

resumenTot: ' generando parejas de figuras de X y 2
CLS: LOCATE 1, 1: PRINT " Figuras X+2 y columnas archivadas:"
FOR s2 = 0 TO 14
FOR w2 = 0 TO 14
IF TotX2(s2, w2) = 0 THEN GOTO 699
PRINT USING " ##"; s2; w2,: PRINT USING " #######"; TotX2(s2, w2);
PRINT USING " ###.##"; TotX2(s2, w2) * 100 / 38172;: PRINT " %"
699:
NEXT w2
NEXT s2

RETURN

almacena: ' se archivan totales por figuras, se crea nombre fichero desde: TX mas T2 mas .txt (linea 59)

IF STR$(TX) <> fch1$ THEN fch1$ = STR$(TX): new = 1
IF STR$(T2) <> fch2$ THEN fch2$ = STR$(T2): new = 1

IF new <> 1 THEN GOTO 701: ' new = 0 ' repite figura

400: CLOSE #nF: fch_fig$ = fch1$ + fch2$ + ".txt": GOTO 700 ' no repite figura / close #7

600:
700:

IF fch_fig$ = " 0 5.txt" THEN nF = 6: GOTO 7000
IF fch_fig$ = " 0 6.txt" THEN nF = 7: GOTO 7000
IF fch_fig$ = " 0 7.txt" THEN nF = 8: GOTO 7000
IF fch_fig$ = " 0 8.txt" THEN nF = 9: GOTO 7000
IF fch_fig$ = " 1 3.txt" THEN nF = 10: GOTO 7000
IF fch_fig$ = " 1 4.txt" THEN nF = 11: GOTO 7000
IF fch_fig$ = " 1 5.txt" THEN nF = 12: GOTO 7000
IF fch_fig$ = " 1 6.txt" THEN nF = 13: GOTO 7000
IF fch_fig$ = " 2 3.txt" THEN nF = 14: GOTO 7000
IF fch_fig$ = " 2 4.txt" THEN nF = 15: GOTO 7000
IF fch_fig$ = " 2 5.txt" THEN nF = 16: GOTO 7000
IF fch_fig$ = " 2 6.txt" THEN nF = 17: GOTO 7000
IF fch_fig$ = " 3 2.txt" THEN nF = 18: GOTO 7000
IF fch_fig$ = " 3 3.txt" THEN nF = 19: GOTO 7000
IF fch_fig$ = " 3 4.txt" THEN nF = 20: GOTO 7000
IF fch_fig$ = " 3 5.txt" THEN nF = 21: GOTO 7000
IF fch_fig$ = " 3 6.txt" THEN nF = 22: GOTO 7000
IF fch_fig$ = " 4 5.txt" THEN nF = 23: GOTO 7000
IF fch_fig$ = " 4 1.txt" THEN nF = 24: GOTO 7000
IF fch_fig$ = " 4 2.txt" THEN nF = 25: GOTO 7000
IF fch_fig$ = " 4 3.txt" THEN nF = 26: GOTO 7000
IF fch_fig$ = " 4 5.txt" THEN nF = 27: GOTO 7000
IF fch_fig$ = " 5 0.txt" THEN nF = 28: GOTO 7000
IF fch_fig$ = " 5 1.txt" THEN nF = 29: GOTO 7000
IF fch_fig$ = " 5 2.txt" THEN nF = 30: GOTO 7000
IF fch_fig$ = " 5 3.txt" THEN nF = 31: GOTO 7000
IF fch_fig$ = " 5 4.txt" THEN nF = 32: GOTO 7000
IF fch_fig$ = " 6 0.txt" THEN nF = 33: GOTO 7000
IF fch_fig$ = " 6 1.txt" THEN nF = 34: GOTO 7000
IF fch_fig$ = " 6 2.txt" THEN nF = 35: GOTO 7000
IF fch_fig$ = " 6 3.txt" THEN nF = 36: GOTO 7000


7000:
OPEN fch_fig$ FOR APPEND AS #nF: new = 0: GOTO 701

701: PRINT #nF, col2$, TX; T2, TotX2(TX, T2)
702
800: RETURN

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

mejoramos un poco el código, la versión con más mejoras, en un link para descargar, la comparto a última hora de hoy

codigo: v. 1.3

REM CODIGO DE UTILIDAD EXTRACTORA DE FIGURAS (COLUMNAS CON IGUAL No. DE X Y 2 A FICHERO. V.1.3
COLOR 2, 0
DIM TotX2(16, 16), T_nF(30, 14, 3), TT_nF(14, 3)

CLS
LOCATE 3, 1: PRINT " Utilidad: Qfiguras V.1.3 "
LOCATE 5, 1: PRINT " Se extraen FIGURAS (columnas con mismas variantes X y 2), a ficheros. "

LOCATE 23, 1: PRINT " Introduce nombre fichero a extraer figuras y pulsar ENTER."; fch2$
LOCATE 24, 1: PRINT " o ENTER para fichero: combinacion.txt ";: INPUT fch2$: CLS
IF fch2$ = "" THEN fch2$ = "combinacion.txt"
'fch2$ = "combinacion.txt"
fch5$ = fch2$ + "+" + " Fig.txt"



LOCATE 7, 1: PRINT " Desea grabar detalle de figuras (X y 2)? s/n";: INPUT SN$: IF SN$ = "n" THEN SN$ = "N"
LOCATE 11, 1: PRINT " Se acumula % signos totales y % de cada figura al final de fichero resumen."
LOCATE 13, 1: PRINT " Se suman % signos combinando 2 figuras al final del fichero resumen."
LOCATE 15, 1: PRINT " Nombre fichero resumen: "; fch5$


'LOCATE 25, 1: INPUT " Nombre de fichero a extraer figuras y pulsar ENTER."; fch2$: CLS
'fch2$ = "combinacion.txt"
'fch5$ = fch2$ + "+" + " Fig.txt"



OPEN fch5$ FOR OUTPUT AS #5

OPEN fch2$ FOR INPUT AS #2
WHILE NOT EOF(2): INPUT #2, col2$: lee2 = lee2 + 1

FOR w = 1 TO 14

IF MID$(col2$, w, 1) = "x" THEN MID$(col2$, w, 1) = "X" ' pasa x a X
figuras:
IF MID$(col2$, w, 1) = "2" THEN T2 = T2 + 1 ELSE IF MID$(col2$, w, 1) = "1" THEN T1 = T1 + 1

NEXT w

TX = 14 - (T1 + T2)
TotX2(TX, T2) = TotX2(TX, T2) + 1

cas = cas + 1: loct = loct + 1: LOCATE (loct + 1), 2
IF cas / 1 = INT(cas / 1) THEN loct = 1: LOCATE 2, 2
PRINT USING " ######## "; cas;: PRINT col2$, TX; T2, TotX2(TX, T2)

'TotX2(16, 16), T_nF(30, 14, 3), TT_nF(14, 3)
'TotX2(TX, T2) = TotX2(TX, T2) + 1

IF SN$ <> "N" THEN PRINT #5, col2$, TX; T2, TotX2(TX, T2): GOTO 38
PRINT #5, TotX2(TX, T2); col2$ ' impresion fichero #5 solo columnas y no.


38: GOSUB almacena '

T1 = 0: TX = 0: T2 = 0

WEND

99 LOCATE 25, 1: INPUT " Pulsa ENTER par seguir."; ll: CLS
GOSUB resumenTot

CLOSE #1, #5, #(nF)
100 LOCATE 25, 1: INPUT " Pulsa ENTER par Fin."; ll: STOP

resumenTot: ' generando parejas de figuras de X y 2
CLS: LOCATE 1, 1: PRINT " Fig. Col. Archivadas:"
FOR s2 = 0 TO 14
FOR w2 = 0 TO 14
IF TotX2(s2, w2) = 0 THEN GOTO 699
PRINT USING " ##"; s2; w2,: PRINT USING " #######"; TotX2(s2, w2);
PRINT USING " ###.##"; TotX2(s2, w2) * 100 / 38172;: PRINT " %"
699:
NEXT w2
NEXT s2

RETURN

almacena: ' se archivan totales por figuras, se crea nombre fichero desde: TX mas T2 mas .txt

IF STR$(TX) <> fch1$ THEN fch1$ = STR$(TX): new = 1
IF STR$(T2) <> fch2$ THEN fch2$ = STR$(T2): new = 1

IF new <> 1 THEN GOTO 701: ' si new = 0 repite figura

400: CLOSE #nF: fch_fig$ = fch1$ + fch2$ + ".txt": GOTO 700 ' no repite figura / close #7

600:
700:

IF fch_fig$ = " 0 5.txt" THEN nF = 6
IF fch_fig$ = " 0 6.txt" THEN nF = 7
IF fch_fig$ = " 0 7.txt" THEN nF = 8
IF fch_fig$ = " 0 8.txt" THEN nF = 9
IF fch_fig$ = " 1 3.txt" THEN nF = 10
IF fch_fig$ = " 1 4.txt" THEN nF = 11
IF fch_fig$ = " 1 5.txt" THEN nF = 12
IF fch_fig$ = " 1 6.txt" THEN nF = 13
IF fch_fig$ = " 2 3.txt" THEN nF = 14
IF fch_fig$ = " 2 4.txt" THEN nF = 15
IF fch_fig$ = " 2 5.txt" THEN nF = 16
IF fch_fig$ = " 2 6.txt" THEN nF = 17
IF fch_fig$ = " 3 2.txt" THEN nF = 18
IF fch_fig$ = " 3 3.txt" THEN nF = 19
IF fch_fig$ = " 3 4.txt" THEN nF = 20
IF fch_fig$ = " 3 5.txt" THEN nF = 21
IF fch_fig$ = " 3 6.txt" THEN nF = 22
IF fch_fig$ = " 4 5.txt" THEN nF = 23
IF fch_fig$ = " 4 1.txt" THEN nF = 24
IF fch_fig$ = " 4 2.txt" THEN nF = 25
IF fch_fig$ = " 4 3.txt" THEN nF = 26
IF fch_fig$ = " 4 4.txt" THEN nF = 27
IF fch_fig$ = " 5 0.txt" THEN nF = 28
IF fch_fig$ = " 5 1.txt" THEN nF = 29
IF fch_fig$ = " 5 2.txt" THEN nF = 30
IF fch_fig$ = " 5 3.txt" THEN nF = 31
IF fch_fig$ = " 5 4.txt" THEN nF = 32
IF fch_fig$ = " 6 0.txt" THEN nF = 33
IF fch_fig$ = " 6 1.txt" THEN nF = 34
IF fch_fig$ = " 6 2.txt" THEN nF = 35
IF fch_fig$ = " 6 3.txt" THEN nF = 36

'T_nF(30, 14, 3)


7000:
OPEN fch_fig$ FOR APPEND AS #nF: new = 0: GOTO 701

701: PRINT #nF, col2$, TX; T2, TotX2(TX, T2)
702
800: RETURN

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

Pequeña actualización del Discriminador de figuras (X+2); "Qfiguras"

ahora admite figuras de 5 a 9 variantes, versión de evaluación

Ya, en la actualización anterior, podíamos introducir un fichero a extraer figuras ó pulsar ENTER, para, por defecto, abrir uno que llamemos combinación.txt que tendremos en el mismo directorio donde tengamos nuestra utilidad Q figuras.exe


Al final tengo que reconducir la idea inicial, pues trabajar con los % inicialmente propuestos, precisan de doble lectura de muchos ficheros, lo que ralentizaría el programa, hasta ver como lo soluciono, adjunto ésta pequeña actualización: 1.3.2

La opción que sería más razonable es ponerlo como opción en el menú de inicio


Ésta versión no la compilo hasta tener todos los % funcionando ok, es por lo tanto una versión de EVALUACIÓN:

'codigo: v. 1.3.2 web

REM CODIGO DE UTILIDAD EXTRACTORA DE FIGURAS (COLUMNAS CON IGUAL No. DE X Y 2 A FICHERO. V.1.3
COLOR 2, 0
DIM TotX2(16, 16), T_nF(30, 14, 3), TT_nF(14, 3)
DIM Por(14, 3)

CLS
LOCATE 3, 1: PRINT " Utilidad: Qfiguras V.1.3 "
LOCATE 5, 1: PRINT " Se extraen FIGURAS (columnas con mismas variantes X y 2), a ficheros. "

LOCATE 23, 1: PRINT " Introduce nombre fichero a extraer figuras y pulsar ENTER."; fch2$
LOCATE 24, 1: PRINT " o ENTER para fichero = combinacion.txt ";: INPUT fch2$: CLS
IF fch2$ = "" THEN fch2$ = "combinacion.txt"
'fch2$ = "combinacion.txt"
fch5$ = fch2$ + "+" + " Fig.txt"



LOCATE 7, 1: PRINT " Desea grabar detalle de figuras (X y 2)? s/n";: INPUT SN$: IF SN$ = "n" THEN SN$ = "N"
'LOCATE 11, 1: PRINT " Se acumula % signos totales y % de cada figura al final de fichero resumen."
'LOCATE 13, 1: PRINT " Se suman % signos combinando 2 figuras al final del fichero resumen."
LOCATE 15, 1: PRINT " Nombre fichero resumen: "; fch5$


'LOCATE 25, 1: INPUT " Nombre de fichero a extraer figuras y pulsar ENTER."; fch2$: CLS
'fch2$ = "combinacion.txt"
'fch5$ = fch2$ + "+" + " Fig.txt"



OPEN fch5$ FOR OUTPUT AS #5

OPEN fch2$ FOR INPUT AS #2
WHILE NOT EOF(2): INPUT #2, col2$: lee2 = lee2 + 1

FOR w = 1 TO 14

IF MID$(col2$, w, 1) = "x" THEN MID$(col2$, w, 1) = "X" ' pasa x a X

figuras:

IF MID$(col2$, w, 1) = "1" THEN T1 = T1 + 1: Por(w, 1) = Por(w, 1) + 1: GOTO 111
IF MID$(col2$, w, 1) = "X" THEN TX = TX + 1: Por(w, 2) = Por(w, 2) + 1: GOTO 111
IF MID$(col2$, w, 1) = "2" THEN T2 = T2 + 1: Por(w, 3) = Por(w, 3) + 1
' Por(14, 3)

111
NEXT w

TX = 14 - (T1 + T2)
TotX2(TX, T2) = TotX2(TX, T2) + 1

cas = cas + 1: loct = loct + 1: LOCATE (loct + 1), 2
IF cas / 1 = INT(cas / 1) THEN loct = 1: LOCATE 2, 2
PRINT USING " ######## "; cas;: PRINT col2$, TX; T2, TotX2(TX, T2)


IF SN$ <> "N" THEN PRINT #5, col2$, TX; T2, TotX2(TX, T2): GOTO 38
PRINT #5, TotX2(TX, T2); col2$ ' impresion fichero #5 solo columnas y no.


38: GOSUB almacena '

T1 = 0: TX = 0: T2 = 0

WEND

99 LOCATE 25, 1: INPUT " Pulsa ENTER par seguir."; ll: CLS
GOSUB resumenTot

CLOSE #1, #5, #(nF)
100 LOCATE 25, 1: INPUT " Pulsa ENTER par seguir."; ll: 'STOP

CLS: PRINT " Porcentajes de la Combinacion: " ' ; fch2$ ' << I >>
FOR w = 1 TO 14
FOR p = 1 TO 3
PRINT USING " ###.##"; (Por(w, p) * 100 / 38172); ' A AVERIGUAR N. COL <<<<<<<<<<<<<<<<<<<<<<<
NEXT p: PRINT
NEXT w

101 LOCATE 25, 1: INPUT " Pulsa ENTER par Fin."; ll: STOP


resumenTot: ' generando parejas de figuras de X y 2

CLS
LOCATE 1, 1: PRINT " Fig. No.Col. % Fichero"
LOCATE 2, 1: PRINT " vX v2 ------- ---------"

FOR s2 = 0 TO 14
FOR w2 = 0 TO 14
IF TotX2(s2, w2) = 0 THEN GOTO 699
PRINT USING " ##"; s2; w2,: PRINT USING " #######"; TotX2(s2, w2);
PRINT USING " ###.##"; TotX2(s2, w2) * 100 / 38172;: PRINT " %"
699:
NEXT w2
NEXT s2

RETURN

almacena: ' se archivan totales por figuras, se crea nombre fichero desde: TX mas T2 mas .txt

IF STR$(TX) <> fch1$ THEN fch1$ = STR$(TX): new = 1
IF STR$(T2) <> fch2$ THEN fch2$ = STR$(T2): new = 1

IF new <> 1 THEN GOTO 701: ' si new = 0 repite figura

400: CLOSE #nF: fch_fig$ = fch1$ + fch2$ + ".txt": GOTO 700 ' no repite figura / close #7

600:
700: ' nF= numero de canal # de escritura en fichero de cada figura (X/2)

IF fch_fig$ = " 0 5.txt" THEN nF = 6
IF fch_fig$ = " 0 6.txt" THEN nF = 7
IF fch_fig$ = " 0 7.txt" THEN nF = 8
IF fch_fig$ = " 0 8.txt" THEN nF = 9
IF fch_fig$ = " 0 9.txt" THEN nF = 10

IF fch_fig$ = " 1 4.txt" THEN nF = 11
IF fch_fig$ = " 1 5.txt" THEN nF = 12
IF fch_fig$ = " 1 6.txt" THEN nF = 13
IF fch_fig$ = " 1 7.txt" THEN nF = 14
IF fch_fig$ = " 1 8.txt" THEN nF = 15

IF fch_fig$ = " 2 3.txt" THEN nF = 16
IF fch_fig$ = " 2 4.txt" THEN nF = 17
IF fch_fig$ = " 2 5.txt" THEN nF = 18
IF fch_fig$ = " 2 6.txt" THEN nF = 19
IF fch_fig$ = " 2 7.txt" THEN nF = 20

IF fch_fig$ = " 3 2.txt" THEN nF = 21
IF fch_fig$ = " 3 3.txt" THEN nF = 22
IF fch_fig$ = " 3 4.txt" THEN nF = 23
IF fch_fig$ = " 3 5.txt" THEN nF = 24
IF fch_fig$ = " 3 6.txt" THEN nF = 25

IF fch_fig$ = " 4 1.txt" THEN nF = 26
IF fch_fig$ = " 4 2.txt" THEN nF = 27
IF fch_fig$ = " 4 3.txt" THEN nF = 28
IF fch_fig$ = " 4 4.txt" THEN nF = 29
IF fch_fig$ = " 4 5.txt" THEN nF = 30

IF fch_fig$ = " 5 0.txt" THEN nF = 31
IF fch_fig$ = " 5 1.txt" THEN nF = 32
IF fch_fig$ = " 5 2.txt" THEN nF = 33
IF fch_fig$ = " 5 3.txt" THEN nF = 34
IF fch_fig$ = " 5 4.txt" THEN nF = 35

IF fch_fig$ = " 6 0.txt" THEN nF = 36
IF fch_fig$ = " 6 1.txt" THEN nF = 37
IF fch_fig$ = " 6 2.txt" THEN nF = 38
IF fch_fig$ = " 6 3.txt" THEN nF = 39

IF fch_fig$ = " 7 0.txt" THEN nF = 40
IF fch_fig$ = " 7 1.txt" THEN nF = 41
IF fch_fig$ = " 7 2.txt" THEN nF = 42

IF fch_fig$ = " 8 0.txt" THEN nF = 43
IF fch_fig$ = " 8 1.txt" THEN nF = 44

IF fch_fig$ = " 9 0.txt" THEN nF = 45


'T_nF(30, 14, 3)


7000:
OPEN fch_fig$ FOR APPEND AS #nF: new = 0: 'GOTO 701

701: PRINT #nF, col2$, TX; T2, TotX2(TX, T2)
702
800: RETURN

9000 '<<<<<<<<<<<<<<<<<
'lector de numero de apuestas:
OPEN "comb1.txt" FOR INPUT AS #2


WHILE NOT EOF(2): INPUT #2, col$: Ncol = Ncol + 1
LOCATE 5, 5: PRINT USING " Leidas: ###,###,###"; Ncol
WEND
LOCATE 25, 1: INPUT " Pulsa para FIN "; kk: CLS: STOP

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Avatar de Usuario
juanknito
11
11
Mensajes: 461
Registrado: Dom 20 Mar, 2016 12:16 pm
Ubicación: Tenerife

Re: Primeros pasos en Qbasic, aplicado al 1X2

Mensaje por juanknito »

Saludos,
Hasta compilar y publicar las nuevas mejoras, de la pequeña utilidad Qfiguras, indicar que es necesario borrar los archivos generados en ejecuciones anteriores del programa, ya que sobre escribe ficheros, dando datos redundantes.

Los ficheros serían por ejemplo:
0 5.txt
0 6.txt
0 7.txt
0 8.txt
.....
4 2.txt
4 3.txt..... etc.

Recordar que esos archivos contenían las apuestas con igual número de variantes, por ejemplo: 4 3. txt y que lo componen todas las columnas con SOLO esas variantes (llamada figura 4 3), presentes en la combinación introducida al inicio de la aplicación Qfiguras.exe

el Karma Instantáneo existe, REPARTE con los que COMPARTEN.
Responder