solare
Advanced Member >PLATINUM<
Ciao, non ricordo chi aveva fatto questo listato per il lotto. Chiedo se è possibile modificarlo per il 10elotto 5 minuti.
Grazie
'Option Explicit
Sub Main
Dim k,s,kk
Dim nClasse,nColonneTot
Dim aNumeri
Dim aCol
Dim Inizio,Fine
Dim nRuoteSel
Dim nSorte
Dim nCicloTeo
Dim nEstrTot
Dim sRuote
Inizio = EstrazioneFin - 4500
Fine = EstrazioneFin
nEstrTot =(Fine + 1) - Inizio
ReDim aRuote(0)
nRuoteSel = ScegliRuote(aRuote)
nClasse = Scegliclasse
nSorte = ScegliEsito
If nSorte > nClasse Then MsgBox "La sorte non può essere maggiore della classe"
If nClasse > 0 And nRuoteSel > 0 And nSorte <= nClasse Then
aNumeri = GetNumPerSviluppo
nCicloTeo = CicloTeorico(nClasse,nSorte,Int(nRuoteSel))
sRuote = GetRuote(aRuote)
'inizializza lo sviluppo
nColonneTot = InitSviluppoIntegrale(aNumeri,nClasse)
k = 0
' ciclo che continua fino a quando le colonne non finiscono
Do While GetCombSviluppo(aCol)
k = k + 1 ' conteggio colonna corrente
ReDim aRetRitardi(0)
ReDim aRetIdEstr(0)
Call ElencoRitardiTurbo(aCol,aRuote,nSorte,Inizio,Fine,aRetRitardi,aRetIdEstr)
Call DisegnaGraficoRit(StringaNumeri(aCol),nSorte,nCicloTeo,nEstrTot,sRuote,aRetRitardi)
If k Mod 10 = 0 Then
Call Messaggio("Colonna n° " & k)
Call AvanzamentoElab(1,nColonneTot,k)
If ScriptInterrotto Then Exit Do
End If
Loop
End If
End Sub
Sub DisegnaGraficoRit(sNumeri,nSorte,nCicloTeo,nEstrTot,sRuote,aRitardi)
Dim nMin,nMax
Dim k
Dim nTot
Dim nFreqT
Const nSezioniGraf = 15
nTot = UBound(aRitardi)
ReDim aValori(nTot,2)
nMin = 10000000
nMax = - 10000000
For k = 0 To nTot
aValori(k,1) = k
If k = 0 Then
aValori(k,2) = 0
Else
aValori(k,2) = aRitardi(k)
If aRitardi(k) < nMin Then
nMin = aRitardi(k)
End If
If aRitardi(k) > nMax Then
nMax = aRitardi(k)
End If
End If
Next
'Call GetValoriMinMax(aRitardi,nMin,nMax)
Call PreparaGrafico("",0,nTot,0,nMax,GetStepX(nTot,nSezioniGraf),18)
Call DisegnaLineaGrafico(aValori,vbBlue)
nFreqT = Round(Dividi(nEstrTot,nCicloTeo),3)
Scrivi String(120,"=")
Scrivi "Combinazione : " & sNumeri & " per " & NomeSorte(nSorte) & " su " & sRuote,1
Scrivi "Ritardo minimo : " & nMin
Scrivi "Ritardo max : " & nMax
Scrivi "Frequenza : " & nTot
Scrivi "Freq. Teorica : " & nFreqT
Scrivi "Perc RapportoFreq : " & Round(ProporzioneX(nTot,nFreqT,100),3) & " %"
Scrivi "Ultimi 20 ritardi la lettura da dx verso sx..> : " & GetUltimiRit(aRitardi,30,kk)
Call InserisciGrafico
Scrivi String(120,"=")
End Sub
Function GetStepX(nTot,nSezioni)
Dim t
t = Round(Dividi(nTot,nSezioni),0)
If t <= 1 Then t = 1
GetStepX = t
End Function
Function Scegliclasse
Dim k
ReDim aV(5)
For k = 1 To 5
aV(k) = k
Next
Scegliclasse = ScegliOpzioneMenu(aV,1,"Scegli classe di sviluppo")
End Function
Function GetRuote(aRuote)
Dim s
Dim k
For k = 1 To UBound(aRuote)
s = s & SiglaRuota(aRuote(k)) & "."
Next
GetRuote = Left(s,Len(s) - 1)
End Function
Function GetUltimiRit(aRitardi,n,kk)
Dim i
Dim k
Dim s
'Dim kk
kk = 0
i =(UBound(aRitardi) + 1) - n
If i <= 0 Then i = 1
For k = i To UBound(aRitardi)
s = s & aRitardi(k) & ","
If aRitardi(k) > 18 Then
kk = kk + 1
End If
Next
If s <> "" Then
GetUltimiRit = Left(s,Len(s) - 1)
Else
GetUltimiRit = ""
End If
If kk > 0 Then
Scrivi kk & " Cicli out ",1,0,2,4,3
Scrivi " **** Numero in esame !!!! NON ATTENDIBILE !!!!! ***** ",1,1,4,2,3
End If
If kk = 0 Then
Scrivi kk & " Cicli out ",1,0,4,2,3
Scrivi " **** Numero in esame !!!! ATTENDIBILE !!!!! ***** ",1,1,3,1,3
End If
End Function
Grazie
'Option Explicit
Sub Main
Dim k,s,kk
Dim nClasse,nColonneTot
Dim aNumeri
Dim aCol
Dim Inizio,Fine
Dim nRuoteSel
Dim nSorte
Dim nCicloTeo
Dim nEstrTot
Dim sRuote
Inizio = EstrazioneFin - 4500
Fine = EstrazioneFin
nEstrTot =(Fine + 1) - Inizio
ReDim aRuote(0)
nRuoteSel = ScegliRuote(aRuote)
nClasse = Scegliclasse
nSorte = ScegliEsito
If nSorte > nClasse Then MsgBox "La sorte non può essere maggiore della classe"
If nClasse > 0 And nRuoteSel > 0 And nSorte <= nClasse Then
aNumeri = GetNumPerSviluppo
nCicloTeo = CicloTeorico(nClasse,nSorte,Int(nRuoteSel))
sRuote = GetRuote(aRuote)
'inizializza lo sviluppo
nColonneTot = InitSviluppoIntegrale(aNumeri,nClasse)
k = 0
' ciclo che continua fino a quando le colonne non finiscono
Do While GetCombSviluppo(aCol)
k = k + 1 ' conteggio colonna corrente
ReDim aRetRitardi(0)
ReDim aRetIdEstr(0)
Call ElencoRitardiTurbo(aCol,aRuote,nSorte,Inizio,Fine,aRetRitardi,aRetIdEstr)
Call DisegnaGraficoRit(StringaNumeri(aCol),nSorte,nCicloTeo,nEstrTot,sRuote,aRetRitardi)
If k Mod 10 = 0 Then
Call Messaggio("Colonna n° " & k)
Call AvanzamentoElab(1,nColonneTot,k)
If ScriptInterrotto Then Exit Do
End If
Loop
End If
End Sub
Sub DisegnaGraficoRit(sNumeri,nSorte,nCicloTeo,nEstrTot,sRuote,aRitardi)
Dim nMin,nMax
Dim k
Dim nTot
Dim nFreqT
Const nSezioniGraf = 15
nTot = UBound(aRitardi)
ReDim aValori(nTot,2)
nMin = 10000000
nMax = - 10000000
For k = 0 To nTot
aValori(k,1) = k
If k = 0 Then
aValori(k,2) = 0
Else
aValori(k,2) = aRitardi(k)
If aRitardi(k) < nMin Then
nMin = aRitardi(k)
End If
If aRitardi(k) > nMax Then
nMax = aRitardi(k)
End If
End If
Next
'Call GetValoriMinMax(aRitardi,nMin,nMax)
Call PreparaGrafico("",0,nTot,0,nMax,GetStepX(nTot,nSezioniGraf),18)
Call DisegnaLineaGrafico(aValori,vbBlue)
nFreqT = Round(Dividi(nEstrTot,nCicloTeo),3)
Scrivi String(120,"=")
Scrivi "Combinazione : " & sNumeri & " per " & NomeSorte(nSorte) & " su " & sRuote,1
Scrivi "Ritardo minimo : " & nMin
Scrivi "Ritardo max : " & nMax
Scrivi "Frequenza : " & nTot
Scrivi "Freq. Teorica : " & nFreqT
Scrivi "Perc RapportoFreq : " & Round(ProporzioneX(nTot,nFreqT,100),3) & " %"
Scrivi "Ultimi 20 ritardi la lettura da dx verso sx..> : " & GetUltimiRit(aRitardi,30,kk)
Call InserisciGrafico
Scrivi String(120,"=")
End Sub
Function GetStepX(nTot,nSezioni)
Dim t
t = Round(Dividi(nTot,nSezioni),0)
If t <= 1 Then t = 1
GetStepX = t
End Function
Function Scegliclasse
Dim k
ReDim aV(5)
For k = 1 To 5
aV(k) = k
Next
Scegliclasse = ScegliOpzioneMenu(aV,1,"Scegli classe di sviluppo")
End Function
Function GetRuote(aRuote)
Dim s
Dim k
For k = 1 To UBound(aRuote)
s = s & SiglaRuota(aRuote(k)) & "."
Next
GetRuote = Left(s,Len(s) - 1)
End Function
Function GetUltimiRit(aRitardi,n,kk)
Dim i
Dim k
Dim s
'Dim kk
kk = 0
i =(UBound(aRitardi) + 1) - n
If i <= 0 Then i = 1
For k = i To UBound(aRitardi)
s = s & aRitardi(k) & ","
If aRitardi(k) > 18 Then
kk = kk + 1
End If
Next
If s <> "" Then
GetUltimiRit = Left(s,Len(s) - 1)
Else
GetUltimiRit = ""
End If
If kk > 0 Then
Scrivi kk & " Cicli out ",1,0,2,4,3
Scrivi " **** Numero in esame !!!! NON ATTENDIBILE !!!!! ***** ",1,1,4,2,3
End If
If kk = 0 Then
Scrivi kk & " Cicli out ",1,0,4,2,3
Scrivi " **** Numero in esame !!!! ATTENDIBILE !!!!! ***** ",1,1,3,1,3
End If
End Function