Novità

aiuto per script

i legend

Premium Member
Ciao a tutti
sto provando ad avere delle nuove informazioni sulle formazioni che mi interessano.
Ho provato a scrivere qualcosina in pseudo script
ma avrei bisogno del vostro aiuto.
grazie anticipatamente in ogni caso.

inserisco immagine e pseudo code
Tab_Isocroni.jpg

Codice:
Option Explicit
Sub Main
    Dim Ini,Fin,nEstr,k,x
    Dim nNumeri,aSviluppo
    Dim nSorte 
    nEstr=CInt(InputBox("Quante estrazioni vuoi esaminare?","Analizza"))
    Fin=EstrazioneFin
    Ini=Fin-nEstr
     Call ScegliNumeri(nNumeri)
        ' aSviluppo= ScegliCombinazione ossia sviluppo in ambo terno ecc...
        nSorte= CInt(ScegliEsito)  '  sorte da analizzare
        
     
    For k =1 To UBound(nNumeri)
    ' sviluppo le combinazioni es: 01.02.03; 01.02.04; ecc  ecc
    aSviluppo=SviluppoIntegrale(k,nSorte)
        Next    
                ReDim Tab(10)
                InitTabella Tab,RGB(128,0,64),1,3,RGB(0,255,64),"Times new Roman",1,1

        Tab(1)="Id"
        Tab(2)="Sviluppo"
        Tab(3)="Isocronia" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale 
        Tab(4)="Freq."
        Tab(5)="S.Freq" ' =(frequenza)-(frequenza teorica)
        Tab(6)="RMT" 'ritardo medio teorico formazione
        Tab(7)="R.C" ' ritardo cronologico
        Tab(8)="R.C.S" ' ritardo cronologico storico
        Tab(9)="Inc.R" ' incremento dal ritardo precedente
        Call Scrivi (Tab )
    
End Sub
sarebbe possibile ordinare le colonne in ordine decrescente sa scelta?
Cordiali saluti

I Legend
 
Ultima modifica:
I legend, vedo che vuoi cominciare nel modo + complicato.
ti invio script un esmpio di costruzione tabella di Luigi
Codice:
Sub Main
	TabellaClassica
	TabellaSinistraDestra
End Sub
Sub TabellaClassica
	Dim sTesto
	Dim k
	Dim idEstr
	Dim e
	idEstr = EstrazioneFin
	sTesto = "Esempio di tabella alimentata in modo classico" & vbCrLf & _
	"si intende alimentare la tabella con i numeri estratti in una specifica estrazione" & vbCrLf & _
	"come si nota le intestazioni della tabella sono affiancate"
	
	Call Scrivi(sTesto)
	Call Scrivi
	ReDim aTitoli(6)
	aTitoli(1) = "   Ruota    "
	For k = 2 To 6
		aTitoli(k) = " Pos " & k - 1 & " "
	Next
	Call InitTabella(aTitoli,,"left")
	For k = 1 To 12
		If k <> 11 Then
			ReDim aRighe(6)
			aRighe(1) = NomeRuota(k)
			For e = 1 To 5
				aRighe(e + 1) = Estratto(idEstr,k,e)
			Next
			Call AddRigaTabella(aRighe,,"center")
		End If
	Next
	Call CreaTabella
End Sub
Sub TabellaSinistraDestra
	Dim sTesto
	Dim k
	Dim idEstr
	Dim e
	Dim nColonne
	Dim nRighe
	Dim j
	Dim nRiga,nColonna
	
	
	idEstr = EstrazioneFin
	sTesto = "Esempio di tabella alimentata da sinistra a destra " & vbCrLf & _
	"si intende alimentare la tabella con i numeri estratti in una specifica estrazione" & vbCrLf & _
	"le intestazioni della tabella in questo caso si trovano una sotto l'altra anziche una a fianco " & vbCrLf & _
	"all'altra come nella tabella classica , come si nota lo spazio occupato si estende in orizzontale"
	Call Scrivi(sTesto)
	Call Scrivi
	'sappiamo che la tabella è una griglia di
	' 12 righe date da 1 intestazione + 11 ruote
	' e 6 colonne date da 1 NomeRuota + 5 numeri estratti
	'invece di alimentare la tabella andiamo prima ad alimentare un array
	'che la rappresenti cosi avremo gia tutti i dati in memoria
	
	
	' dichiaro l'array che rappresenta la tabella
	ReDim aTable(12,6) ' 12 righe 6 colonne
	
	' alimento l'array
	' prima alimento l'intestazione
	aTable(1,1) = "Ruota"
	For k = 2 To 6
		aTable(1,k) = "Pos" & k - 1
	Next
	
	' poi i nomi ruota e i numeri estratti
	For k = 1 To 12
		If k < 11 Then
			aTable(k + 1,1) = NomeRuota(k)
			For e = 1 To 5
				aTable(k + 1,e + 1) = Estratto(idEstr,k,e)
			Next
			
		ElseIf k = 12 Then
			aTable(k,1) = NomeRuota(k)

			For e = 1 To 5
				aTable(k,e + 1) = Estratto(idEstr,k,e)
			Next
		
		End If
	Next
	' ora abbiamo tutta la tabella in memoria contenuta nell'array
	' possiamo leggere l'array in modo opportuno per alimentare
	' la Tabella da sx a dx pero ancora una volta invece di alimentare
	' la Tabella stessa alimentiamo un secondo Array che stavolta
	' sara proprio alimentato da sinistra a destra
	
	Call CreaTabellaSxDx(aTable)
	
End Sub

