Novità

script tabella decine naturali

natolibero60

Junior Member
Ciao, sto imparando attraverso gli esempi trovati qua e la a fare degli script per spaziometria.
Mi servirebbe uno script che realizzi una tabella come questo esempio perchè non ho trovato niente:

su 180 estrazioni dal al e scelta di estratto-ambo-terno

RUOTA DECINANATURALE RITARDO FREQUENZA
bari 1/10 20 15
bari 11/20 11 12
bari 21/30 10 6
bari 31/40 5 8
bari 41/50 9 51
bari 51/60 22 3
bari 61/70 55 66
bari 71/80 14 22
bari 81/90 14 25
cagliari 1/10 22 32
eccc per tutte e 12 le ruote
Grazie in anticipo per l'aiuto.
 
Ciao benvenuto :)
Per cercare d 'imparare un po io ho cominciato a fare un po di codice poi, i soliti noti , armati di proverbiale pazienza ,mi spiegavano dove sbagliavo:) e con molta più pazienza mi spiegavano come correggere.
In realtà lo fanno ancora:)(grazie)
Per cominciare poi posta tu qualcosa
Codice:
Sub main ' sub principale
Call getTitoli   'sub secondaria per intestazione tabella
Call creatabella ' comando che crea la tabella
End sub  ' chiudo la sub
Sub getTitoli 
Dim aTitoli  ' dichiarò le variabili
aTitoli =array  ("","RUOTE ","FORMAZIONE ","FREQ","RIT ", " RITMAX ","INC.RIT ")
Call inittabella ( Atitoli, vbblue, ,,vbyellow) ' riga intestazione 
End sub

Continua tu
Ciao;)
 
Ultima modifica:
Ciao eugenio:)
Allora cosa vogliamo ottenere?
In un range la statistica delle decine naturali
Range
Ini=estrazionefin-(180+1)
Fin=estrazionefin


Ora Costruiamo una funzione dove prendere le decine.
A dopo;)
Ci sono vari modi io .ne ho trovato uno sicuramente c'è di meglio ma intanto vediamo le vostre;)
 
Ultima modifica:
Ciao dallo script
Per estratto
180 estrazioni
Decina 71...80
Ruota Fi-Mi
rit =5
RitMax =5
Cmq il ritardo max di una decina su ruota è 13
Ciao :)
Dai forza con lo script.
Sequenza
Range Estrazioni
Seleziona esito

Poi facciamo la statistica
Via,)
 
Lo script è molto semplice se stai imparando posta il codice che hai scritto.
In base alla esito che scegli calcoli il ritardo dalla estratto alla cinquina .

Ciao:)
 
prendendo qua e là leggendo alcuni esempi. E ora non so andare avanti. aiuto!!!!

Sub Main ' sub principale
Dim Ruota(01),num(20)

sorte = CInt(InputBox("SORTE",,2))
ce = CInt(InputBox("Per quante estrazioni cerco FREQUENZA ?",,180))
fin = CInt(InputBox("Estrazione fine ricerca",,EstrazioneFin))
Scrivi "Ricerca dal " & DataEstrazione(fin - ce) & " al " & DataEstrazione(fin),1,0
Scrivi" per " &((EstrazioneFin) -(EstrazioneFin - ce)) & " estrazioni",1
Call getTitoli 'sub secondaria per intestazione tabella
Call CreaTabella ' comando che crea la tabella
End Sub ' chiudo la sub

Sub getTitoli
Dim aTitoli ' dichiarò le variabili
aTitoli = Array("","RUOTE ","FORMAZIONE ","FREQ","RIT "," RITMAX ","INC.RIT ")
Call InitTabella(aTitoli,vbBlue,,,vbYellow) ' riga intestazione
End Sub
 
Ciao bravo nato
Genio e tu?

Codice:
Sub main ' sub principale
'  tutto si migliora
' verificare gli output 
Dim Ini, Fin
Dim nConc
Dim id Sorte
Dim idForm
Dim  aNum ( 11)
Dim idRuote 
Dim idRiga ' 
Dim aRuota  (1)
nconc=cint (inpubox ("seleziona quanti Conc esaminare","Range estrazioni ",180))
Fin=estrazionefin 
Ini=fin-(nConc+1)
Idsorte =scegliesito 
Call scrivi ("Inizio     :  "&getinfoestrazione (ini))
Call scrivi ("Fine       :  "&getinfoestrazione  (fin))
Call getTitoli   'sub secondaria per intestazione tabella
IdRiga =0
For idRuote =1 To 12 
ARuota  (1 ) = idruote 
' codice da scrivere
'For idform= 0 To 8
IdRiga =idRiga +1
' Call getArrayFormazione  ( che manca? )

Call statisticaformazioneturbo ( aNum, aRuota, Idsorte, rit,RitMax, incR, Freq, ini,fin)
Next 
Next 
Call creatabella ' comando che crea la tabella
End sub  ' chiudo la sub
Sub getTitoli 
Dim aTitoli  ' dichiarò le variabili
aTitoli =array  ("","RUOTE ","FORMAZIONE ","FREQ","RIT ", " RITMAX ","INC.RIT ")
Call inittabella ( Atitoli, vbblue, ,,vbyellow) ' riga intestazione 
End sub
Sub getArrayFormazione (idFor, aNum)
Dim id,i
I=0
For id = 1 To 90
If decinaNaturale (id)=idFor  Then
I=i+1
ANum  (i)=Id
End if
Next

End sub

Continuate voi come utilizziamo la sub creata?
Creare la sub della tabella fuori dalla sub main
Ciao;)
 
Ultima modifica:
per ora mi fermo qui e imparo da voi guruscriptomani, se arriviamo alla fine me lo studio riga per riga. grazie di tutto, forse un giorno mi avvicinerò alla vostra bravura.
 
Ciao Ilegend ...

Come cronista/osservatore la proposta di script che stai formulando è ... per addeti ai lavori.

Forse, non è semplice, per chi è alle prime armi, trovarsi con un esempio complicato

e non (ancora) funzionante anche e per errori di sintassi.

Non è problema. Lo si evince dal tono delle domande ... a cui stai rispondendo.

Sono richieste di uno che sa.

Dunque anche se non direttamente interpellato mi permetto alcune cosette.

Dim ( 10 ... non 11). 10 sono già 11 dunque sono già sovrabbondanti per i 10.

Poi un paio di errori: Manca una "T" in inputbox ed il nome di una del variabili ha o manca di uno spazio.

Ultimo, ma non ultimo ....

In questo caso, lo script, quasi si veste di ignoranza lottologica ... a cui deve supplire il Pc.

Mi spiego con una immagine-esempio considerando che, tempo fa, avevi chiesto ... dell'ottimizzazione.

E' come assistere alla curiosità di un bambino che continua a chiedere all' adulto-lottologo (ovvero al PC che sa) ...

e 1 ? e 2 ? e 3 ? e 4 ? ... appartiene alla decina "xyz" ?

Quindi tutte ed immancabilmente ... tutte le volte, le stesse domande. 90.

Se tuttavia il compito è definito e risaputo, nel senso che, abbiamo "ricevuto" una cabala

che l'abbiamo interiorizzata; Questa cabala che, poi, noi l' abbiamo "insegnata" al PC,

attribuendole il nome di una istruzione dedicata. Ora che "Lui", la ricorda e la sa riconoscere ...

Se è vero che questa memoria ci è utile ausilio al nostro (a volte anche ignorante e fievole) sapere,

è anche vero che se, "noi sappiamo", possiamo evitare molte domande ... inutili. Risparmiando tempo.

Dunque ti propongo alternativa, una correzioni orotografiche, e di contenuto.

Su quelle di contenuto ... Con "un valore" (il primo) si intesse l' array che lo contiene.

Questo implica un notevole risparmio di variabili e di codice, e di tempo.

Codice che, si svilupperà appunto, almeno 10 volte, più velocemente.

Semplicemente sapendo ... senza dover chiedere.

:)

Codice:
Sub Main ' sub principale
'  tutto si migliora
' verificare gli output
Dim Ini,Fin
Dim nConc
Dim idSorte
Dim idForm
Dim aNum(10)
Dim idRuote
Dim idRiga '
Dim aRuota(1)
nConc = Int(InputBox("seleziona quanti Conc esaminare","Range estrazioni ",180))
Fin = EstrazioneFin
Ini = Fin -(nConc + 1)
idSorte = ScegliEsito
Call Scrivi("Inizio     :  " & GetInfoEstrazione(Ini))
Call Scrivi("Fine       :  " & GetInfoEstrazione(Fin))
Call getTitoli 'sub secondaria per intestazione tabella
idRiga = 0
For idRuote = 1 To 12
aRuota(1) = idRuote
' codice da scrivere
'For idform= 0 To 8
idRiga = idRiga + 1
' Call getArrayFormazione  ( che manca? )

Call StatisticaFormazioneTurbo(aNum,aRuota,idSorte,rit,RitMax,incR,Freq,Ini,Fin)
Next
Call CreaTabella ' comando che crea la tabella

''''''''''''''''''''''''''''''''''''''''' Call-Test da ricollocare
  [B][COLOR=#0000c0]For[/COLOR][/B] [B][COLOR=#ff00ff]idForm[/COLOR][/B] [B][COLOR=#ff0000]=[/COLOR][/B] 0 [B][COLOR=#0000c0]To[/COLOR][/B] 8
  [B][COLOR=#ff00ff]aNum[/COLOR][/B](1) [B][COLOR=#ff0000]=[/COLOR][/B] [B][COLOR=#ff00ff]idForm[/COLOR][/B]
  [B][COLOR=#0000c0]Call[/COLOR][/B] [B][COLOR=#808080]getArrayFormazione[/COLOR][/B]([B][COLOR=#ff00ff]aNum[/COLOR][/B])
  [B][COLOR=#800080]Scrivi[/COLOR][/B] [B][COLOR=#800080]StringaNumeri[/COLOR][/B]([B][COLOR=#ff00ff]aNum[/COLOR][/B],,[B][COLOR=#ff00ff]True[/COLOR][/B])
  [B][COLOR=#0000c0]Next[/COLOR][/B]
 '''''''''''''''''''''''''''''''''''''''''


End Sub ' chiudo la sub
Sub getTitoli
Dim aTitoli ' dichiarò le variabili
aTitoli = Array("","RUOTE ","FORMAZIONE ","FREQ","RIT "," RITMAX ","INC.RIT ")
Call InitTabella(aTitoli,vbBlue,,,vbYellow) ' riga intestazione
End Sub

