Novità

Help me...!!!

scodinzolo

Member
Buonasera a tutti, dopo aver consultato vari script, ho cercato di "assemblare" un po' di cose per cercare di terminare il mio primo script.
Sono giunto quasi alla fine, mi manca la parte conclusiva relativa all'impostazione della giocata.
Ho ricavato nove numeri, di cui:

c (ambata)

c,d (ambo)
c,e (ambo)
e,d (ambo)

c,d,e,f,g,h,i,l,m ( per ambo)

Vorrei impostare tutte le giocate per 9 colpi su due ruote.
Potreste, gentilmente, aiutarmi a terminarlo?
Vi ringrazio anticipatamente, buona serata a tutti
 
L'istruzione per farlo è Call ImpostaGiocata con 4 "valori" necessari e parecchi altri facoltativi :

ImpostaGiocata(NumGiocata, VetNumeri, vetRuote, vetPoste, Optional Durata = 1, Optional SorteInterr = 0, Optional Attesa = 0, Optional aGiocateDaInterrompere = 0)

NumGiocata serve appunto per numerare le giocate perché possono essere più d'una (come vuoi fare)

Ognuna avrà dunque un numero 1 ; 2 ; 3 ; ecc.

I vettori invece contengono i numeri che intendi giocare

ad esempio : Numeri(1) = c

se per esempio giochi solo il numero c.

Se invece di un solo numero ne vuoi giocare 2 ; 3 ; o per esempio 9

Dimensioni all'inizio dello script un vettore che contenga 9 numeri.

Ad esempio: Dim Numeri (9) e poi valorizzi ognuna delle posizioni.

Numeri (1) = c
Numeri (2) = d
Numeri (3) = e
... fino a ...
Numeri (9) = m

Stesso identico discorso per le ruote

Esempio dichiari

Dim Ruote (2)

e poi valorizzi Il vettore ruote scegliendo quelle in cui vuoi giocare i numeri.

Ruote (1) = BA_
Ruote (2) = NZ_

Per le Poste è un pochino più complicato.

Comunque Poste(1) = 1 è equivalente a giocare 1 Euro sull' Estratto.

Poste (2) = 1 è equivalente a giocare 1 Euro sull'Ambo.

Poste(3) = 1 è equivalente a giocare 1 Euro sul Terno.

Se però vuoi separare le giocate oltre numerarle diversamente,

dovrai anche scegliere nomi diversi per i vettori.

Ad esempio

Posta_e (1) = 1
Posta_a (2) = 1
Posta_t (3) = 1

La durata della giocata è opzionale, ma se hai scelto 9 colpi,

aggiungerai: ",9" quando "l'intellisense" ti propone "Optional Durata = 1"

dopo aver impostato le giocate è necessario effetuare la giocata

Si usa il comando Gioca seguito dal numero di Estrazione.

In ultimo è possibile aggiungere

ScriviResoconto.

Per avere un dettagliato riepilogo dei risultati.

:)

PS: Devi prestare attenzione a questo particolare.

Quando assegni un valore ad una varabile

ad esempio scrivendo: Numeri (3) = e

Numeri (3) conserva questo valore come lo conservano tutte le altre caselle del "vettore".

Pertanto è opportuno avere Vettori con nomi diversi uno per ogni sorte

per evitare di giocare anche numeri che erano destinati ad essere testati e scelti per altre sorti.

:)
 
Ultima modifica:
L'istruzione per farlo è Call ImpostaGiocata con 4 "valori" necessari e parecchi altri facoltativi :

ImpostaGiocata(NumGiocata, VetNumeri, vetRuote, vetPoste, Optional Durata = 1, Optional SorteInterr = 0, Optional Attesa = 0, Optional aGiocateDaInterrompere = 0)

NumGiocata serve appunto per numerare le giocate perché possono essere più d'una (come vuoi fare)

Ognuna avrà dunque un numero 1 ; 2 ; 3 ; ecc.

I vettori invece contengono i numeri che intendi giocare

ad esempio : Numeri(1) = c

se per esempio giochi solo il numero c.

Se invece di un solo numero ne vuoi giocare 2 ; 3 ; o per esempio 9

Dimensioni all'inizio dello script un vettore che contenga 9 numeri.

Ad esempio: Dim Numeri (9) e poi valorizzi ognuna delle posizioni.

Numeri (1) = c
Numeri (2) = d
Numeri (3) = e
... fino a ...
Numeri (9) = m

Stesso identico discorso per le ruote

Esempio dichiari

Dim Ruote (2)

e poi valorizzi Il vettore ruote scegliendo quelle in cui vuoi giocare i numeri.

Ruote (1) = BA_
Ruote (2) = NZ_

Per le Poste è un pochino più complicato.

Comunque Poste(1) = 1 è equivalente a giocare 1 Euro sull' Estratto.

Poste (2) = 1 è equivalente a giocare 1 Euro sull'Ambo.

Poste(3) = 1 è equivalente a giocare 1 Euro sul Terno.

Se però vuoi separare le giocate oltre numerarle diversamente,

dovrai anche scegliere nomi diversi per i vettori.

Ad esempio

Posta_e (1) = 1
Posta_a (2) = 1
Posta_t (3) = 1

La durata della giocata è opzionale, ma se hai scelto 9 colpi,

aggiungerai: ",9" quando "l'intellisense" ti propone "Optional Durata = 1"

dopo aver impostato le giocate è necessario effetuare la giocata

Si usa il comando Gioca seguito dal numero di Estrazione.

In ultimo è possibile aggiungere

ScriviResoconto.

Per avere un dettagliato riepilogo dei risultati.

:)

PS: Devi prestare attenzione a questo particolare.

Quando assegni un valore ad una varabile

ad esempio scrivendo: Numeri (3) = e

Numeri (3) conserva questo valore come lo conservano tutte le altre caselle del "vettore".

Pertanto è opportuno avere Vettori con nomi diversi uno per ogni sorte

per evitare di giocare anche numeri che erano destinati ad essere testati e scelti per altre sorti.

:)
Grazie Joe,
ci provo, buona serata
 
estrazione consecutiva.JPG
Buonasera,
usando questa formula ottengo due numeri uguali (if a= b then) estratti sulla stessa ruota in due estrazioni consecutive. Nel caso intenda cercare "b" nelle estrazioni antecedenti e non solo in quella precedente, gentilmente, quale formula dovrei usare al posto di quel -1 evidenziato in giallo?

BARI.JPG

Ad esempio, se a =7 di Bari estratto in data 19.04.25, come faccio a rintracciare il 7 estratto, sempre a Bari il 12.04.25?
Spero di essere stato chiaro ....(lo spero eh...) e ringrazio, anticipatamente, chi potrà aiutarmi.
Buona serata
 
Ultima modifica:
Ciao a Tutti

Credo che ci siano molti modi per farlo,
questo è come lo faccio io

Codice:
 A = Estratto(Es,R1,P1)
   K = CInt(Es - 10) 'quel 10 equivale a quante estrazioni indietro vuoi verificare
   For Es2 = Es - 1 To K Step - 1
      B = Estratto(Es2,R1,P2)
 
Ciao,

giustamente scrive Salvo che con un ciclo For-Next E la sua varabile di controllo "I" (Indice)

puoi avere un numero che varia ad ogni iterazione. Cioè ad ogni ciclo.

Questo semplicissimo script dimostra come il valore di "I"

viene scritto 11 volte e partendo da Zero cambia di volta in volta sino ad arrivare a 10.

For I = 0 to 10
Scrivi I
Next

Pertanto se si SOTTRAE "I" da una ipotetica Estrazione Numero "Es" si ha che

il valore di "Es" DIMINUISCE ad ogni ciclo.

Es = EstrazioneFin
For I = 1 to 10
Scrivi DataEstrazione (Es-I)
Next


Questo è pertanto lo scheletro di quasi tutti gli script di ricerca (a retrocedere).

L'istruzione cardine per verificare se un numero è PRESENTE in una Estrazione è POSIZIONE.

Richiede naturalmente di sapere quale è l'Estrazione.

Lo stesso "Es" visto poc'anzi.

Naturalmente la Ruota in cui cercare ed il Numero che si desidera controllare

Dunque è opportuno Dimensionare le Variabili per comporre uno Script (completo) come questo:

Codice:
Option Explicit
Sub Main()
   Dim Es ' Estrazione
   Dim I  ' Indice
   Dim R  ' Ruota
   Dim N  ' Numero
   Dim P  ' Posizione
   Dim O  ' Output
   Es = EstrazioneFin
   R = BA_
   N = 7
   For I = 1 To 10
      O = DataEstrazione(Es - I)
      P = Posizione(Es - I,R,N)
      If P > 0 Then
         O = O & " c'é " & P & "°"
      Else
         O = O & " No!"
      End If
      Scrivi O
      Scrivi String(18,"-")
   Next
End Sub

Dall' Output si vede come l'istruzione Posizione restituisce "Zero" se il numero non è presente in nessuna delle 5 posizioni,

oppure un valore tra 1 e 5 che possiamo sfruttare per capire "se" e "dove" è PRESENTE.

Dunque con un un ciclo for-next si può esplorare l'archivio

e con un test condizionale si può verificare se "c'è" o non "c'è" il numero cercato.

:)
 
Nello script c'è scritto Es = EstrazioneFin.

Questo lascia intravvedere che alla variabile "Es" si è assegnato un valore numerico.

In effetti lo si è fatto.

Poi questo numero è stato diminuito tante volte togliendo, altrettante volte i.

Utilizzando direttamente la variabile Es.

Si può semplificare scrivendo For Es = EstrazioneFin-200 To EstrazioneFin,

'risparmiando' in questo modo l'utilizzo della variabile i.

Si può ad esempio cambiarla in C per Conteggiare le Presenze trovate..

Il valore di C inizialmente è zero e deve essere aumentato di UNO ogni Presenza.

Lo si può fare scrivendo il comando C = C + 1 nel ramo in cui c'è la Presenza.

Trasferendo tutto in questo, stesso ramo del test condizionale, cioè quello che viene eseguito,

nel caso in cui la condizione sia VERA ...

ovvero ancora quando sia Presente nella Estrazione e nella Ruota ... il numero ...

Si ottiene a tutti gli effetti uno piccolo ed efficiente script di ricerca statistica.

Codice:
Option Explicit
Sub Main()
   Dim Es ' Estrazione
   Dim C  ' Contatore
   Dim R  ' Ruota
   Dim N  ' Numero
   Dim P  ' Posizione
   Dim O  ' Output
   R = BA_
   N = 7
   For Es = EstrazioneFin - 200 To EstrazioneFin
      P = Posizione(Es,R,N)
      If P > 0 Then
         C = C + 1
         O = C & " "
         O = O & DataEstrazione(Es) & " "
         O = O & StringaEstratti(Es,R) & " "
         O = O & P & "° "
         Scrivi O
         Scrivi String(30,"-")
         'Else
         'O = O & " No!"
      End If
   Next
   Scrivi C & " Presenze."
End Sub

Scrivi C & " Presenze." nell'ultima linea è un esempio di come nello script si può,

far scrivere "uno" dei tanti valori in esso Presenti.

rendendo così fruibile sia la "quantità" che la possibile descrizione della qualità.

Cioè "cosa è" e cosa rappresenta quel numero nello specifico: Presenze = Casi trovati.

:)

Codice:
         C = C + 1
         O = C & " "

Nota come "+" serve a sommare valori numerici

MENTRE "&" serve per concatenare valori Alfanumerici, letterali, stringhe.

Cioè C = A + B fa si che C sia un numero e sia la SOMMA di a + b.

X = A & B & C fa si che il contenuto di B allunghi il contenuto di A e poi ancora che anche C si aggiunga

PERO' NON SONO ESEGUITE OPERAZIONI ARTITMETICHE.

A = "Mario"
B = " "
C= "ROSSI"

X = A & B & C

Scrivi X ... Scrive: "Mario ROSSI"

A = 1
B = 2
C = A+B

Scrivi C ... Scrive: 3.
 
Ultima modifica:
In fase di ampliamento e miglioramento,

s'è visto come sia possibile utilizzare direttamente l' indice del ciclo For-Next

Senza utilizzare una variabile apposita (come lo era "i" )

Allo stesso modo invece di avere

P = Posizione(Es,R,N)
If P > 0 Then

si può scrivere direttamente

If Posizione(Es,R,N) > 0 Then

Ma in questo modo non sappiamo più quale è la posizione "P"

vediamo come cercarla ... diciamo per semplicità più "manualmente".

ESTRATTO è l'istruzione per farlo ed una delle più utili per le ricerche.

Richiede il numero di Estrazione (Es) la Ruota (R) e la Posizione (P)

Dunque possiamo generare noi le 5 Posizioni utilizzando P come indice di un ciclo For-Next

For P = 1 to 5
E = Estratto (Es,R,P)
Scrivi E
Next

in questo modo però i 5 Estratti (uno ero ogni P) saranno scritti in 5 righe

Questo sostituisce StringaEstratti ma non è ordinato come lo era prima.

Assieme a questo "contro" abbiamo ottenuto la lettura delle 5 etichette dei 5 Estratti.

----

L'istruzione SCRIVI nel dialetto Basic di Spaziometria permette di concatenare

come prima si era detto e fatto con O = O & ...

Con Scrivi si ottiene qualcosa di simile e "più potente" (vedremo dopo) inserendo ,0,0

Scrivi 1,0,0
scrivi 2,0,1

scriverà "12"

Cioè il 2° "virgola-zero" di scrivi fa si che non si vada "a-capo" dopo aver scritto 1.

Pertanto, subito dopo dopo 1, verrà scritto 2.

Ed in questo caso essendoci ,0,1 si va a capo dopo che si è scritto: 12.

E' "complicato" sia da leggere che da (de)scrivere.

Ma, in realtà è semplicissimo ed è di ENORME utilità.

Così facendo si ha che :

For P = 1 to 5
E = Estratto (Es,R,P)
Scrivi Format2 ( E) & " ",0,0
Next

sostanzialmente sostituisce l'istruzione StringaEstratti.

Per mantenere una migliore impaginazione numeri sono scritti a 2 Cifre utilizzando il comando Format2.

Conoscendo sia il numero (N) sia l' Estratto (E) è possibile verificare se coincidono

ed applicare al numero da scrivere la "Formattazione Condizionale" da noi preferita.

Ad esempio in caso di uguaglianza E = N decidere di applicare ad esempio il colore rosso

e contestulmente memorizzare la posizione P (del numero N)

If E = N Then ColoreTesto 2
O = P & "°"
End If

Cosicché "O" contiene la posizione ed "E" viene scritto in rosso.