Sub CreaTabellaSxDx(aTable)
	
	' questa funzione riceve in input un array che rappresenta
	' una tabella classica alimetata dall'alto in basso
	' e crea una tabella hrml alimentata da sinistra a destra
	
	' questa funzione puo essere riutilizzata cosi com'è senza cambiarla
	' basta passargli l'array con la tabella classica  qualsiasi esso sia
	
	' per raggiungere lo scopo creiamo prima un nuovo array che verra alimentato
	' da sinistra a destra e poi da questo creeremo effettivamente la tabella
	
	Dim k
	Dim nColonne
	Dim nRighe
	Dim j
	Dim nRiga,nColonna
	
	' dovemdo fare da sinistra a destra quelle che prima
	' erano righe ora sono colonne e viceversa
	nRighe = UBound(aTable,2) ' le vecchie colonne diventano le righe
	nColonne = UBound(aTable) ' le vecchie righe diventano colonne
	
	' creo un altro array che contiene gli stessi valori ma da sinistra a destra
	' come spiegato sopra
	ReDim aTableSD(nRighe,nColonne)
	
	' alimento il nuovo array leggendo dall'array originale che rappresentava l'intera tabella
	' in modo classico
	For k = 1 To UBound(aTable)
		nColonna = nColonna + 1
		nRiga = 0
		For j = 1 To UBound(aTable,2)
			nRiga = nRiga + 1
			aTableSD(nRiga,nColonna) = aTable(k,j)
		Next
	Next
	
	' ora in memoria ho un array con la stessa forma della tabella
	' che va da sx a dx e lo posso usare per creare finalmente
	' la tabella che volevo
	
	ReDim aTitoli(nColonne)
	For k = 1 To nColonne
		aTitoli(k) = "   " & aTableSD(1,k) & "   "
	Next
	Call InitTabella(aTitoli,,"left")
	For k = 2 To nRighe ' parte da riga 2 perche la riga dei titoli era gia stata trattata		
			ReDim aRighe(nColonne)
			For j = 1 To nColonne
				aRighe(j) = aTableSD(k,j)
			Next
			
			Call AddRigaTabella(aRighe,,"center")
		
	Next
	Call CreaTabella
End Sub
 
Questo è un'altro esempio, vedi come puoi adattarlo alle tue esigenze.

Codice:
' Option Explicit ' se lo usi devi definire tutte le variabil
Sub Main
	Dim Ini,Fin,nEstr,k,x
	Dim s,e
	Dim nNumeri,aColonne
	Dim nSorte
	'''''''''''nEstr = CInt(InputBox("Quante estrazioni vuoi esaminare?","Analizza"))
	Fin = EstrazioneFin
	Ini = Fin - nEstr
	Call ScegliNumeri(nNumeri)
	' aColonne= ScegliCombinazione ossia sviluppo in ambo terno ecc...
	nSorte = CInt(ScegliEsito) '  sorte da analizzare
	ReDim aTitolo(9)
	'aTitolo(.)'
	aTitolo(1) = "Id"
	aTitolo(2) = "Sviluppo"
	aTitolo(3) = "Isocronia" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
	aTitolo(4) = "Freq."
	aTitolo(5) = "S.Freq" ' =(frequenza)-(frequenza teorica)
	aTitolo(6) = "RMT" 'ritardo medio teorico formazione
	aTitolo(7) = "R.C" ' ritardo cronologico
	aTitolo(8) = "R.C.S" ' ritardo cronologico storico
	aTitolo(9) = "Inc.R" ' incremento dal ritardo precedente
	InitTabella aTitolo,RGB(128,0,64),1,3,RGB(0,255,64),"Times new Roman",1,1
	aColonne = SviluppoIntegrale(nNumeri,nSorte) ' sviluppo le combinazioni es: 01.02.03; 01.02.04; ecc  ecc
	For k = 1 To UBound(aColonne) ' ciclo per leggere la colonna k della matrice aColonne
		s = "" 'FormatSpace(k,10,True) & "- "
		For e = 1 To nSorte
			s = s & Format2(aColonne(k,e)) & "-"
		Next
		s = Left(s,Len(s) - 1) ' tolgo l'ultimo trattino
		'Call Scrivi(s) ' (prova di scrittura in output)
		ReDim aRisultato(9)
		aRisultato(1) = 1
		aRisultato(2) = s
		aRisultato(3) = 3
		aRisultato(4) = 4
		aRisultato(5) = 5
		aRisultato(6) = 6
		aRisultato(7) = 7
		aRisultato(8) = 8
		aRisultato(9) = 9
		Call AddRigaTabella(aRisultato,,,1,,"Calibri")
	Next
	Call SetTableWidth("100%")
	'Call Scrivi (Tab )
	Call CreaTabella
End Sub

Se hai bisogno di altre specifiche,chiedi pure.... ma studiali anche.
Notte.
 
Ciao a tutti.
Completata la richiesta input.
La funzione che fa la statistica sui numeri isocroni non l'ho trovata.
per frequenza e ritardi c'è la funzione che mi aveva postato Mike, statistica formazione turbo
Codice:
Option Explicit ' se lo usi devi definire tutte le variabil
Sub Main
    Dim Ini,Fin,nEstr,k,x,ru
    Dim s,e
    Dim nNumeri,aColonne
    Dim nCombinazione,nSorte
    nEstr = CInt(InputBox("Quante estrazioni vuoi esaminare?","Analizza"))
    Fin = EstrazioneFin
    Ini = Fin - nEstr
    Call ScegliNumeri(nNumeri)
    ' aColonne= ScegliCombinazione ossia sviluppo in ambo terno ecc...
    nCombinazione = CInt(InputBox("1=Estratto ; 2=Coppia ; 3=Terzina ; 4=Quartina ; 5=Cinquina","Sviluppo Combinazione"))
    nSorte = CInt(ScegliEsito) '  sorte da analizzare
    ScegliRuote(ru) ' ruote su cui effettuare tutte le statistiche
    ReDim aTitolo(9)
    'aTitolo(.)'
    aTitolo(1) = "Id"
    aTitolo(2) = "Comb."
    aTitolo(3) = "ISCR" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
    aTitolo(4) = "F.R"
    aTitolo(5) = "(F.R - F.T)" ' =(frequenza)-(frequenza teorica)
    aTitolo(6) = "RMT" 'ritardo medio teorico formazione
    aTitolo(7) = "R.C" ' ritardo cronologico
    aTitolo(8) = "R.C.S" ' ritardo cronologico storico
    aTitolo(9) = "Inc.R" ' incremento dal ritardo precedente
    InitTabella aTitolo,RGB(128,0,64),,3,RGB(0,255,64),"Arial black",1,1
    aColonne = SviluppoIntegrale(nNumeri,nCombinazione) ' sviluppo le combinazioni es: 01.02.03; 01.02.04; ecc  ecc
    For k = 1 To UBound(aColonne) ' ciclo per leggere la colonna k della matrice aColonne
        s = "" 'FormatSpace(k,10,True) & "- "
        For e = 1 To nCombinazione
            s = s & Format2(aColonne(k,e)) & "-"
        Next
        s = Left(s,Len(s) - 1) ' tolgo l'ultimo trattino
        'Call Scrivi(s) ' (prova di scrittura in output)
        ReDim aRisultato(9)
        aRisultato(1) = k
        aRisultato(2) = s
        aRisultato(3) = 3
        aRisultato(4) = 4
        aRisultato(5) = 5
        aRisultato(6) = 6
        aRisultato(7) = 7
        aRisultato(8) = 8
        aRisultato(9) = 9
        Call AddRigaTabella(aRisultato,,,3,,"Calibrì",1,1)
    Next
    Call SetTableWidth("100%")
    'Call Scrivi (Tab )
    Call CreaTabella
End Sub

per statistica formazione turbo
Codice:
call StatisticaFormazione (aNumeri,aRuote,nsorte,ritardo,ritardomax,Frequenza,Ini,fin)
dove aNumeri = s   ossia lo sviluppo combinazioni
aRuote=ru con  funzione scegliruote
Nsorte=Nsorte   funzione scegliesito
ini e fin
non riesco ad inserire nel codice questo blocco per calcolare quello che mi serve sulle ruote
freq = SerieFreqTurbo(Ini,Fin,aNumeri,ru,1)
ritc = SerieRitardoTurbo(Ini,Fin,aNumeri,ru,1)

qui sono arenato. Ho scelto bene le funzioni da utilizzare?

Cordiali saluti

I Legend
 
Ciao I legend per me è + facile farti una sorte di script che faccia in qualche modo quello che vuoi ottenere, che spiegarti i passaggi.
Se hai pazienza di leggere i codici scriptici potrai capirne i passaggi ed i ragionamenti poi se ci sono domande cercheremo di spiegarli.

per ora leggi questo script.

Codice:
Sub Main
	Dim k
	Dim Classe
	Dim aCol
	ReDim aNum(90)
	Dim i
	Dim ruota(1)
	r = InputBox("Quale ruota ",,3)
	cl = InputBox("Quale classe di sviluppo",,3)
	sorte = InputBox("Quale sorte esito analizzo ",,2)
	capog = CInt(InputBox("Quale capogioco ",,38))
	
	ruota(1) = r
	ScegliNumeri(aNum)
	Scrivi " Sviluppo combinazione " & StringaNumeri(aNum) & " Con Capogioco > " & capog,1
	Scrivi " Sulla ruota di..." & NomeRuota(r),1
	Scrivi " In sviluppo di classe..." & cl,1
	ColoreTesto 2
	Scrivi " Verifica statistica per sorte di... " & NomeSorte(sorte),1
	ColoreTesto 1
	Scrivi " Sorte isocroni per...." & NomeSorte(cl),1
	
	ColoreTesto 0
	For k = 1 To UBound(aNum)
	aNum(0) = capog
		aNum(k) = aNum(k)
	Next
	Classe = cl
	ReDim atitoli(10)
	atitoli(1) = " Contatore "
	atitoli(2) = " Sviluppo comb. "
	atitoli(3) = " Ritardo "
	atitoli(4) = " Ritardo Max "
	atitoli(5) = " Frequenza "
	atitoli(6) = " Incrmax "
	atitoli(7) = " acol(1) "
	atitoli(8) = " Iso rit "
	atitoli(9) = " Iso fre "
	atitoli(10) = " Iso sto "
	Call InitTabella(atitoli,1,,3,5)
	If InitSviluppoIntegrale(aNum,Classe) > 0 Then
		Do While GetCombSviluppo(aCol) = True
			i = i + 1
			
			
			Call StatisticaFormazioneTurbo(aCol,ruota,sorte,sr,st,Incr,sf,EstrazioneIni,EstrazioneFin)
			Isorit = SerieRitardo(EstrazioneIni,EstrazioneFin,aCol,ruota,cl)
			isofre = SerieFreq(EstrazioneIni,EstrazioneFin,aCol,ruota,cl)
			isosto = SerieStorico(EstrazioneIni,EstrazioneFin,aCol,ruota,cl)
			ReDim avalori(10)
			avalori(1) = FormattaStringa(i,"00")& "  " & ii
			avalori(2) = StringaNumeri(aCol,,1)
			avalori(3) = sr
			avalori(4) = st
			avalori(5) = sf
			avalori(6) = Incr
			avalori(7) = aCol(1)
			avalori(8) = Isorit
			avalori(9) = Isofre
			avalori(10) = Isosto
			
			
			If avalori(7) = capog Then 
		Call AddRigaTabella(avalori,4,,3)
		Else
		Call AddRigaTabella(avalori,,,3)
		End If	
		Loop
		 			
			
			
		
	End If
	
	
	CreaTabella()
	ReDim atitoli1(6)
	atitoli1(1) = " Contatore "
	atitoli1(2) = " Sviluppo comb. "
	atitoli1(3) = " Ritardo "
	atitoli1(4) = " Ritardo Max "
	atitoli1(5) = " Frequenza "
	atitoli1(6) = " Incrmax "
	
Call InitTabella(atitoli1,1,,3,5)
Call StatisticaFormazioneTurbo(aNum,ruota,sorte,sr,st,Incr,sf,EstrazioneIni,EstrazioneFin)
Scrivi"Statistica Globale ",1
			ReDim avalori1(6)
			avalori1(1) = FormattaStringa(i,"0")
			avalori1(2) = StringaNumeri(aNum)
			avalori1(3) = sr
			avalori1(4) = st
			avalori1(5) = sf
			avalori1(6) = Incr
			
Call AddRigaTabella(avalori1,4,,3)
	CreaTabella()
	Scrivi
	Scrivi "Tabella Scripted by Mike58 ",1,- 1,3
End Sub
 
Vedo che Mike è andato oltre, ben venga il suo operato, comunque ti inserisco il mio costrutto lasciando a te il dovere di completarlo con i tuoi calcoli.( almeno le cose che dovrebbero essere semplici devi sforzarti a farle da solo)
file X I legend tabella2

Codice:
 Option Explicit ' se lo usi devi definire tutte le variabil
Sub Main
	Dim Ini,Fin,nEstr,k,x,r
	Dim s,e,ritardo,ritardomax,IncrRitMax,Frequenza,freq,ritc,freqTeorica
	Dim nNumeri,aColonne
	Dim aNumeri(90)
	Dim aRuote(12)
	Dim ru(12)
	Dim nCombinazione,nSorte
	nEstr = CInt(InputBox("Quante estrazioni vuoi esaminare?","Analizza",100))
	Fin = EstrazioneFin
	Ini = Fin - nEstr
	Call ScegliNumeri(nNumeri)
	' aColonne= ScegliCombinazione ossia sviluppo in ambo terno ecc...
	nCombinazione = CInt(InputBox("1=Estratto ; 2=Coppia ; 3=Terzina ; 4=Quartina ; 5=Cinquina","Sviluppo Combinazione",3))
	nSorte = CInt(ScegliEsito) '  sorte da analizzare
	'ru(1) = 1 '
	ru(1) = ScegliRuota '--> ScegliRuote (plurale) = non va bene perchè essa crea una arry che va gestita, con ciclo for tipo ciclo per le
	'combinazioni,  eventualmente servisse vedremo come farlo perchèin quelcaso si andrebbe a realizzare tante tabelle quante sono le ruote che scegli.
	 'l'ho modificato in ScegliRuota (singolare) per darti la possibiltà di andare oltre (non considera "Tutte").
	ReDim aTitolo(10)
	'aTitolo(.)'
	aTitolo(1) = "Id"
	aTitolo(2) = "Comb."
	aTitolo(3) = "ISCR" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
	aTitolo(4) = "F.R"
	aTitolo(5) = "(F.R - F.T)" ' =(frequenza)-(frequenza teorica)
	aTitolo(6) = "RMT" 'ritardo medio teorico formazione
	aTitolo(7) = "R.C" ' ritardo cronologico
	aTitolo(8) = "R.C.S" ' ritardo cronologico storico
	aTitolo(9) = "Inc.R" ' incremento dal ritardo precedente
	aTitolo(10) = "Ruota"
	InitTabella aTitolo,RGB(128,0,64),,3,RGB(0,255,64),"Arial black",1,1
	aColonne = SviluppoIntegrale(nNumeri,nCombinazione) ' sviluppo le combinazioni es: 01.02.03; 01.02.04; ecc  ecc
	For k = 1 To UBound(aColonne) ' ciclo per leggere la colonna k della matrice aColonne
		s = "" 'FormatSpace(k,10,True) & "- "
		For e = 1 To nCombinazione
			's = Format2(aColonne(k,e)) & "-"
			s = s & Format2(aColonne(k,e)) & "-"
			aNumeri(e) = aColonne(k,e)
			'Scrivi aNumeri(e) & ".." ' (prova di scrittura in output
		Next
		s = Left(s,Len(s) - 1) ' tolgo l'ultimo trattino
		
		Call StatisticaFormazioneTurbo(aNumeri,ru,nSorte,ritardo,ritardomax,IncrRitMax,Frequenza,Ini,Fin)
		freq = SerieFreqTurbo(Ini,Fin,aNumeri,ru,1)
		ritc = SerieRitardoTurbo(Ini,Fin,aNumeri,ru,1)
		freqTeorica = 2 'Inserisci il calcolo effettivo
		ReDim aRisultato(10)
		aRisultato(1) = k
		aRisultato(2) = s
		aRisultato(3) = 3 '"ISCR" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
		aRisultato(4) = Frequenza ' 4 '"Freq"
		aRisultato(5) =(freq - freqTeorica) 'x(Frequenza)e(Frequenza teorica) devi ricavare tu i riferimenti specifici che ti occorrono 		
		aRisultato(6) = ritc '6 '"RMT" 'ritardo medio teorico formazione
		aRisultato(7) = ritardo '7 '"R.C" ' ritardo cronologico
		aRisultato(8) = ritardomax ' 8 '"R.C.S" ' ritardo cronologico storico
		aRisultato(9) = IncrRitMax ' 9 ' "Inc.R" ' incremento dal ritardo precedente
		aRisultato(10) = NomeRuota(ru(1))
		Call AddRigaTabella(aRisultato,,,3,,"Calibrì",1,1)
	Next
	Call SetTableWidth("100%")
	
	Call CreaTabella ' se ti occorre, possiamo anche gestire la colonna su cui fare l'ordinamento
End Sub

Buon lavoro e cerchiamodi portare a casa .... la cassa.
un saluto anche a Mike
 
Ultima modifica:
Ciao Mike Grazie mille per il codice:
Ho provato a studiarlo e a commentarlo.
Se no chiedo troppo potresti dare uno sguardo ai commenti per vedere se ho capito correttamente? e spiegarmi dove non ho capito?
ti riposto il tuo codice:)
Codice:
Sub Main
    Dim k                  ' contatore
    Dim Classe        ' sviluppo in combinazione
    Dim aCol           ' Capogioco                   
    ReDim aNum(90)     ' Tutti i numeri
    Dim i
    Dim ruota(1)
    r = InputBox("Quale ruota ",,3)                                     ' se volessi fare la ricerca su 2 o 3 ruote? o Tutte?
    cl = InputBox("Quale classe di sviluppo",,3)             ' sviluppo combinazione
    sorte = InputBox("Quale sorte esito analizzo ",,2)    ' Estratto,ambo,terno,ecc
    capog = CInt(InputBox("Quale capogioco ",,38))     ' abbinamento fisso            ' se non scrivo nulla da sviluppo integrale?
    
    ruota(1) = r                                                                       ' ruota di ricerca
    ScegliNumeri(aNum)                                                      ' array dei numeri selezionati
    Scrivi " Sviluppo combinazione " & StringaNumeri(aNum) & " Con Capogioco > " & capog,1
    Scrivi " Sulla ruota di..." & NomeRuota(r),1
    Scrivi " In sviluppo di classe..." & cl,1
    ColoreTesto 2
    Scrivi " Verifica statistica per sorte di... " & NomeSorte(sorte),1
    ColoreTesto 1
    Scrivi " Sorte isocroni per...." & NomeSorte(cl),1    ' ???? per Isocronismo intendo numeri  Sincroni ma su Ruote Differenti 
    
    ColoreTesto 0
    For k = 1 To UBound(aNum)                                       ' ciclo l'array dei  90 numeri
    aNum(0) = capog                           ' (0) E' il capogioco
        aNum(k) = aNum(k)
    Next
    Classe = cl                                                                       ' sviluppo
    ReDim atitoli(10)            
    atitoli(1) = " Contatore "                                        ' identificativo combinazioni sviluppate
    atitoli(2) = " Sviluppo comb. "            ' Tutte le combinazioni
    atitoli(3) = " Ritardo "            ' Ritardo su Ruota selezionata della formazione?
    atitoli(4) = " Ritardo Max "            ' ritMax sempre su ruota selezionata?
    atitoli(5) = " Frequenza "
    atitoli(6) = " Incrmax "
    atitoli(7) = " acol(1) "                                                      ' Capogioco
    atitoli(8) = " Iso rit "                                                       ' non Ho capito '  |:-)
    atitoli(9) = " Iso fre "                ' non Ho capito '  |:-)
    atitoli(10) = " Iso sto "            ' non Ho capito '  |:-)
    Call InitTabella(atitoli,1,,3,5)
    If InitSviluppoIntegrale(aNum,Classe) > 0 Then          ' funzione per combinazione
        Do While GetCombSviluppo(aCol) = True    '???
            i = i + 1                            '  questo è il contatore che aumenta finchè finiscono le combinazioni
            
            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' ma questa tabella non viene stampata? Per cosa ci serve? Per rintracciare i valori da riportare nella tabella finale?
            '
            Call StatisticaFormazioneTurbo(aCol,ruota,sorte,sr,st,Incr,sf,EstrazioneIni,EstrazioneFin)
            Isorit = SerieRitardo(EstrazioneIni,EstrazioneFin,aCol,ruota,cl)                   ' Ritardo del Capogioco?
            isofre = SerieFreq(EstrazioneIni,EstrazioneFin,aCol,ruota,cl)        'Frequenza del capogioco?
            isosto = SerieStorico(EstrazioneIni,EstrazioneFin,aCol,ruota,cl)
            ReDim avalori(10)
            avalori(1) = FormattaStringa(i,"00")& "  " & ii
            avalori(2) = StringaNumeri(aCol,,1)
            avalori(3) = sr
            avalori(4) = st
            avalori(5) = sf
            avalori(6) = Incr
            avalori(7) = aCol(1)
            avalori(8) = Isorit
            avalori(9) = Isofre
            avalori(10) = Isosto
            
            
            If avalori(7) = capog Then 
        Call AddRigaTabella(avalori,4,,3)
        Else
        Call AddRigaTabella(avalori,,,3)
        End If    
        Loop                                                         ' perchè utilizziamo un ciclo While?La domanda probabilmente è sciocca ma vorrei capire |:-)
                     
            
            
        
    End If
    
    
    CreaTabella()
    ReDim atitoli1(6)
    atitoli1(1) = " Contatore "
    atitoli1(2) = " Sviluppo comb. "
    atitoli1(3) = " Ritardo "
    atitoli1(4) = " Ritardo Max "
    atitoli1(5) = " Frequenza "
    atitoli1(6) = " Incrmax "
    
Call InitTabella(atitoli1,1,,3,5)
Call StatisticaFormazioneTurbo(aNum,ruota,sorte,sr,st,Incr,sf,EstrazioneIni,EstrazioneFin)
Scrivi"Statistica Globale ",1
            ReDim avalori1(6)
            avalori1(1) = FormattaStringa(i,"0")
            avalori1(2) = StringaNumeri(aNum)
            avalori1(3) = sr
            avalori1(4) = st
            avalori1(5) = sf
            avalori1(6) = Incr
            
Call AddRigaTabella(avalori1,4,,3)
    CreaTabella()
    Scrivi
    Scrivi "Tabella Scripted by Mike58 ",1,- 1,3

Per Claudio

grazie anche a te.
Ora studio anche il tuo:)

Ho delle perplessità sulle ruote però. provo a fare delle prove con il foglio di calcolo cosi mi spiego meglio.
Per la cassa sono d'accordo con te.
 
Per la cassa vi aspetto anch'io.

Si !!! I legend hai + o - compreso il listato , piano piano imparerai a mettere ordine nei codici

se posso ulteriormente chiarirtiper la costruzione di una tabella 3 sono le cose da tenere presente.

1 titoli Tabella e inittabella
in mezzo ci sono i dati con i codici e valori calcolati.
2 valori e scrittura valori con addrigatabella
3 creatabella.

Per isocronismo hai ragione si tratta di :

isocronismo [Der. di isocrono] [LSF] La proprietà di fenomeni di avvenire nello stesso intervallo di tempo


quindi come dici tu evento è meglio verificarlo in + eventi e quindi + ruote, io praticamente lo avevo simulato sulla stessa ruota in pratica cercando lo stesso evento per la sorte massima della combinazione.

Se vuoi poi si può immettere su + ruote, devo vedere con un po' di calma, intanto comincia a familiarizzare con i codici e con gli esempi Test di spaziometria (l'anima del Nostro Luigi) e se c'è bisogno di ulteriore delucidazioni sia io che claudio, siamo qua.

Do WHILE è un loop tipo for-next e dice finchè trovi combinazioni di numeri validi sviluppa e cicla i numeri, finiti i numeri esci dal ciclo (questa è un po' complessa anche per me) chiusa dal loop.
 
Ultima modifica:
ciao a tutti
Grazie Mike , sei gentilissimo come sempre.:)
Grazie anche a claudio che ha realizzato lo script praticamente.

inserisco codice per calcolo frequenza teorica,per ottenere lo differenza tra freq Reale e frequenza Teorica ma non capisco perchè non va
posto due esempi
Codice:
Option Explicit
Sub Main
    Dim combinazione
    Dim sorte
    Dim ru
    Dim Valore
    combinazione=CInt(InputBox("1=Estratto,2=Coppia,3=Terna,4=Quaterna,5=cinquina","CombinazioneEstratti"))
    sorte=CInt(ScegliEsito)
    ru=CInt(InputBox("Inserisci su quante ruote vuoi effettuare il calcolo","Ruote"))

 Valore= CicloTeorico (combinazione,sorte,ru)
Call Scrivi (Valore)
End Sub
' non funziona
Codice:
Option Explicit
Sub Main
    Dim combinazione
    Dim sorte
    Dim ru
    Dim Valore
    combinazione=CInt(InputBox("1=Estratto,2=Coppia,3=Terna,4=Quaterna,5=cinquina","CombinazioneEstratti"))
    sorte=CInt(ScegliEsito)
    ru=CInt(InputBox("Inserisci su quante ruote vuoi effettuare il calcolo","Ruote"))

 'Valore= CicloTeorico (combinazione,sorte,ru)
valore=cicloteorico(3,2,10)  ' 3=Sviluppo,2=VerificaSorte,10=TutteleRuote  ' così funziona
Call Scrivi (Valore)
End Sub
'ma se scrivo CInt davanti scegliEsito o inputbox non dovrebbe restituirmi un valore numerico?


FrequenzaTeorica=NumeroEstrazioni/CicloTeorico

Cordiali saluti

I Legend

P.S
Comincio a capirci qualcosina e anche a divertirmi:)
 
Ultima modifica:
CicloTeorico


evidentemente in numero ruote non accetta il carattere alphaNumerico ha bisogno del numero intero e non basta nemmeno il cint.

ho provato anch'io e non funge
r = 3
valore = cicloteorico(comb,sorte,r)
mentre cosi
valore = cicloteorico(comb,sorte,3) funge




CicloTeorico(NumeroNumeri, Sorte, Optional NumeroRuote As Integer = 1, Optional posattive As Integer = 5, Optional numerigioco As Integer = 90) As Currency


Divertiti :rolleyes:
 
Codice:
Option Explicit
Sub Main
    Dim combinazione
    Dim sorte
    Dim ru
    Dim Valore
    combinazione = InputBox("1=Estratto,2=Coppia,3=Terna,4=Quaterna,5=cinquina","CombinazioneEstratti")
    sorte = ScegliEsito
    ru = InputBox("Inserisci su quante ruote vuoi effettuare il calcolo","Ruote")

 Valore = CicloTeorico(combinazione,sorte,CInt(ru))

Call Scrivi (Valore)
End Sub
'funziona

adesso funziona
 
da Help spaziometria

CicloTeorico

CicloTeorico(NumeroNumeri, Sorte, Optional NumeroRuote As Integer = 1, Optional posattive As Integer = 5, Optional numerigioco As Integer = 90) As Currency


da TECNOLOGIE DI windows Script

Funzione CIntVedere anche
Funzione CBool | Funzione CByte | Funzione CCur | Funzione CDate | Funzione CDbl | Funzione CLng | Funzione CSng | Funzione CStr | Funzioni Int e Fix
Requisiti
Versione 1
Restituisce un'espressione che è stata convertita in un valore Variant del sottotipo Integer.

CInt(espressione)
L'argomento espressione può essere rappresentato da una qualsiasi espressione valida.

Osservazioni
In generale, è possibile rendere più leggibile il codice utilizzando le funzioni di conversione dei sottotipi per indicare che il risultato di una determinata operazione deve essere espresso con un tipo di dati specifico anziché con il tipo di dati predefinito. La funzione CInt o CLng consente, ad esempio, di eseguire il calcolo su numeri interi nei casi in cui viene in genere eseguito il calcolo in valuta oppure in precisione singola o doppia.

La funzione CInt deve essere utilizzata in sostituzione di Val per eseguire conversioni da un tipo di dati a un sottotipo Integer che tengano in considerazione le diverse impostazioni internazionali.
 
Ultima modifica:
(:)Grazie Mike , :)Grazie Claudio)
Ok La tabella per la ricerca statistica su ruota è praticamente pronta.
Ora si dovrà trovare una soluzione per lo studio di più ruote.
Posto ancora uno studio basato sull'isocronismo dei 90 numeri con il numero 80 su tutte le ruote+Nazionale.
Ecco la tabella
80tt.jpg
Questi sono i 15 numeri che dalla assenza dell'80 su cagliari, sono sortiti maggiormente assieme all'80 su qualsiasi ruota
Ora posto sviluppo numerico in terzine
 
(:)Grazie Mike , :)Grazie Claudio)
Ok La tabella per la ricerca statistica su ruota è praticamente pronta. Bene, cominciamo a capire quale è lo script che vuoi usare,postalo completo
Ora si dovrà trovare una soluzione per lo studio di più ruote.Che cosa intendi di preciso, vuuoi fare l'analisi su 2 ruote separatamente o su due ruote contemporaneamente?

..............

avanti tutta birra e panini...
 
Ciao a tutti .
Ulteriore studio, anche su tutte in pole ambo :
80.41
terzine:
80.29.41
80.13.41

Cordiali saluti
I Legend.

P.S :
Claudio con lo script ci sono dei risultati che non mi tornano
appena mi è possibile posto lo script e le differenze.:)
Grazie
 
posto lo script fatto con Claudio:):
i valori di frequenza che mi ritorna non corrispondono a quelli reali
Vedi terzina :10.37.80 restituisce freq=4 per ambo
Codice:
Option Explicit ' se lo usi devi definire tutte le variabil
Sub Main
    Dim Ini,Fin,nEstr,k,x,r,nValore
    Dim s,e,ritardo,ritardomax,IncrRitMax,Frequenza,freq,ritc,freqTeorica
    Dim nNumeri,aColonne
    Dim aNumeri(90)
    Dim aRuote(12)
    Dim ru(12)
    Dim nCombinazione,nSorte
    nEstr = CInt(InputBox("Quante estrazioni vuoi esaminare?","Analizza",100))
    Fin = EstrazioneFin
    Ini = Fin - nEstr
    Call ScegliNumeri(nNumeri)
    ' aColonne= ScegliCombinazione ossia sviluppo in ambo terno ecc...
    nCombinazione = CInt(InputBox("1=Estratto ; 2=Coppia ; 3=Terzina ; 4=Quartina ; 5=Cinquina","Sviluppo Combinazione",3))
    nSorte = CInt(ScegliEsito) '  sorte da analizzare
    'ru(1) = 1 '
    ru(1) = ScegliRuota '--> ScegliRuote (plurale) = non va bene perchè essa crea una arry che va gestita, con ciclo for tipo ciclo per le
    'combinazioni,  eventualmente servisse vedremo come farlo perchèin quelcaso si andrebbe a realizzare tante tabelle quante sono le ruote che scegli.
     'l'ho modificato in ScegliRuota (singolare) per darti la possibiltà di andare oltre (non considera "Tutte").
    ReDim aTitolo(10)
    'aTitolo(.)'
    aTitolo(1) = "Id"
    aTitolo(2) = "Comb."
    aTitolo(3) = "ISCR" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
    aTitolo(4) = "F.R"
    aTitolo(5) = "(F.R - F.T)" ' =(frequenza)-(frequenza teorica)
    aTitolo(6) = "RMT" 'ritardo medio teorico formazione
    aTitolo(7) = "R.C" ' ritardo cronologico
    aTitolo(8) = "R.C.S" ' ritardo cronologico storico
    aTitolo(9) = "Inc.R" ' incremento dal ritardo precedente
    aTitolo(10) = "Ruota"
    InitTabella aTitolo,RGB(128,0,64),,3,RGB(0,255,64),"Arial black",1,1
    aColonne = SviluppoIntegrale(nNumeri,nCombinazione) ' sviluppo le combinazioni es: 01.02.03; 01.02.04; ecc  ecc
    For k = 1 To UBound(aColonne) ' ciclo per leggere la colonna k della matrice aColonne
        s = "" 'FormatSpace(k,10,True) & "- "
        For e = 1 To nCombinazione
            's = Format2(aColonne(k,e)) & "-"
            s = s & Format2(aColonne(k,e)) & "-"
            aNumeri(e) = aColonne(k,e)
            'Scrivi aNumeri(e) & ".." ' (prova di scrittura in output
        Next
        s = Left(s,Len(s) - 1) ' tolgo l'ultimo trattino
        
        Call StatisticaFormazioneTurbo(aNumeri,ru,nSorte,ritardo,ritardomax,IncrRitMax,Frequenza,Ini,Fin)
        freq = SerieFreqTurbo(Ini,Fin,aNumeri,ru,nSorte)
        ritc = SerieRitardoTurbo(Ini,Fin,aNumeri,ru,nSorte)
        nValore=CicloTeorico(nCombinazione,nSorte,1)' 1 sta per 1 ruota, se le ruote fossero di più ovviamnete il ciclo è minore
        freqTeorica = Round(Dividi(nEstr,nValore)) 'numero di estrazioni esaminate / il proprio CicloTeorico
        ReDim aRisultato(10)
        aRisultato(1) = k
        aRisultato(2) = s
        aRisultato(3) = "????" '"ISCR" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
        aRisultato(4) = freq ' 4 '"Freq"
        aRisultato(5) =CInt(freq)-freqTeorica 'se sottraggo freqTeorica a freq mi restituisce errore    
        aRisultato(6) = ritc '6 '"RMT" 'ritardo medio teorico formazione
        aRisultato(7) = ritardo '7 '"R.C" ' ritardo cronologico
        aRisultato(8) = ritardomax ' 8 '"R.C.S" ' ritardo cronologico storico
        aRisultato(9) = IncrRitMax ' 9 ' "Inc.R" ' incremento dal ritardo precedente
        aRisultato(10) = NomeRuota(ru(1))
        Call AddRigaTabella(aRisultato,,,3,,"Calibrì",1,1)
    Next
    Call SetTableWidth("100%")
    
    Call CreaTabella ' se ti occorre, possiamo anche gestire la colonna su cui fare l'ordinamento
End Sub

per isocronia tra poco posto immagini di foglio calcolo cosi mi spiego più chiaramente:)
Cordiali saluti
I legend
 
Ultima modifica:
Eccomi di nuovo posto studio.
StudioIsocronia.jpg
Speriamo di riuscire a realizzare questo script, penso possa tornare molto utile a svariati utenti ,anche solo per restringere una previsione.
So che non siamo in tantissimi ad usare questo modo di leggere la dinamica estrattiva, ma è un metodo a mio avviso valido:)
Le previsioni sono ristrette e vanno molte volte a segno su tutte:mad:. e qualche volta anche a ruota.;)
Sperando di aver fatto cosa gradita
Cordiali saluti
I Legend
 
Ultima modifica:
I legend
1 ) analisi per 100 estrazioni, usiamo i numeri 10.37.80 con sviluppo combinazione a terno, esito =2, ruota?????
Dobbiamo sincronizzare gli input altrimenti non ci possiamo aiutare.

Per la isocronia, mi pare di capire che vuoi praticamente conoscere della conbinazione impostata, quante volte questi numeri sono usciti su tutte ad estratto. Controlla se è quanto richiedi ( controlla se va bene con lo script modificato).

Codice:
 Option Explicit ' se lo usi devi definire tutte le variabil
Sub Main
    Dim Ini,Fin,nEstr,k,x,r,nValore
    Dim s,e,ritardo,ritardomax,IncrRitMax,Frequenza,freq,ritc,freqTeorica,freqTT
    Dim nNumeri,aColonne
    Dim aNumeri(90)
    Dim aRuote(12)
    Dim ru(12)
    Dim nCombinazione,nSorte
    nEstr = CInt(InputBox("Quante estrazioni vuoi esaminare?","Analizza",100))
    Fin = EstrazioneFin
    Ini = Fin - nEstr
    Call ScegliNumeri(nNumeri)
    ' aColonne= ScegliCombinazione ossia sviluppo in ambo terno ecc...
    nCombinazione = CInt(InputBox("1=Estratto ; 2=Coppia ; 3=Terzina ; 4=Quartina ; 5=Cinquina","Sviluppo Combinazione",3))
    nSorte = CInt(ScegliEsito) '  sorte da analizzare
    aRuote(1) = 11 '
    ru(1) = ScegliRuota '--> ScegliRuote (plurale) = non va bene perchè essa crea una arry che va gestita, con ciclo for tipo ciclo per le
    'combinazioni,  eventualmente servisse vedremo come farlo perchèin quelcaso si andrebbe a realizzare tante tabelle quante sono le ruote che scegli.
     'l'ho modificato in ScegliRuota (singolare) per darti la possibiltà di andare oltre (non considera "Tutte").
    ReDim aTitolo(10)
    'aTitolo(.)'
    aTitolo(1) = "Id"
    aTitolo(2) = "Comb."
    aTitolo(3) = "ISCR" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
    aTitolo(4) = "F.R"
    aTitolo(5) = "(F.R - F.T)" ' =(frequenza)-(frequenza teorica)
    aTitolo(6) = "RMT" 'ritardo medio teorico formazione
    aTitolo(7) = "R.C" ' ritardo cronologico
    aTitolo(8) = "R.C.S" ' ritardo cronologico storico
    aTitolo(9) = "Inc.R" ' incremento dal ritardo precedente
    aTitolo(10) = "Ruota"
    InitTabella aTitolo,RGB(128,0,64),,3,RGB(0,255,64),"Arial black",1,1
    aColonne = SviluppoIntegrale(nNumeri,nCombinazione) ' sviluppo le combinazioni es: 01.02.03; 01.02.04; ecc  ecc
    For k = 1 To UBound(aColonne) ' ciclo per leggere la colonna k della matrice aColonne
        s = "" 'FormatSpace(k,10,True) & "- "
        For e = 1 To nCombinazione
            's = Format2(aColonne(k,e)) & "-"
            s = s & Format2(aColonne(k,e)) & "-"
            aNumeri(e) = aColonne(k,e)
            'Scrivi aNumeri(e) & ".." ' (prova di scrittura in output
        Next
        s = Left(s,Len(s) - 1) ' tolgo l'ultimo trattino
        
        Call StatisticaFormazioneTurbo(aNumeri,ru,nSorte,ritardo,ritardomax,IncrRitMax,Frequenza,Ini,Fin)
        freq = SerieFreqTurbo(Ini,Fin,aNumeri,ru,nSorte)
	  freqTT = SerieFreqTurbo(Ini,Fin,aNumeri,aRuote,1)
        ritc = SerieRitardoTurbo(Ini,Fin,aNumeri,ru,nSorte)
        nValore=CicloTeorico(nCombinazione,nSorte,1)' 1 sta per 1 ruota, se le ruote fossero di più ovviamnete il ciclo è minore
        freqTeorica = Round(Dividi(nEstr,nValore)) 'numero di estrazioni esaminate / il proprio CicloTeorico
        ReDim aRisultato(10)
        aRisultato(1) = k
        aRisultato(2) = s
        aRisultato(3) = freqTT '"????" '"ISCR" ' quante volte tutti i singoli elementi sono sortiti nella medesima estrazione esclusa la ruota nazionale
        aRisultato(4) = freq ' 4 '"Freq"
        aRisultato(5) =CInt(freq) - freqTeorica 'se sottraggo freqTeorica a freq mi restituisce errore    
        aRisultato(6) = ritc '6 '"RMT" 'ritardo medio teorico formazione
        aRisultato(7) = ritardo '7 '"R.C" ' ritardo cronologico
        aRisultato(8) = ritardomax ' 8 '"R.C.S" ' ritardo cronologico storico
        aRisultato(9) = IncrRitMax ' 9 ' "Inc.R" ' incremento dal ritardo precedente
        aRisultato(10) = NomeRuota(ru(1))
        Call AddRigaTabella(aRisultato,,,3,,"Calibrì",1,1)
    Next
    Call SetTableWidth("100%")
    
    Call CreaTabella ' se ti occorre, possiamo anche gestire la colonna su cui fare l'ordinamento
End Sub
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto