imported_n/a
Advanced Premium Member
Un grazie a Luigi per la precisazione,sicuramente un altro arrichimento per la conoscenza in materia di script.
Ciao
Mike58
Ciao
Mike58
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
quote:Originally posted by LuigiB
un evoluzione dello script precedente che risolve questo problema :
Problema :
Creare una classifica ordinata per indice di convenienza considerando
di giocare entro X colpi i numeri che si possono formare sommando
due a due col fuori90 quelli presi da tutte le posssibili 10
combinazioni di classe 2 di ciascuna estrazione per le 10 ruote (es. 1-2,1-3,1-4,1-5,2-3...).
In questo script tra l'altro si fa uso delle classi e delle collection
due armi molto potenti !
Codice:Option Explicit Sub Main Dim Coll Dim ClsI Dim idEs Dim Colpi Dim i Dim nEstrTot Dim NumDaGioc nEstrTot =(EstrazioneFin + 1) - EstrazioneIni Colpi = Int(InputBox("Entro quanti colpi verificare l'esito ?","Colpi di verifica",3)) If Colpi <= 0 Then Exit Sub Call AlimentaCollItem(Coll) For Each ClsI In Coll For idEs = EstrazioneIni To EstrazioneFin Call CalcoloStat(ClsI,idEs,Colpi) Next i = i + 1 Call AvanzamentoElab(1,Coll.count,i) If ScriptInterrotto Then Exit Sub Next ReDim aTitoli(9) aTitoli(1) = "Ruota" aTitoli(2) = "P1" aTitoli(3) = "P2" aTitoli(4) = "Ritardo" aTitoli(5) = "RitMax" aTitoli(6) = "Freq" aTitoli(7) = "I.C." aTitoli(8) = "Pronostico" aTitoli(9) = "Esito Colpi" Call InitTabella(aTitoli) For Each ClsI In Coll ReDim aV(9) aV(1) = NomeRuota(ClsI.ruota) aV(2) = ClsI.P1 aV(3) = ClsI.P2 aV(4) = ClsI.Rit aV(5) = ClsI.RitMax aV(6) = ClsI.Frq aV(7) = round(Dividi(ClsI.rit,Dividi(nEstrTot,ClsI.frq)),4) aV(9) = GetColpiEsito(ClsI,NumDaGioc) aV(8) = NumDaGioc Call AddRigaTabella(aV) Next Call Scrivi("Classifica dei numeri ottenuti sommando col fuori90 " & vbCrLf & "i numeri di 2 singole posizioni per ciascuna estrazione sulle 10 ruote esclusa la nazionale") Call Scrivi Call Scrivi("Analisi da : " & GetInfoEstrazione(EstrazioneIni) & " a " & GetInfoEstrazione(EstrazioneFin)) Call Scrivi("Estrazioni esaminate :" & nEstrTot) Call Scrivi Call CreaTabella(7) End Sub Function GetColpiEsito(ClsI,RetNum) Dim idEs ReDim aN(1) ReDim aR(1) Dim nRetColpi idEs = EstrazioneFin aN(1) = Fuori90(Estratto(idEs,ClsI.ruota,ClsI.p1) + Estratto(idEs,ClsI.ruota,ClsI.p2)) aR(1) = ClsI.ruota If VerificaEsito(aN,aR,idEs + 1,1,,,,nRetColpi) Then GetColpiEsito = nRetColpi End If RetNum = aN(1) End Function Function Dividi(a,b) If b > 0 Then Dividi = a / b End If End Function Sub CalcoloStat(ClsI,idEs,Colpi) ReDim aN(1) ReDim aR(1) aN(1) = Fuori90(Estratto(idEs,ClsI.ruota,ClsI.p1) + Estratto(idEs,ClsI.ruota,ClsI.p2)) aR(1) = ClsI.ruota If VerificaEsito(aN,aR,idEs + 1,1,Colpi) Then ClsI.frq = ClsI.frq + 1 ClsI.rit = 0 Else ClsI.rit = ClsI.rit + 1 If ClsI.rit > ClsI.ritmax Then ClsI.ritmax = ClsI.rit End If End If End Sub Sub AlimentaCollItem(coll) Dim clsI Dim k,kk,r Set coll = GetNewCollection For r = 1 To 10 If r <> 11 Then For k = 1 To 4 For kk = k + 1 To 5 Set clsI = New clsItem clsI.p1 = k clsI.p2 = kk clsI.ruota = r coll.Add clsI Next Next End If Next End Sub Class clsItem Public p1,p2,ruota,Rit,RitMax,Frq End Class