C'è ancora una cosa che si può fare prima di considerare terminato questo script.

Cercare gli Ambi che si sono formati in presenza del numero N.

Occorre predisporre un array con Dim A(90) per poter conteggiare quanti 1,2,3,4,...,89,90,

sono presenti assieme al numero N.

Contarli è semplicissimo: A(E) = A(E) +1 e quali siano gli estratti E li abbiamo letti, scritti ... colorati.

Terminato lo script le quantità di ogni singolo abbinamento deve semplicemente essere esplicitato (scritto).

Altrimenti rimangono in memoria senza essere scritti.

For E = 1 to 90
Scrivi A(E)
Next

Li scrive tutti e 90 compreso N.N che non è un ambo lottologicamente valido.

Ma ci conforta nel confermare la stessa quantità di Presenze (precedentemente calcolate).

Volendo escludere gli ambi che non sono caduti nel periodo considerato si può aggiungere

un semplice test-condizionale per escluderli.

Questa ultima parte diventa :

Codice:
 Scrivi "AMBI",1
   'Visualizzazione Abbinamenti AMBI
   For E = 1 To 90
      'If E <> N Then
         If A(E) > 0 Then
            Scrivi Format2(N) & "." & Format2(E) & " = " & A(E) & " Pres."
         End If
      'End If
   Next

Si può notare eseguendo lo script che "AMBI" sarà scritto in grassetto.

Questo deriva dal aver posto "AMBI",1 dove aver scritto "virgola-uno" equivale al comando "in grassetto".

Analogamente ho inserito un "Titolo" ( con NomeRuota e Numero) in grassetto ed in colore rosso.

N,1,,,2 significa appunto: N , in grassetto , , , in Rosso.

Codice:
Option Explicit
Sub Main()
   Dim Es ' Estrazione
   Dim C ' Contatore
   Dim R ' Ruota
   Dim N ' Numero
   Dim P ' Posizione
   Dim O ' Output Posizione
   Dim E ' Estratto
   Dim A(90) 'Abbinamenti"
   R = BA_
   N = 7
   Scrivi NomeRuota (R)  & " Numero : " & N,1,,,2
   Scrivi
      For Es = EstrazioneFin - 200 To EstrazioneFin
      If Posizione(Es,R,N) > 0 Then
         C = C + 1
         Scrivi C & " ",0,0
         Scrivi DataEstrazione(Es) & " ",0,0
         'Scrivi StringaEstratti(Es,R) & " ",0
         For P = 1 To 5
            E = Estratto(Es,R,P)
            If E = N Then ColoreTesto 2 : O = P & "°"
            Scrivi Format2(E) & " ",0,0
            ColoreTesto 0
            A(E) = A(E) + 1
         Next
         Scrivi O,,,,2
         Scrivi String(30,"-")
      End If
   Next
   Scrivi
   Scrivi C & " Presenze."
   Scrivi "AMBI",1
   Scrivi
   'Visualizzazione Abbinamenti AMBI
   For E = 1 To 90
      'If E <> N Then
         If A(E) > 0 Then
            Scrivi Format2(N) & "." & Format2(E) & " = " & A(E) & " Pres."
         End If
      'End If
   Next
End Sub

:)
 
Bene!

Grazie.

Vediamo alcune cose sul ciclo For-Next

Questo script :

Codice:
Option Explicit
Sub Main
   Dim Es,R,P,E,X
   For Es = EstrazioneFin - 9 To EstrazioneFin
      Scrivi Es
   Next
   Scrivi
   For R = 1 To 10
      Scrivi R
   Next
   Scrivi
   For P = 1 To 5
      Scrivi P
   Next
   Scrivi
   For E = 1 To 90
   Scrivi Format2(E) & " ",0,0
   Next
   Scrivi 
   Scrivi
   For X = 1 To 1
   Scrivi X
   Next
   Scrivi X
End Sub

Produce questo :

10626
10627
10628
10629
10630
10631
10632
10633
10634
10635

1
2
3
4
5
6
7
8
9
10

1
2
3
4
5

01 02 03 04 05 06 07 ... fino a ... 86 87 88 89 90

1
2

Come si vede chiaramente sono solo numeri privi di significato.

Innanzi tutto notiamo come Estrazione Fin - 9 To EstrazioneFin sia UGUALE a 10 RISULTATI.

Poi anche per la "X" il valore viene incrementato e passa da 1 a 2 "nell'uscire" dal ciclo For-Next.

Dunque il "numero" da sè non specifica "A COSA" appartiene e quanto vale.

Occorre attribuire una etichetta oppure renderlo auto-esplicativo

oppure ancora, un mix di questi suoi possibili attributi.

Per esempio:

Scrivi DataEstrazione(Es) 'restituisce una Data.

NomeRuota(R) 'restituisce il nome di una Ruota

P & "° Estratto" con una sua "etichetta" , si sa che cosa è.

Ciò detto possiamo utilizzare le semplici nozioni per costruire a video una piccola porzione di Archivio.

10 Estrazioni x 10 Ruote x 5 Estratti = 500 Estratti (E)

Dalla modifica effettuata al precedente script si vede come mettendo i 3 Cicli uno dentro l'altro

il numero di Estrazioni - Ruote - Posizioni ... MOLTIPLICANO i passaggi unitari ... facendoli diventare 500.

Codice:
   Dim Es,R,P,E,X
   For Es = EstrazioneFin - 9 To EstrazioneFin
      For R = 1 To 10
         For P = 1 To 5
            E = E + 1
         Next ' Posizione
      Next ' Ruota
   Next ' Estrazione
   Scrivi E

:)
 
Come detto allo script precedente aggiungiamo

Scrivi DataEstrazione (Es) nel ciclo più esterno

cioè quello che viene eseguito per ogni Ruota.

Poi è opportuno aggiungere un carattere separatore con degli spazi.

Per ognuna delle 10-12 Ruote abbiamo la variabile di controllo "R"

ed il secondo ciclo For-Next.

In ultimo alla terza indentazione (o nel ciclo più interno) abbiamo "P"

come indice da 1 a 5 per poter recuperare i 5 Estratti.

Ogni 5 estratti è opportuno inserire un carattere separatore.

Ed in ultimo dopo la data, le 10-12 ruote, ognuna con i suoi 5 Estratti,

se si va "a-capo" si ha, in una riga, una estrazione dell'archivio.

Codice:
Option Explicit
Sub Main
   Dim Es,R,P,E,X
   X = 7 ' Estratto da evidenziare
   For Es = EstrazioneFin - 9 To EstrazioneFin
      Scrivi DataEstrazione(Es,,,"/") & " ",1,0
      Scrivi"| ",0,0
      For R = 1 To 12 : If R = 11 Then R = 12
         For P = 1 To 5
            E = Estratto(Es,R,P)
            If E = X Then ColoreTesto 2
            Scrivi FormatSpace(E,2,1) & " ",1,0
            ColoreTesto 0
         Next
         Scrivi "| ",0,0
      Next
      Scrivi
   Next
End Sub

:)
 
Semplicemente spostando alcuni "a capo" e separatori,

con lo stesso script ,si può avere l'elenco delle Estrazioni come ci vengono proposte,

nel televideo, nelle bacheche ed nelle molte pagine Web.

Codice:
Option Explicit
Sub Main
   Dim Es,R,P,E,X
   X = 7 ' Estratto da evidenziare
   For Es = EstrazioneFin - 9 To EstrazioneFin
      Scrivi DataEstrazione(Es,,,"/") & " ",1
      For R = 1 To 12 : If R = 11 Then R = 12
         Scrivi SiglaRuota(R) & " ",1,0
         For P = 1 To 5
            E = Estratto(Es,R,P)
            If E = X Then ColoreTesto 2
            Scrivi FormatSpace(E,2,1) & " ",1,0
            ColoreTesto 0
         Next
         Scrivi
      Next
      Scrivi
   Next
End Sub

:)
 
Come detto allo script precedente aggiungiamo

Scrivi DataEstrazione (Es) nel ciclo più esterno

cioè quello che viene eseguito per ogni Ruota.

Poi è opportuno aggiungere un carattere separatore con degli spazi.

Per ognuna delle 10-12 Ruote abbiamo la variabile di controllo "R"

ed il secondo ciclo For-Next.

In ultimo alla terza indentazione (o nel ciclo più interno) abbiamo "P"

come indice da 1 a 5 per poter recuperare i 5 Estratti.

Ogni 5 estratti è opportuno inserire un carattere separatore.

Ed in ultimo dopo la data, le 10-12 ruote, ognuna con i suoi 5 Estratti,

se si va "a-capo" si ha, in una riga, una estrazione dell'archivio.

Codice:
Option Explicit
Sub Main
   Dim Es,R,P,E,X
   X = 7 ' Estratto da evidenziare
   For Es = EstrazioneFin - 9 To EstrazioneFin
      Scrivi DataEstrazione(Es,,,"/") & " ",1,0
      Scrivi"| ",0,0
      For R = 1 To 12 : If R = 11 Then R = 12
         For P = 1 To 5
            E = Estratto(Es,R,P)
            If E = X Then ColoreTesto 2
            Scrivi FormatSpace(E,2,1) & " ",1,0
            ColoreTesto 0
         Next
         Scrivi "| ",0,0
      Next
      Scrivi
   Next
End Sub

:)
...che belloooooooo...erano giorni che ci provavo ...non riuscivo in orizzontaleeee....grazieeeeeeee!!!
 
Bene!

Grazie.

Vediamo alcune cose sul ciclo For-Next

Questo script :

Codice:
Option Explicit
Sub Main
   Dim Es,R,P,E,X
   For Es = EstrazioneFin - 9 To EstrazioneFin
      Scrivi Es
   Next
   Scrivi
   For R = 1 To 10
      Scrivi R
   Next
   Scrivi
   For P = 1 To 5
      Scrivi P
   Next
   Scrivi
   For E = 1 To 90
   Scrivi Format2(E) & " ",0,0
   Next
   Scrivi
   Scrivi
   For X = 1 To 1
   Scrivi X
   Next
   Scrivi X
End Sub

Produce questo :

10626
10627
10628
10629
10630
10631
10632
10633
10634
10635

1
2
3
4
5
6
7
8
9
10

1
2
3
4
5

01 02 03 04 05 06 07 ... fino a ... 86 87 88 89 90

1
2

Come si vede chiaramente sono solo numeri privi di significato.

Innanzi tutto notiamo come Estrazione Fin - 9 To EstrazioneFin sia UGUALE a 10 RISULTATI.

Poi anche per la "X" il valore viene incrementato e passa da 1 a 2 "nell'uscire" dal ciclo For-Next.

Dunque il "numero" da sè non specifica "A COSA" appartiene e quanto vale.

Occorre attribuire una etichetta oppure renderlo auto-esplicativo

oppure ancora, un mix di questi suoi possibili attributi.

Per esempio:

Scrivi DataEstrazione(Es) 'restituisce una Data.

NomeRuota(R) 'restituisce il nome di una Ruota

P & "° Estratto" con una sua "etichetta" , si sa che cosa è.

Ciò detto possiamo utilizzare le semplici nozioni per costruire a video una piccola porzione di Archivio.

10 Estrazioni x 10 Ruote x 5 Estratti = 500 Estratti (E)

Dalla modifica effettuata al precedente script si vede come mettendo i 3 Cicli uno dentro l'altro

il numero di Estrazioni - Ruote - Posizioni ... MOLTIPLICANO i passaggi unitari ... facendoli diventare 500.

Codice:
   Dim Es,R,P,E,X
   For Es = EstrazioneFin - 9 To EstrazioneFin
      For R = 1 To 10
         For P = 1 To 5
            E = E + 1
         Next ' Posizione
      Next ' Ruota
   Next ' Estrazione
   Scrivi E

:)
Grazieeeeeee...!!!👏
 
Propongo i seguenti 3 script (in uno)

per poter confrontare "3 approcci" di programmazione differenti ed evidenziare,

l' utilità aggiunta all' istruzione scrivi, che con LuigiB e la sua abilità abbiamo aggiunto alla istruzioni SCRIVI.

Scrivi è peraltro è una delle istruzioni più utili ed è praticamente indispensabile.

Il primo script è fatto con il copia-incolla ed in esso una distrazione, appositamente voluta,

fa si che Napoli e Palermo abbiano gli estratti scambiati tra loro.

In questo primo script, come nel secondo ho utilizzato la variabile RIGA,

per raccogliere tutto il necessario prima di scriverlo.

Nel secondo c'è anche il "tentativo fallito" di evidenziare una parte dell' Outuut.

Il TERZO script evidenzia il livello maggiore, reso raggiungibile,

con la nuova istruzione SCRIVI in abbinamento al ciclo For-Next.

E' dunque possibile scrivere meno codice (evitando anche sviste ed errori)

ed inoltre è anche possibile formattare l'output, in ogni sua parte.

Il rovescio della medaglia è che essendo una istruzione molto potente,

diventa "pesante" in termini di elaborazione.

Pertanto l'uso eccessivo di formattazioni in output corposo può rallentare lo script.

Codice:
Option Explicit
Sub Main
   Dim Es,Riga,Separatore,R
   Es = EstrazioneFin
    '
   ' PRIMO
   '
   Separatore = " | "  
   Riga = DataEstrazione(Es) & Separatore
   Riga = Riga & StringaEstratti(Es,BA_) & Separatore
   Riga = Riga & StringaEstratti(Es,CA_) & Separatore
   Riga = Riga & StringaEstratti(Es,FI_) & Separatore
   Riga = Riga & StringaEstratti(Es,GE_) & Separatore
   Riga = Riga & StringaEstratti(Es,MI_) & Separatore
   Riga = Riga & StringaEstratti(Es,PA_) & Separatore
   Riga = Riga & StringaEstratti(Es,NA_) & Separatore
   Riga = Riga & StringaEstratti(Es,RO_) & Separatore
   Riga = Riga & StringaEstratti(Es,TO_) & Separatore
   Riga = Riga & StringaEstratti(Es,VE_) & Separatore
   Scrivi Riga
   Scrivi String(182,"*")
   '
   'SECONDO
   '
   Separatore = " | "
   Riga = DataEstrazione(Es) & Separatore
   For R = 1 To 10
      If R = 6 Then ColoreTesto 1 Else ColoreTesto 0
      Riga = Riga & StringaEstratti(Es,R) & Separatore
   Next
   Scrivi Riga
   Scrivi String(182,"*")
   '
   'TERZO
   '
   Separatore = " | "
   Scrivi DataEstrazione(Es,,,"/") & Separatore,0,0
   For R = 1 To 10
      If R = 6 Then ColoreTesto 1 Else ColoreTesto 0
      Scrivi StringaEstratti(Es,R) & Separatore,0,0
   Next
   Scrivi ""
   Scrivi String(182,"*")
End Sub


:)
 
Ultima modifica:
Visto nel dettaglio come una parte dei parametri permessi dall'Istuzione Scrivi,

permettono di manipolare la forma dell'output

Allo script presente al messaggio #9 ho aggiunto un Kontarore delle Estrazioni analizzate.

Eseguendolo in questa versione, si vede chiaramente come K venga incrementato 201 volte e non 200.

1 in più su 200 è un errore "piccolo".

Ma questa estrazione in più potrebbe spostare e di molto le risultanze statistiche,

specie se si trattasse di sorti rare, o di periodi piuttosto brevi.

Per esempio 1 su 10 sarebbe un errore del 10 %

Potrebbe far considerare avvenuta una sorte che invece è avvenuta al di fuori dal periodo ipotizzato.

Questo è lo stesso script corretto con EstrazioneFin-199 per avere 200 Estrazioni:

Option Explicit
Sub Main()
Dim Es ' Estrazione
Dim C ' Contatore
Dim R ' Ruota
Dim N ' Numero
Dim P ' Posizione
Dim O ' Output Posizione
Dim E ' Estratto
Dim A(90) 'Abbinamenti"
Dim K ' Kontatore
R = BA_
N = 7
Scrivi NomeRuota(R) & " Numero : " & N,1,,,2
Scrivi
For Es = EstrazioneFin - 199 To EstrazioneFin
K = K + 1 'Kontatore Estrazioni
If Posizione(Es,R,N) > 0 Then
C = C + 1
Scrivi C & " ",0,0
Scrivi DataEstrazione(Es) & " ",0,0
'Scrivi StringaEstratti(Es,R) & " ",0
For P = 1 To 5
E = Estratto(Es,R,P)
If E = N Then ColoreTesto 2 : O = P & "°"
Scrivi Format2(E) & " ",0,0
ColoreTesto 0
A(E) = A(E) + 1
Next
Scrivi O,,,,2
Scrivi String(30,"-")
End If
Next
Scrivi
Scrivi C & " Presenze. /",0,0
Scrivi " " & K & " Estrazioni.",,,,2
Scrivi "AMBI",1
Scrivi

Scrivi
'Visualizzazione Abbinamenti AMBI
For E = 1 To 90
'If E <> N Then
If A(E) > 0 Then
Scrivi Format2(N) & "." & Format2(E) & " = " & A(E) & " Pres."
End If
'End If
Next
End Sub

:)
 
Ultima modifica:
Visto nel dettaglio come una parte dei parametri permessi dall'Istuzione Scrivi,

permettono di manipolare la forma dell'output

Allo script presente al messaggio #9 ho aggiunto un Kontarore delle Estrazioni analizzate.

Eseguendolo in questa versione, si vede chiaramente come K venga incrementato 201 volte e non 200.

1 in più su 200 è un errore "piccolo".

Ma questa estrazione in più potrebbe spostare e di molto le risultanze statistiche,

specie se si trattasse di sorti rare, o di periodi piuttosto brevi.

Per esempio 1 su 10 sarebbe un errore del 10 %

Potrebbe far considerare avvenuta una sorte che invece è avvenuta al di fuori dal periodo ipotizzato.

Questo è lo stesso script corretto con EstrazioneFin-199 per avere 200 Estrazioni:

Option Explicit
Sub Main()
Dim Es ' Estrazione
Dim C ' Contatore
Dim R ' Ruota
Dim N ' Numero
Dim P ' Posizione
Dim O ' Output Posizione
Dim E ' Estratto
Dim A(90) 'Abbinamenti"
Dim K ' Kontatore
R = BA_
N = 7
Scrivi NomeRuota(R) & " Numero : " & N,1,,,2
Scrivi
For Es = EstrazioneFin - 199 To EstrazioneFin
K = K + 1 'Kontatore Estrazioni
If Posizione(Es,R,N) > 0 Then
C = C + 1
Scrivi C & " ",0,0
Scrivi DataEstrazione(Es) & " ",0,0
'Scrivi StringaEstratti(Es,R) & " ",0
For P = 1 To 5
E = Estratto(Es,R,P)
If E = N Then ColoreTesto 2 : O = P & "°"
Scrivi Format2(E) & " ",0,0
ColoreTesto 0
A(E) = A(E) + 1
Next
Scrivi O,,,,2
Scrivi String(30,"-")
End If
Next
Scrivi
Scrivi C & " Presenze. /",0,0
Scrivi " " & K & " Estrazioni.",,,,2
Scrivi "AMBI",1
Scrivi

Scrivi
'Visualizzazione Abbinamenti AMBI
For E = 1 To 90
'If E <> N Then
If A(E) > 0 Then
Scrivi Format2(N) & "." & Format2(E) & " = " & A(E) & " Pres."
End If
'End If
Next
End Sub

:)
..sembra una magica giostra...ogni giorno un "giro"...in un mondo fantastico...grazie Joe per quello che ci doni ogni volta ...🏆
 
Ringrazio tutti.

Abbiamo detto dell'errore comunissimo presente nella maggior parte degli script.

Quello che consiste nell'aggiungere una estrazione al periodo.

Vediamone uno, molto maggiore sia di dimensione che di LOGICA.

C'è chi confonde le Presenze con la Frequenza. (Ma è altra storia)

E, c'è chi leggendo ciò che è scritto : 14 Presenze / 200 Estrazioni,

realmente considera che questo rapporto tra Presenze ed Estrazioni sia la Frequenza.

In realtà lo è solo per quello che arbitrariamente abbiamo DETERMINATO noi.

Per dimostrarlo, possiamo scrivere che l'Archivio di Spaziometria, giustamente, oltre gli Estratti e le Date

contiene un numero progressivo attribuito ad ogni Estrazione successiva.

Poi meno, direttamente ha dei valori più cabalistici come l'indice mensile o annuale (che considereremo poi).

Se dunque al fianco alle date aggiungiamo il numero progressivo dell' Estrazione,

notiamo che, lo script, (attualmente) trova 14 Presenze del 7 a Bari comprese tra l' Estrazione 10459 e la 10634.

Tra questi 2 VALORI NUMERICI, però, NON CI SONO 200 Estrazioni (di DIFFERENZA).

Immagine.jpg

Perché 10634 meno 10459 è uguale a 175.

Cioè c'è una UNA ALTRA DIFFERENZA di +/- 25 Estrazioni tra il risultato 175 ed il periodo imposto di 200.

Succede perché abbiamo stabilito noi un periodo non adatto.

ECCESSIVAMENTE LUNGO ... di molte Estrazioni.

Introducendo così un errore maggiore del 12 %.

Considerando che, l'Estratto, ha una Frequenza inferiore al 6% l'errore al confronto è gigante.

Più del doppio.

Matematicamente e per i computer questi FATTI oggettivi dimostrano che abbiamo sbagliato.

Oltre NON sapere cosa è la Frequenza, non siamo capaci di misurarla, per quello che è.

È come se, nella vita di tutti i giorni, di un mobile con 3 ante di 55 cm, scrivessimo che è 2 metri.

Perché Il metro che abbiamo utilizzato per misurarlo è lungo 2 metri.

Pertanto si inizia a misurare prima che inizi il mobile ... si finisce dopo che il mobile è finito ...

... e così è lungo 2 metri. Proprio come volevamo noi.

Invece NO.

È 55 per 3 uguale 165, poi con i suoi fianchi. le divisioni tra le porte ed il fiato necessario al loro funzinamento

lo dobbiamo misurare da un lato all'altro da dove inizia a dove finisce ... 175 cm ... nella sua misura reale.

Penso sia abbastanza semplice, da capire che, non è colpa delle Venus, se ...

:) Buona giornata a tutte/i.
 
Ho riportato il numero progressivo dell' Estrazione (al posto della data)

* Calcolato tutti i RITARDI

* quello PRECEDENTE (aggiunto erroneamente)

* quello SUCCESSIVO (il Ritardo Corrente) (aggiunto erroneamente)

* quello dei 13 (sottolineando che sono 13 e non 14) RITARDI MISURABILI.

Tutti assieme fanno 200.

* 23 ESTRAZIONI DI RITARDO SONO PRIMA DELLE PRESENZE TROVATE.

* IL RITARDO CORRENTE 2 E' DOPO.

CI sono 23 +2 = 25 Estrazioni in più


Cioè ci sono 2 EXTRA (RITARDI) aggiunti ERRONEAMENTE.

Dei quali non si sa, quanto sono lunghi, come e se ci sono.

Occorre andare a cercarli, calcolare, ipotizzare, correggere.

Un disastro.

Tutti e 2, anche singolarmente diminuiscono il valore della Frequenza.

Per inciso, se poi ai 13 RITARDI togliamo "1" ad ognuno ... come si usa fare in lottologia ...

tutti i calcoli saranno, ancora più sbagliati.

Immagine.jpg

Mentre, a me, sembra che questi siano più giusti, semplici, facili, lineari, comprensibili.

:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 29 aprile 2025
    Bari
    03
    07
    32
    05
    33
    Cagliari
    66
    62
    27
    39
    26
    Firenze
    07
    41
    70
    75
    53
    Genova
    10
    26
    64
    44
    74
    Milano
    30
    76
    66
    51
    65
    Napoli
    56
    80
    34
    11
    29
    Palermo
    74
    37
    48
    13
    38
    Roma
    02
    21
    18
    51
    68
    Torino
    64
    06
    32
    88
    54
    Venezia
    66
    01
    11
    74
    54
    Nazionale
    65
    63
    50
    55
    33
    Estrazione Simbolotto
    Genova
    45
    10
    12
    24
    40
Indietro
Alto