[B]Sub[/B] [B][COLOR=#808080]getArrayFormazione [/COLOR][/B]([B][COLOR=#ff00ff]aNum[/COLOR][/B])  
[B][COLOR=#0000c0]Dim[/COLOR][/B] [B][COLOR=#ff00ff]U[/COLOR][/B]
  D [B][COLOR=#ff0000]=[/COLOR][/B] [B][COLOR=#ff00ff]aNum[/COLOR][/B](1)
  [B][COLOR=#0000c0]For[/COLOR][/B] [B][COLOR=#ff00ff]U[/COLOR][/B] [B][COLOR=#ff0000]=[/COLOR][/B] 1 [B][COLOR=#0000c0]To[/COLOR][/B] 10
  [B][COLOR=#ff00ff]aNum[/COLOR][/B]([B][COLOR=#ff00ff]U[/COLOR][/B]) [B][COLOR=#ff0000]=[/COLOR][/B] 10 [B][COLOR=#ff0000]*[/COLOR][/B] D [B][COLOR=#ff0000]+[/COLOR][/B] [B][COLOR=#ff00ff]U[/COLOR][/B]
  [B][COLOR=#0000c0]Next[/COLOR][/B]
  [B][COLOR=#0000c0]End [/COLOR][/B][B][COLOR=#0000c0]Sub[/COLOR][/B]
 
Ultima modifica:
Ciao joe grazie mille per la formula.
Come dicevo ci sono persone molti pazienti che ancora mi spiegano come migliorare:)
Allora tornando al completamento dello script:)
Ps
Gli errori vengono dalla scrittura con il cell chiedo scusa

Codice:
Sub Main ' sub principale
'  tutto si migliora
' verificare gli output
Dim Ini,Fin
Dim nConc
Dim idSorte
Dim idForm
Dim aNum(10)
Dim idRuote
Dim idRiga '
Dim aRuota(1)
nConc = Int(InputBox("seleziona quanti Conc esaminare","Range estrazioni ",180))
Fin = EstrazioneFin
Ini = Fin -(nConc + 1)
idSorte = ScegliEsito
Call Scrivi("Inizio     :  "& GetInfoEstrazione(Ini))
Call Scrivi("Fine       :  "&GetInfoEstrazione(Fin))
Call getTitoli 'sub secondaria per intestazione tabella
idRiga = 0
For idRuote = 1 To 12
aRuota(1) = idRuote
' codice da scrivere
For idform= 0 To 8
idRiga = idRiga + 1
ANum ( 1 ) = idform
Call getArrayFormazione ( aNum ) 


Call StatisticaFormazioneTurbo(aNum,aRuota,idSorte,rit,RitMax,incR,Freq,Ini,Fin)
Redim aTab (7)
Call getTabella  (atab,aRuota(1), aNum, Freq, rit, RitMax, incr)
Call addrigatabella ( atab ) 
Call colorecell(idRiga, atab)
Next
Call CreaTabellaordinabile  ' comando che crea 


End Sub ' chiudo la sub
Sub getTitoli
Dim aTitoli ' dichiarò le variabili
aTitoli = Array("","RUOTE ","FORMAZIONE","FREQ","RIT","RITMAX","INC.RIT")
Call InitTabella(aTitoli,vbBlue,,,vbYellow) ' riga intestazione
End Sub
Sub getTabella  (atab, aRuota, aNum, Freq, rit, RitMax, Incr )
Atab ( 1 ) = siglaruota ( aruota )
Atab ( 2 ) = stringanumeri ( aNum ) 
Atab (3)=freqtot
Atab (4)=rit
Atab(5)= RitMax 
Atab ( 6)= rit -RitMax 
Atab (7)=incr
End sub
Sub coloracell(idRiga, atab ) 
Dim cell 
For cell  =1 To  ubound ( atab ) 
If pari (idRiga ) Then Call setcolorecella  (cint  (cell),rgb  (240,240,240),vbblue )
Next
End sub
Sub getArrayFormazione(aNum)
Dim U
D = aNum(1)
For U = 1 To 10
aNum(U) = 10 * D + U
Next
End Sub
Ciao controllate sempre eventuali errori di scrittura
Ciao grazie joe:)
 
Ultima modifica:
Ciao joe se passati idform alla sub sarebbe errato?

For idform = 0 To 8
Call getArrayFormazione( idform, aNum )
Next
Call

GetArrayFormazione (idform, aNum )
Dim U
For u=1 To 10
ANum ( u)=10*idform +u
Next
End sub
Sì eliminano due passaggi o si commettono degli errori:)?
Ciao e grazie
 
Codice:
Sub Main ' sub principale
	'  tutto si migliora
	' verificare gli output
	Dim Ini,Fin
	Dim nConc
	Dim idSorte
	Dim idForm
	Dim aNum(10)
	Dim idRuote
	Dim idRiga '
	Dim aRuota(1)
	nConc = Int(InputBox("seleziona quanti Conc esaminare","Range estrazioni ",180))
	Fin = EstrazioneFin
	Ini = Fin -(nConc + 1)
	idSorte = ScegliEsito
	Call Scrivi("Inizio     :  " & GetInfoEstrazione(Ini))
	Call Scrivi("Fine       :  " & GetInfoEstrazione(Fin))
	Call getTitoli 'sub secondaria per intestazione tabella
	idRiga = 0
	For idRuote = 1 To 12
		aRuota(1) = idRuote
		' codice da scrivere
		For idForm = 0 To 8
			idRiga = idRiga + 1
			aNum(1) = idForm
			Call getArrayFormazione(aNum)
			Call StatisticaFormazioneTurbo(aNum,aRuota,idSorte,rit,RitMax,incR,Freq,Ini,Fin)
			ReDim aTab(7)
			Call getTabella(aTab,aRuota(1),aNum,Freq,rit,RitMax,incr)
			Call AddRigaTabella(aTab)
			Call coloracell(idRiga,aTab)
		Next
	Next
	
		Call CreaTabellaOrdinabile ' comando che crea
End Sub ' chiudo la sub
Sub getTitoli
	Dim aTitoli ' dichiarò le variabili
	aTitoli = Array("","RUOTE ","FORMAZIONE","FREQ","RIT","RITMAX","INC.RIT")
	Call InitTabella(aTitoli,vbBlue,,,vbYellow) ' riga intestazione
End Sub
Sub getTabella(atab,aRuota,aNum,Freq,rit,RitMax,Incr)
	atab(1) = SiglaRuota(aRuota)
	atab(2) = StringaNumeri(aNum,,True)
	atab(3) = freqtot
	atab(4) = rit
	atab(5) = RitMax
	atab(6) = rit - RitMax
	atab(7) = Incr
End Sub
Sub coloracell(idRiga,atab)
	Dim cell
	For cell = 1 To UBound(atab)
		If pari(idRiga) Then Call SetColoreCella(CInt(cell),RGB(240,240,240),vbBlue)
	Next
End Sub
Sub getArrayFormazione(aNum)
	Dim U
	D = aNum(1)
	For U = 1 To 10
		aNum(U) = 10 * D + U
	Next
End Sub
 
Per chi volesse potrebbe aggiungere questa riga
Sotto gli altri scrivi

Scrivi "Esito ricerca : "&nomesorte(idSorte )
× joe
Ciao joe grazie per aver riportato il codice corretto.
Invece per la tua funzione ?
Chiedo perché vorrei capire quando è il caso di tagliare i passaggi e quando no.
L altra volta abbiamo scritto la stessa funzione tu in un passaggio unico io in 4.
Ovviamente luigi aveva detto che la tua era più veloce.
Lo script è talmente veloce che non si riesce a contare in secondi
Ciao ancoraggio mille.
Imparato da voi;)
 
Ultima modifica:
Ciao Ilegend

Si tratta di essere pragmatici.

Se funziona per bene ... è giusta.

Se funziona anche più velocemente: è migliore.

Come diceva e confermava Luigi ... veloce per una volta ... non si riesce a valutare.

Però ... per un milione di volte ... anche differenze minime vengono evidenziate.

Sicchè possiamo dire che cosi: Sul mio PC siamo nell'ordine di 4 milionesimi di secondo a decina.

Basta testare analogamente l'altra soluzione ... e statisticamente rilevare quale delle due è meglio,

... in termini di velocità e/o se sono paragonabili.

Uno script più semplice, meglio strutturato, piu compatibile ... potrebbe essere considerato "migliore"

ad altri tipi di osservazione/classificazione/facilità di lettura/revisione.

Ultimo: Ho testato questo piccolo script, anche col vetusto L8.

Così scritto è totalmente compatibile e funzionante.

Esegue sostanzialmente con identica velocità nei due ambienti a confronto.

Codice:
'Option Explicit
Sub Main
T = Timer
Dim aNum(10)
For X = 1 To 1000000
For idform = 0 To 8
Call GetArrayFormazione(idform,aNum)
Next
Next
Scrivi Timer - T & " secondi"
End Sub
Sub GetArrayFormazione(idform,aNum)
Dim U
For U = 1 To 10
aNum(U) = 10*idform + U
Next
End Sub
 
Ultima modifica:
I legend ...

Non ricordo esattamente il contesto.

Ma per quello che ricordo non si riferiva ad un confronto, tra noi, ma a qualcsa di più simile a questo

che riporto come mia esperienza: Uno script, in genere, è più lento del programma.

Per contro ... uno script ben ottimizzo può anche essere più veloce del programma, perchè,

magari utilizza un algoritmo (più studiato / migliorato) e/o seleziona solo la parte dei risultati da ottenere.

:)
 
Ciao joe grazie mille anche per questo ultimo script:)
È davvero molto utile:)
Quello che dici è vero ma io mi riferivo quando con la guida di luigi abbiamo scritto la funzione rls
Qualcosa di simile
Rit= ari (num)
Tu scrivesti direttamente così io un papiro:(
Grazie mille
Sei sempre gentilissimo e disposto ad insegnare
P.s
La differenza ho notato che è davvero minima
Ho lanciato anche la prima funzione che avevo scritto ...
Su un range di centomila lo dcript non gira
Su 10000 e 10 volte piu lento Grazie per l ottima ottimizzazione :)
Il gioco di parole è voluto
Ciao
Pps:)
La mia non era ignoranza lotto logica
Ma proprio ignoranza informatica:)
Ho molto da imparare, e mi impegno con grandissimo piacere nel farlo.
Grazie per tutto :)
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    giovedì 23 gennaio 2025
    Bari
    86
    50
    83
    38
    78
    Cagliari
    11
    36
    52
    31
    74
    Firenze
    56
    59
    86
    27
    84
    Genova
    03
    61
    53
    11
    38
    Milano
    13
    14
    79
    87
    47
    Napoli
    21
    90
    48
    55
    37
    Palermo
    56
    46
    59
    02
    53
    Roma
    74
    13
    07
    38
    77
    Torino
    27
    54
    62
    36
    81
    Venezia
    09
    14
    69
    28
    62
    Nazionale
    32
    73
    27
    11
    51
    Estrazione Simbolotto
    Bari
    36
    27
    19
    08
    24

Ultimi Messaggi

Indietro
Alto