Ecco il codice completo :
Codice:
Option Explicit
Class clsLunghetta
Private mSNumeri
Private mRitardo
Public Property Let sNumeri(Value)
mSNumeri = Value
End Property
Public Property Get sNumeri()
sNumeri = mSNumeri
End Property
Public Property Let Ritardo(Value)
mRitardo = Value
End Property
Public Property Get Ritardo()
Ritardo = mRitardo
End Property
End Class
Sub Main
Dim Lunghette() : Dim QuantitaLunghette 'Array che conterrà le lunghette è la rispettiva quantità
Dim aRuote,aRuoteSel,aPosizioni 'utili al rilevamento del ritardo
Dim k,q,y ' variabili cicli for
Dim RitardoEstratti(90) 'array contenente i ritardi dei 90 nuemri per estratto
Dim Lunghetta(5)
Call ImpostaParametri(Lunghette,QuantitaLunghette,aRuoteSel,aRuote,aPosizioni)
Call CalcolaRitardiEstratti(RitardoEstratti,aRuote,aPosizioni)
Dim n1,n2,n3,n4,n5
Dim Ritardo1,Ritardo2,Ritardo3,Ritardo4,Ritardo5
Dim RitardoMinimo
RitardoMinimo = Lunghette(QuantitaLunghette).ritardo
For n1 = 1 To 86
Lunghetta(1) = n1
Call AvanzamentoElab(1,86,n1)
If ScriptInterrotto Then Exit For
Ritardo1 = RitardoEstratti(n1)
If Ritardo1 > RitardoMinimo Then
For n2 = n1 + 1 To 87
Lunghetta(2) = n2
If ScriptInterrotto Then Exit For
Ritardo2 = Ritardo1
If Ritardo2 > RitardoEstratti(n2) Then
Ritardo2 = RitardoEstratti(n2)
End If
If Ritardo2 > RitardoMinimo Then
For n3 = n2 + 1 To 88
Lunghetta(3) = n3
If ScriptInterrotto Then Exit For
Ritardo3 = Ritardo2
If Ritardo3 > RitardoEstratti(n3) Then
Ritardo3 = RitardoEstratti(n3)
End If
If Ritardo3 > RitardoMinimo Then
For n4 = n3 + 1 To 89
Lunghetta(4) = n4
If ScriptInterrotto Then Exit For
Ritardo4 = Ritardo3
If Ritardo4 > RitardoEstratti(n4) Then
Ritardo4 = RitardoEstratti(n4)
End If
If Ritardo4 > RitardoMinimo Then
For n5 = n4 + 1 To 90
Lunghetta(5) = n5
If ScriptInterrotto Then Exit For
Ritardo5 = Ritardo4
If Ritardo5 > RitardoEstratti(n5) Then
Ritardo5 = RitardoEstratti(n5)
End If
If Ritardo5 > RitardoMinimo Then
For k = 1 To QuantitaLunghette
If Ritardo5 > Lunghette(k).ritardo Then
For q = QuantitaLunghette To k + 1 Step - 1
Lunghette(q).sNumeri = Lunghette(q - 1).sNumeri
Lunghette(q).Ritardo = Lunghette(q - 1).Ritardo
Next
Lunghette(k).sNumeri = StringaNumeri(Lunghetta)
Lunghette(k).Ritardo = Ritardo5
RitardoMinimo = Lunghette(QuantitaLunghette).ritardo
Exit For
End If
Next
End If
Next
End If
Next
End If
Next
End If
Next
End If
Next
For y = 1 To QuantitaLunghette
Call Scrivi("Formazione : " & Lunghette(y).sNumeri & " " & "Ritardo : " & Lunghette(y).ritardo & " Sorte estratto " & "Ruote di rilevamento : " & StringaRuote(aRuoteSel))
Next
End Sub
Sub ImpostaParametri(Lunghette,QuantitaLunghette,aRuoteSel,aRuote,aPosizioni)
Dim i,k
Call ScegliRuote(aRuoteSel,aRuote)
QuantitaLunghette = InputBox("Scelta quantià","Scegli la quantità delle Lunghette da rilevare (massimo 100)",50)
ReDim Lunghette(QuantitaLunghette)
For i = 1 To QuantitaLunghette
Set Lunghette(i) = New clsLunghetta
Next
ReDim aPosizioni(5)
For k = 1 To 5
aPosizioni(k) = True
Next
End Sub
Sub CalcolaRitardiEstratti(RitardoEstratti,aRuote,aPosizioni)
Dim IdEstr
Dim Flag
Dim Estrazione
Dim r,e,n
Dim EstrattoSingolo
For IdEstr = 1 To EstrazioneFin
If GetEstrazioneCompleta(IdEstr,Estrazione) Then
Flag = True
For r = 1 To 10
If aRuote(r) Then
If Estrazione(r,1) = 0 Then
Flag = False
Else
For e = 1 To 5
If aPosizioni(e) Then
EstrattoSingolo = Estrazione(r,e)
RitardoEstratti(EstrattoSingolo) = - 1
End If
Next
End If
End If
Next
If Flag Then
For n = 1 To 90
RitardoEstratti(n) = RitardoEstratti(n) + 1
Next
End If
End If
Next
End Sub
Testatelo
Edoardo_95 Grazie per il tuo magnifico script e per la tua spiegazione sulla programmazione . Ma la soluzione a mio modesto parere dovrebbe essere molto più semplice .
ti spiego il mio pensiero : consideriamo i primi 8 numeri sul tabellone analitico
sviluppiamo questi 8 numeri in classe 5
quindi avremmo 8*7*6*5*4*3*2*1/5*4*3*2*1*3*2*1=56
quindi abbiamo 56 combinazioni in classe 5
sviluppiamo queste 56 combinazioni con i primi 8 numeri del tabellone analitico
e cerchiamo i riatrdi di queste 56 combinazioni di numeri in classe 5 .
Dal tuo ottimo script
Formazione : 6.23.25.35.78 Ritardo : 52 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.25.35 Ritardo : 50 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.25.78 Ritardo : 50 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.35.78 Ritardo : 50 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.25.35.78 Ritardo : 50 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.25.35.78 Ritardo : 50 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.25.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.35.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.25.35.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.25.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.35.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.25.35.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.25.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.35.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.25.35.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.25.35.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.25.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.35.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.25.35.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 23.25.35.78.84 Ritardo : 45 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.25.68 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.35.68 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.23.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.25.35.68 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.25.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.25.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.35.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.35.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.17.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.25.35.68 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.25.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.25.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.35.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.35.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.23.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.25.35.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.25.35.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.25.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 6.35.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.25.35.68 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.25.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.25.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.35.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.35.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.23.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.25.35.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.25.35.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.25.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 17.35.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 23.25.35.68.78 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 23.25.35.68.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 23.25.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 23.35.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : BA
Formazione : 25.35.68.78.84 Ritardo : 44 Sorte estratto Ruote di rilevamento : Ba
Credo di avere anche una soluzione per gli ambi .
Ciao Eugenio