Sub Main
Dim aComb
Dim nClasse
Dim nGaranzia
Dim k , j
Dim sNumeri
Dim idComb
Dim nInizio , nFine
Dim idValoreDaAna
Dim sValoreUsato
ReDim aCombMigliori (100 ,4)
nClasse = ScegliClasse
nGaranzia = ScegliGaranzia
idValoreDaAna = ScegliValoreDaAnalizzare (sValoreUsato)
nInizio = EstrazioneIni
nFine = EstrazioneFin
If nClasse >0 And nGaranzia >0 And nGaranzia <= nClasse And idValoreDaAna >0 Then
Call Messaggio ("Sviluppo combinazioni di classe " & nClasse )
Call SviluppaComb (aComb , nClasse)
Call Messaggio ("Statistica combinazioni in corso " )
For k = 1 To UBound (aComb)
Call AnalisiComb (aComb , k ,nClasse,nGaranzia, aCombMigliori ,nInizio , nFine ,idValoreDaAna )
If k Mod 20 =0 Then
Call Messaggio ("Statistica combinazioni in corso " & k )
Call AvanzamentoElab(1 ,UBound(aComb), k)
If ScriptInterrotto Then Exit For
End If
Next
Call Messaggio ("" )
ReDim aTitoli(4)
aTitoli(1) = "Combinazione"
aTitoli(2) = "Frequenza"
aTitoli(3) = "Ritardo"
aTitoli(4) = "RitardoMax"
Call Scrivi ("Combinazioni di classe " & nClasse & " analizzate per punti " & nGaranzia )
Call Scrivi ("La seguente lista mostra le prime 100 combinazioni in base al valore di " & sValoreUsato )
Call Scrivi ("Range analizzato " & GetInfoEstrazioneDL (nInizio) & " fino a " & GetInfoEstrazioneDL (nFine))
Call Scrivi ("Estrazioni analizzate totali : " & (nFine+1) - nInizio )
Call Scrivi
Call InitTabella(aTitoli)
For k = 1 To UBound(aCombMigliori)
sNumeri = ""
idComb = aCombMigliori(k ,4)
For j = 1 To nClasse
sNumeri = sNumeri & Format2(aComb(idComb ,j )) & "."
Next
ReDim ADati(4)
ADati(1) = Left(sNumeri , Len(sNumeri)-1)
ADati(2) =aCombMigliori(k ,1)
ADati(3) = aCombMigliori(k ,2)
ADati(4) = aCombMigliori(k ,3)
Call AddRigaTabella (ADati)
Next
Call CreaTabella
Else
MsgBox "Selezionare la classe di sviluppo e la garanzia , " & _
"si ricorda che la garanzia non puo essere maggiore della classe di sviluppo " & _
"e che bisogna scegliere quale valore statistico considerare per " & _
"alimentare la lista delle prime 100 Combinazioni "
End If
End Sub
Sub AnalisiComb( aComb , idComb , nClasse , Garanzia , aCombMig , nInizio , nFine ,idValoreDaAna )
Dim k , j
ReDim aNum( nClasse )
Dim Rit
Dim RitMax
Dim Freq
Dim Valore
For k = 1 To nClasse
aNum(k) = aComb(idComb , k)
Next
Call StatisticaFormazioneDL (aNum, Garanzia ,Rit ,RitMax ,0,Freq,nInizio , nFine )
Select Case idValoreDaAna
Case 1
Valore = Freq
Case 2
Valore = Rit
Case 3
Valore = RitMax
End Select
For k = 1 To UBound(aCombMig)
If Valore >= aCombMig(k,0 ) Then
For j = UBound(aCombMig) To (k+1) Step -1
aCombMig( j,0) =aCombMig( j-1,0)
aCombMig( j,1) =aCombMig( j-1,1)
aCombMig( j,2) =aCombMig( j-1,2)
aCombMig( j,3) =aCombMig( j-1,3)
aCombMig( j,4) =aCombMig( j-1,4)
Next
aCombMig( k,0) =Valore
aCombMig( k,1) =Freq
aCombMig( k,2) =Rit
aCombMig( k,3) =RitMax
aCombMig( k,4) =idComb
Exit For
End If
Next
End Sub
Sub SviluppaComb ( aComb , Classe)
Dim k
ReDim aNum(90)
For k = 1 To 90
aNum(k) =k
Next
aComb = SviluppoIntegrale( aNum ,Classe)
End Sub
Function ScegliClasse()
ReDim aVoci(3)
aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
ScegliClasse = ScegliOpzioneMenu(aVoci,2,"Secegli tipo combinazione") + 1
End Function
Function ScegliGaranzia( )
ReDim aVoci(3)
aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "