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.
.... o uno script...
Grazie mille
Option Explicit
' Script n. 49 (42 D tom's bakery) x lotto by tom ; sviluppo e analisi in modo integrale SENZA LIMITE DI CLASSE con rilevamento del numero esatto di righe sviluppate in rapporto al numero
' desiderato di ruote unite a girare..., alla classe di sviluppo scelta e alla classe del gruppo base da sviluppare. A differenza dello script n. 40, quasi del tutto analogo, questo invece di avvalersi
'dell'ordinamento tramite tabella (molto più lento e limitato) si basa sull'uso di matrici dinamiche molto più performanti battendo molto in velocità elaborazionale e di ordinamento il suo
'predecessore; sempre a differenza dell'altro consente l'analisi tramite inserimento dei numeri voluti sia da tabella che da file txt, inoltre rileva per ogni elaborazione anche il valori massimi di ra , rs , fq e incmax :)
'rilevamento anche del numero di casi multipli eventuali per tutti i parametri statistici analizzati sia per analisi da tabella che da file txt
'classe motore x sviluppo senza limite di classe
Class clsSviluppo
Private aBNumDaSvil
Private nQNumeri
Private nCombInt
Private nClasse
Private aRighe
Private nQNumPerRiga
Private aPuntatore
Private nSviluppate
Function InitSviluppo(aNumeri,Classe)
nQNumeri = AlimentArrayNumDaSvil(aNumeri)
nCombInt = Combinazioni(nQNumeri,Classe)
nClasse = Classe
nSviluppate = 0
If nCombInt > 0 Then
Call AlimentaArrayRighe
Call InitArrayPuntatore
End If
InitSviluppo = nCombInt
End Function
Function GetQuantitaNumeriDaSvil
GetQuantitaNumeriDaSvil = nQNumeri
End Function
Function GetStringaNumDaSvil
Dim s,k
s = ""
For k = 1 To UBound(aBNumDaSvil)
If aBNumDaSvil(k) Then
s = s & Format2(k) & "."
End If
Next
GetStringaNumDaSvil = RimuoviLastChr(s,".")
End Function
Private Sub InitArrayPuntatore
Dim k
ReDim aPuntatore(nClasse)
For k = 1 To nClasse - 1
aPuntatore(k) = 1
Next
aPuntatore(k) = 0
End Sub
Function GetComb(aComb)
Dim nTmp,K,nPuntatore
nPuntatore = nClasse
nTmp = aPuntatore(nPuntatore) + 1
Do While nTmp > nQNumPerRiga
nPuntatore = nPuntatore - 1
If nPuntatore <= 0 Then Exit Do
nTmp = aPuntatore(nPuntatore) + 1
Loop
If nPuntatore > 0 Then
For K = nPuntatore To nClasse
aPuntatore(K) = nTmp
Next
ReDim aComb(nClasse)
For K = 1 To nClasse
aComb(K) = aRighe(K,aPuntatore(K))
Next
nSviluppate = nSviluppate + 1
GetComb = True
Else
GetComb = False
End If
End Function
Function GetQuantitaSviluppate
GetQuantitaSviluppate = nSviluppate
End Function
Private Function AlimentArrayNumDaSvil(aNumeri)
Dim k,q
aBNumDaSvil = ArrayNumeriToBool(aNumeri)
For k = 1 To 90
If aBNumDaSvil(k) Then
q = q + 1
End If
Next
AlimentArrayNumDaSvil = q
End Function
Private Sub AlimentaArrayRighe
Dim nRiga,k,aNumeri
Call ArrayBNumToArrayNum(aBNumDaSvil,aNumeri)
nQNumPerRiga =(nQNumeri - nClasse) + 1
ReDim aRighe(nClasse,nQNumPerRiga)
For nRiga = 1 To nClasse
For k = nRiga To(nRiga + nQNumPerRiga) - 1
aRighe(nRiga,(k - nRiga) + 1) = aNumeri(k)
Next
Next
End Sub
Sub OutputARighe
Dim k,j,s
For k = 1 To nClasse
s = ""
For j = 1 To nQNumPerRiga
s = s & Format2(aRighe(k,j)) & "."
Next
Next
End Sub
End Class
'fine classe motore senzalimitediclasse
Sub Main
Dim dimensionematricevoluta
Dim ruoteuniteminimo
Dim ruoteunitemassimo
Dim numeroruoteunite
Dim filerisultato
Dim coltotruoteunite
ReDim aruote(0)
Dim acolruoteunite
Dim StringaRuoteUnite
Dim contarighe
Dim arighefile
Dim righesviluppate
Dim anumeri
Dim classe
Dim vettorerighefilemixruote
Dim rigasviluppata
Dim contarighesviluppate
Dim sorte
Dim rit,ritmax,Incmax,freq,Inizio,fine
Dim diff
Dim ritardomassimorilevato
Dim ritardomassimostoricorilevato
Dim stringarisultatoxritardomassimorilevato
Dim stringarisultatoxritardostoricomassimorilevato
Dim ritardominimorilevato
Dim ritardominimostoricorilevato
Dim stringarisultatoxritardominimorilevato
Dim stringarisultatoxritardominimostoricorilevato
Dim freqmassimarilevata
Dim freqminimarilevata
Dim stringarisultatoxfreqmassimarilevata
Dim stringarisultatoxfreqminimarilevata
Dim Incmaxmassimorilevato
Dim Incmaxminimorilevato
Dim stringarisultatoxincmaxmassimorilevato
Dim stringarisultatoxincmaxminimorilevato
Dim diffmassimarilevata
Dim diffminimarilevata
Dim stringarisultatoxdiffmassimarilevata
Dim stringarisultatoxdiffminimarilevata
Dim stringarsmaxdiognigrupporuoteunite
Dim ritardomassimoxgrupporuoteunite
ritardomassimoxgrupporuoteunite = 0
Dim contacasimultiplixrit
contacasimultiplixrit = 0
Dim contacasimultiplixritmin
contacasimultiplixritmin = 0 'EstrazioneFin
Dim contacasimultiplixfqmax
contacasimultiplixfqmax = 0
Dim contacasimultiplixfqmin
contacasimultiplixfqmin = 0 ' EstrazioneFin
Dim contacasimultiplixincmaxmax
contacasimultiplixincmaxmax = 0
'---------------------------------------------------
Dim contacasimultiplixrsmaxgenerale
contacasimultiplixrsmaxgenerale = 0
Dim contacasimultiplixrsmingenerale
contacasimultiplixrsmingenerale = 0
Dim contacasimultiplixincmaxmin
contacasimultiplixincmaxmin = 0
Dim contacasimultiplixdiffmax
contacasimultiplixdiffmax = 0
Dim contacasimultiplixdiffmin
contacasimultiplixdiffmin = 0
'---------------------------------------------------
stringarsmaxdiognigrupporuoteunite = ""
ritardomassimorilevato = 0
ritardomassimostoricorilevato = 0
ritardominimorilevato = EstrazioneFin
ritardominimostoricorilevato = EstrazioneFin
freqmassimarilevata = 0
freqminimarilevata = EstrazioneFin
Incmaxmassimorilevato = 0
Incmaxminimorilevato = EstrazioneFin
diffmassimarilevata = 0
diffminimarilevata = EstrazioneFin
Inizio = EstrazioneIni
fine = EstrazioneFin
Dim contatorexmatrice
'Dim matriceordinabilemultidimensionale(500000,6) '(1300000,6) '(2600000,6) ' (500000,6) '10000 ' in c5 by gruppo 72 le formazioni integrali sono oltre 13 mln... ; in c4 solo.. 1.028.000 ca
'Dim matriceordinabilemultidimensionale(dimensionematricevoluta,6) ' 2000000 (500000,6) '(3200000,6) 'rispetto i 3162510 necessari ad analizzare le rispettive c5 x A by cf54 sarebbero più che sufficienti...
Dim righeoccupatenellamatrice
Dim filexdiff0rilevate
filexdiff0rilevate = "filexdiff0rilevate.txt"
If FileEsistente(filexdiff0rilevate) Then
Call EliminaFile(filexdiff0rilevate)
End If
Dim filexdiff0rilevatesolonumeri
filexdiff0rilevatesolonumeri = "filexdiff0rilevatesolonumeri.txt"
If FileEsistente(filexdiff0rilevatesolonumeri) Then
Call EliminaFile(filexdiff0rilevatesolonumeri)
End If
Dim contadiff0
contadiff0 = 0
dimensionematricevoluta = CInt(InputBox("dimensione matrice ipotizzata max 10000",,10000))
Dim moltiplicadimensionematricex
moltiplicadimensionematricex = CInt(InputBox("moltiplica dimensione matrice x ",,700))
dimensionematricevoluta = dimensionematricevoluta * moltiplicadimensionematricex
ReDim matriceordinabilemultidimensionale(dimensionematricevoluta,6)
ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,1))
ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,ruoteuniteminimo))
MsgBox "scegli sorte"
sorte = CInt(InputBox("sorte",,1))
MsgBox "scegli ruote da analizzare"
Call ScegliRuote(aruote)
Dim dafileodatabella
Dim csvil
Set csvil = New clsSviluppo
dafileodatabella = InputBox("da file (f) o da tabella (t)",,"t")
If dafileodatabella = "t" Then
MsgBox "hai scelto da tabella"
MsgBox "scegli gruppo base da sviluppare e analizzare"
Call ScegliNumeri(anumeri)
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,18)) 'sorte))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
Dim crr
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(anumeri,classe)
righesviluppate = csvil.InitSviluppo(anumeri,classe)
Dim vettoreruoteunite
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
Dim cvru
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
'Messaggio "n" & StringaNumeri(rigasviluppata) & "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
Messaggio "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit = ritardomassimorilevato Then
contacasimultiplixrit = contacasimultiplixrit + 1
End If
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrit = 0
End If
If ritmax = ritardomassimostoricorilevato Then
contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmaxgenerale = 0
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixritmin = 0
End If
If rit = ritardominimorilevato Then
contacasimultiplixritmin = contacasimultiplixritmin + 1
End If
If ritmax = ritardominimostoricorilevato Then
contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmingenerale = 0
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmax = 0
End If
If freq = freqmassimarilevata Then
contacasimultiplixfqmax = contacasimultiplixfqmax + 1
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmin = 0
End If
If freq = freqminimarilevata Then
contacasimultiplixfqmin = contacasimultiplixfqmin + 1
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmax = 0
End If
If Incmax = Incmaxmassimorilevato Then
contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1
End If
If Incmax = Incmaxminimorilevato Then
contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmin = 0
End If
If diff = diffmassimarilevata Then
contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmax = 0
End If
If diff = diffminimarilevata Then
contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmin = 0
End If
'se diff=0 scrivi risultati nel file txt apposito
' End If
If diff = 0 Then
Dim stringarisultatoxdiff0rilevata
stringarisultatoxdiff0rilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
ScriviFile filexdiff0rilevate,stringarisultatoxdiff0rilevata
CloseFileHandle(filexdiff0rilevate)
ScriviFile filexdiff0rilevatesolonumeri,StringaNumeri(rigasviluppata)
CloseFileHandle(filexdiff0rilevatesolonumeri)
contadiff0 = contadiff0 + 1
End If
'----------------------------------------------------------
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next 'x numero ruote unite
Dim Valorediordinamentovoluto
Dim Valorecriteriodiordinamento
Dim quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
'quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100)
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = Int(quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice)
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupateinmatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto dell matrice ordinata..."
Scrivi
Scrivi "num-ruota-sorte-rit-ritmax-incmax-freq"
Scrivi
Dim sortFREQ
Dim MassimoFreq
Dim MinimoFreq
Dim sortRITMAX
Dim MassimoRITMAX
Dim MinimoRITMAX
Dim sortINCMAX
Dim MassimoINCMAX
Dim MinimoINCMAX
Dim sortRIT
Dim MassimoRIT
Dim MinimoRIT
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Dim cmom
Dim k
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da tabella"
Scrivi "gruppo base numerico analizzato " & StringaNumeri(anumeri)
Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri)
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "n. casi multipli di rit sto max generale " & Int(contacasimultiplixrsmaxgenerale) - 1
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) - 1
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "n. casi multipli di rit sto min generale " & Int(contacasimultiplixrsmingenerale) - 1
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax) - 1
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) - 1
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) - 1
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "n. casi multipli di incmax min generale " & Int(contacasimultiplixincmaxmin) - 1
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "n. casi multipli di diff max generale " & Int(contacasimultiplixdiffmax) - 1
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi "n. casi multipli di diff min generale " & Int(contacasimultiplixdiffmin) - 1
Scrivi "n di casi diff 0 rilevati " & contadiff0
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
Else
' ANALISI DA FILE TXT...
Dim rigasviluppataxritmaxsolonumeri
Dim StringaRuotexritmaxsolonumeri
Dim rigasviluppataxfqmaxsolonumeri
Dim StringaRuotexfqmaxsolonumeri
MsgBox "hai scelto analisi da file"
MsgBox "scegli file da analizzare"
Dim filedaelaborare
filedaelaborare = ScegliFile(".\",".txt","filetxtdasviluppareeanalizzare.txt")
MsgBox "hai scelto di analizzare il seguente file: " & filedaelaborare
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,18)) '2))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Dim arighefiledaelaborare
Dim crfde
Dim vettorestringhenumerifile
Dim vettoreinterinumerifile
Call LeggiRigheFileDiTesto(filedaelaborare,arighefiledaelaborare)
For crfde = 0 To UBound(arighefiledaelaborare)
'Scrivi "|" & arighefiledaelaborare(crfde) & "|"
Call SplitByChar(arighefiledaelaborare(crfde),".",vettorestringhenumerifile)
Dim cevns
ReDim vettoreinterinumerifile(UBound(vettorestringhenumerifile))
For cevns = 0 To UBound(vettorestringhenumerifile)
vettoreinterinumerifile(cevns) = Int(vettorestringhenumerifile(cevns))
Dim cvi
Next ' x vettore stringhe numeri file
' Scrivi
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(vettoreinterinumerifile,classe)
righesviluppate = csvil.InitSviluppo(vettoreinterinumerifile,classe)
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit = ritardomassimorilevato Then
contacasimultiplixrit = contacasimultiplixrit + 1
End If
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
rigasviluppataxritmaxsolonumeri = StringaNumeri(rigasviluppata)
StringaRuotexritmaxsolonumeri = StringaNumeri(vettoreruoteunite)
contacasimultiplixrit = 0
End If
If ritmax = ritardomassimostoricorilevato Then
contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmaxgenerale = 0
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit = ritardominimorilevato Then
contacasimultiplixritmin = contacasimultiplixritmin + 1
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixritmin = 0
End If
If ritmax = ritardominimostoricorilevato Then
contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmingenerale = 0
End If
If freq = freqmassimarilevata Then
contacasimultiplixfqmax = contacasimultiplixfqmax + 1
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
rigasviluppataxfqmaxsolonumeri = StringaNumeri(rigasviluppata)
StringaRuotexfqmaxsolonumeri = StringaNumeri(vettoreruoteunite)
contacasimultiplixfqmax = 0
End If
If freq = freqminimarilevata Then
contacasimultiplixfqmin = contacasimultiplixfqmin + 1
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmin = 0
End If
If Incmax = Incmaxmassimorilevato Then
contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmax = 0
End If
If Incmax = Incmaxminimorilevato Then
contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmin = 0
End If
If diff = diffmassimarilevata Then
contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmax = 0
End If
If diff = diffminimarilevata Then
contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmin = 0
End If
'se diff=0 scrivi risultati nel file txt apposito
' End If
If diff = 0 Then
'Dim stringarisultatoxdiff0rilevata
stringarisultatoxdiff0rilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
ScriviFile filexdiff0rilevate,stringarisultatoxdiff0rilevata
CloseFileHandle(filexdiff0rilevate)
ScriviFile filexdiff0rilevatesolonumeri,StringaNumeri(rigasviluppata)
CloseFileHandle(filexdiff0rilevatesolonumeri)
contadiff0 = contadiff0 + 1
End If
'----------------------------------------------------------
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next ' x vettore righe file txt da elaborare
If ScriptInterrotto Then Exit For
Next 'x numero ruote unite...
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
'Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto della matrice ordinata..."
Scrivi
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 1 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da file"
Scrivi "file scelto per l'elaborazione " & filedaelaborare
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
'Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Dim vettoreformazioneritmaxunico
Dim vettoreruoteformazioneritmaxunico
Dim vettoreformazioneritrsmaxunico
Dim vettoreformazioneritminunico
Dim vettoreformazioneritrsminunico
Dim vettoreformazionefqmaxunica
Dim vettoreruoteformazionefqmaxunica
Dim vettoreformazionefqminunica
Dim vettoreformazioneincmaxmaxunico
Dim vettoreformazioneincmaxminunico
Dim vettoreformazionediffmaxunica
Dim vettoreformazionediffminunica
Dim Inizioverificaxrisultanzaunica
Inizioverificaxrisultanzaunica = EstrazioneFin
Dim sortediverificaxrisultanzaunica
sortediverificaxrisultanzaunica = 2
Dim colpiverifica,esito,estratti,idesdiuscita
colpiverifica = 1
Dim casipositivi
casipositivi = 0
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit
' modulo di verifica... x rit max
If contacasimultiplixrit = - 1 Or contacasimultiplixrit = 0 Then
Call SplitByChar(rigasviluppataxritmaxsolonumeri,".",vettoreformazioneritmaxunico)
Call SplitByChar(StringaRuotexritmaxsolonumeri,".",vettoreruoteformazioneritmaxunico)
'verifica se ha sfaldato colpo
Call VerificaEsitoTurbo(vettoreformazioneritmaxunico,vettoreruoteformazioneritmaxunico,Inizioverificaxrisultanzaunica + 1,sortediverificaxrisultanzaunica,colpiverifica,,esito,,estratti,idesdiuscita)
If esito <> "" Then
Scrivi "OK rit max unico ha sfaldato",True,,,vbGreen
Scrivi "estratti a colpo " & estratti & " - " & GetInfoEstrazione(idesdiuscita),True,,,vbGreen
casipositivi = casipositivi + 1
Else
Scrivi "NO rit max unico non ha sfaldato",True,,,vbRed
End If
End If
'-----------------------------------------
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "n. casi multipli di rit sto max generale " & Int(contacasimultiplixrsmaxgenerale)' - 1
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) '- 1
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "n. casi multipli di rit sto min generale " & Int(contacasimultiplixrsmingenerale) '- 1
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax)' - 1
' modulo di verifica... x fq max
If contacasimultiplixfqmax = - 1 Or contacasimultiplixfqmax = 0 Then
Call SplitByChar(rigasviluppataxfqmaxsolonumeri,".",vettoreformazionefqmaxunica)
Call SplitByChar(StringaRuotexfqmaxsolonumeri,".",vettoreruoteformazionefqmaxunica)
'verifica se ha sfaldato colpo
Call VerificaEsitoTurbo(vettoreformazionefqmaxunica,vettoreruoteformazionefqmaxunica,Inizioverificaxrisultanzaunica + 1,sortediverificaxrisultanzaunica,colpiverifica,,esito,,estratti,idesdiuscita)
If esito <> "" Then
Scrivi "OK fq max unico ha sfaldato",True,,,vbGreen
Scrivi "estratti a colpo " & estratti & " - " & GetInfoEstrazione(idesdiuscita),True,,,vbGreen
casipositivi = casipositivi + 1
Else
Scrivi "NO fq max unico non ha sfaldato",True,,,vbRed
End If
End If
'-----------------------------------------
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) '- 1
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) '- 1
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "n. casi multipli di incmax min generale " & Int(contacasimultiplixincmaxmin) '- 1
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "n. casi multipli di diff max generale " & Int(contacasimultiplixdiffmax)' - 1
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi "n. casi multipli di diff min generale " & Int(contacasimultiplixdiffmin) '- 1
Scrivi "n di casi diff 0 rilevati " & contadiff0
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
End If
'mostra formazioni diff 0 rilevate... leggendole dal relativo file... txt
Scrivi
Scrivi
Scrivi "formazioni diff 0 rilevate con relativa ruota(e)"
Scrivi
Scrivi
ReDim arighefilediff0(0)
Dim crfdz
Call LeggiRigheFileDiTesto(filexdiff0rilevate,arighefilediff0)
For crfdz = 0 To UBound(arighefilediff0)
Scrivi arighefilediff0(crfdz)
If ScriptInterrotto Then Exit For
Next
'--------------------------------------------------------------------------------------------
End Sub
Lotto tom ti ringrazio infinitamente. Non capisco bene cosa mi dici, però provo ad usare il megascriptone. Poi ti faccio sapere.Ciao ananda
questo mio scriptone... forse fa anche al caso tuo... Lo trovi anche in "tom's bakery" ma te lo riporto anche qui... con l'ultima aggiunta del rilevamento dei casi diff0. Se impari a conoscerlo.. ti fa anche il caffè... L'ho chamato "analisi multiruota matrice fast". Ricordo che il motore di sviluppo implementatovi senza limite di classe è opera del grande Edoardo_75 che spero torni prima o poi anche lui su questi lidi virtuali. Questo script è particolarmente indicato per sgrossare abbastanza velocemente la massa numerica in classi medio grandi non superando comunque i 3 step riduzionali rispetto la classe base sia che si parti dal basso che si parti dall'alto rispetto la stessa e ovviamente per analizzare + ruote unite a girare.
Codice:Option Explicit ' Script n. 49 (42 D tom's bakery) x lotto by tom ; sviluppo e analisi in modo integrale SENZA LIMITE DI CLASSE con rilevamento del numero esatto di righe sviluppate in rapporto al numero ' desiderato di ruote unite a girare..., alla classe di sviluppo scelta e alla classe del gruppo base da sviluppare. A differenza dello script n. 40, quasi del tutto analogo, questo invece di avvalersi 'dell'ordinamento tramite tabella (molto più lento e limitato) si basa sull'uso di matrici dinamiche molto più performanti battendo molto in velocità elaborazionale e di ordinamento il suo 'predecessore; sempre a differenza dell'altro consente l'analisi tramite inserimento dei numeri voluti sia da tabella che da file txt, inoltre rileva per ogni elaborazione anche il valori massimi di ra , rs , fq e incmax :) 'rilevamento anche del numero di casi multipli eventuali per tutti i parametri statistici analizzati sia per analisi da tabella che da file txt 'classe motore x sviluppo senza limite di classe Class clsSviluppo Private aBNumDaSvil Private nQNumeri Private nCombInt Private nClasse Private aRighe Private nQNumPerRiga Private aPuntatore Private nSviluppate Function InitSviluppo(aNumeri,Classe) nQNumeri = AlimentArrayNumDaSvil(aNumeri) nCombInt = Combinazioni(nQNumeri,Classe) nClasse = Classe nSviluppate = 0 If nCombInt > 0 Then Call AlimentaArrayRighe Call InitArrayPuntatore End If InitSviluppo = nCombInt End Function Function GetQuantitaNumeriDaSvil GetQuantitaNumeriDaSvil = nQNumeri End Function Function GetStringaNumDaSvil Dim s,k s = "" For k = 1 To UBound(aBNumDaSvil) If aBNumDaSvil(k) Then s = s & Format2(k) & "." End If Next GetStringaNumDaSvil = RimuoviLastChr(s,".") End Function Private Sub InitArrayPuntatore Dim k ReDim aPuntatore(nClasse) For k = 1 To nClasse - 1 aPuntatore(k) = 1 Next aPuntatore(k) = 0 End Sub Function GetComb(aComb) Dim nTmp,K,nPuntatore nPuntatore = nClasse nTmp = aPuntatore(nPuntatore) + 1 Do While nTmp > nQNumPerRiga nPuntatore = nPuntatore - 1 If nPuntatore <= 0 Then Exit Do nTmp = aPuntatore(nPuntatore) + 1 Loop If nPuntatore > 0 Then For K = nPuntatore To nClasse aPuntatore(K) = nTmp Next ReDim aComb(nClasse) For K = 1 To nClasse aComb(K) = aRighe(K,aPuntatore(K)) Next nSviluppate = nSviluppate + 1 GetComb = True Else GetComb = False End If End Function Function GetQuantitaSviluppate GetQuantitaSviluppate = nSviluppate End Function Private Function AlimentArrayNumDaSvil(aNumeri) Dim k,q aBNumDaSvil = ArrayNumeriToBool(aNumeri) For k = 1 To 90 If aBNumDaSvil(k) Then q = q + 1 End If Next AlimentArrayNumDaSvil = q End Function Private Sub AlimentaArrayRighe Dim nRiga,k,aNumeri Call ArrayBNumToArrayNum(aBNumDaSvil,aNumeri) nQNumPerRiga =(nQNumeri - nClasse) + 1 ReDim aRighe(nClasse,nQNumPerRiga) For nRiga = 1 To nClasse For k = nRiga To(nRiga + nQNumPerRiga) - 1 aRighe(nRiga,(k - nRiga) + 1) = aNumeri(k) Next Next End Sub Sub OutputARighe Dim k,j,s For k = 1 To nClasse s = "" For j = 1 To nQNumPerRiga s = s & Format2(aRighe(k,j)) & "." Next Next End Sub End Class 'fine classe motore senzalimitediclasse Sub Main Dim dimensionematricevoluta Dim ruoteuniteminimo Dim ruoteunitemassimo Dim numeroruoteunite Dim filerisultato Dim coltotruoteunite ReDim aruote(0) Dim acolruoteunite Dim StringaRuoteUnite Dim contarighe Dim arighefile Dim righesviluppate Dim anumeri Dim classe Dim vettorerighefilemixruote Dim rigasviluppata Dim contarighesviluppate Dim sorte Dim rit,ritmax,Incmax,freq,Inizio,fine Dim diff Dim ritardomassimorilevato Dim ritardomassimostoricorilevato Dim stringarisultatoxritardomassimorilevato Dim stringarisultatoxritardostoricomassimorilevato Dim ritardominimorilevato Dim ritardominimostoricorilevato Dim stringarisultatoxritardominimorilevato Dim stringarisultatoxritardominimostoricorilevato Dim freqmassimarilevata Dim freqminimarilevata Dim stringarisultatoxfreqmassimarilevata Dim stringarisultatoxfreqminimarilevata Dim Incmaxmassimorilevato Dim Incmaxminimorilevato Dim stringarisultatoxincmaxmassimorilevato Dim stringarisultatoxincmaxminimorilevato Dim diffmassimarilevata Dim diffminimarilevata Dim stringarisultatoxdiffmassimarilevata Dim stringarisultatoxdiffminimarilevata Dim stringarsmaxdiognigrupporuoteunite Dim ritardomassimoxgrupporuoteunite ritardomassimoxgrupporuoteunite = 0 Dim contacasimultiplixrit contacasimultiplixrit = 0 Dim contacasimultiplixritmin contacasimultiplixritmin = 0 'EstrazioneFin Dim contacasimultiplixfqmax contacasimultiplixfqmax = 0 Dim contacasimultiplixfqmin contacasimultiplixfqmin = 0 ' EstrazioneFin Dim contacasimultiplixincmaxmax contacasimultiplixincmaxmax = 0 '--------------------------------------------------- Dim contacasimultiplixrsmaxgenerale contacasimultiplixrsmaxgenerale = 0 Dim contacasimultiplixrsmingenerale contacasimultiplixrsmingenerale = 0 Dim contacasimultiplixincmaxmin contacasimultiplixincmaxmin = 0 Dim contacasimultiplixdiffmax contacasimultiplixdiffmax = 0 Dim contacasimultiplixdiffmin contacasimultiplixdiffmin = 0 '--------------------------------------------------- stringarsmaxdiognigrupporuoteunite = "" ritardomassimorilevato = 0 ritardomassimostoricorilevato = 0 ritardominimorilevato = EstrazioneFin ritardominimostoricorilevato = EstrazioneFin freqmassimarilevata = 0 freqminimarilevata = EstrazioneFin Incmaxmassimorilevato = 0 Incmaxminimorilevato = EstrazioneFin diffmassimarilevata = 0 diffminimarilevata = EstrazioneFin Inizio = EstrazioneIni fine = EstrazioneFin Dim contatorexmatrice 'Dim matriceordinabilemultidimensionale(500000,6) '(1300000,6) '(2600000,6) ' (500000,6) '10000 ' in c5 by gruppo 72 le formazioni integrali sono oltre 13 mln... ; in c4 solo.. 1.028.000 ca 'Dim matriceordinabilemultidimensionale(dimensionematricevoluta,6) ' 2000000 (500000,6) '(3200000,6) 'rispetto i 3162510 necessari ad analizzare le rispettive c5 x A by cf54 sarebbero più che sufficienti... Dim righeoccupatenellamatrice Dim filexdiff0rilevate filexdiff0rilevate = "filexdiff0rilevate.txt" If FileEsistente(filexdiff0rilevate) Then Call EliminaFile(filexdiff0rilevate) End If Dim filexdiff0rilevatesolonumeri filexdiff0rilevatesolonumeri = "filexdiff0rilevatesolonumeri.txt" If FileEsistente(filexdiff0rilevatesolonumeri) Then Call EliminaFile(filexdiff0rilevatesolonumeri) End If Dim contadiff0 contadiff0 = 0 dimensionematricevoluta = CInt(InputBox("dimensione matrice ipotizzata max 10000",,10000)) Dim moltiplicadimensionematricex moltiplicadimensionematricex = CInt(InputBox("moltiplica dimensione matrice x ",,700)) dimensionematricevoluta = dimensionematricevoluta * moltiplicadimensionematricex ReDim matriceordinabilemultidimensionale(dimensionematricevoluta,6) ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,1)) ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,ruoteuniteminimo)) MsgBox "scegli sorte" sorte = CInt(InputBox("sorte",,1)) MsgBox "scegli ruote da analizzare" Call ScegliRuote(aruote) Dim dafileodatabella Dim csvil Set csvil = New clsSviluppo dafileodatabella = InputBox("da file (f) o da tabella (t)",,"t") If dafileodatabella = "t" Then MsgBox "hai scelto da tabella" MsgBox "scegli gruppo base da sviluppare e analizzare" Call ScegliNumeri(anumeri) MsgBox "scegli classe da sviluppare" classe = CInt(InputBox("classe",,18)) 'sorte)) filerisultato = ".\gruppipossibilidiruoteunite.txt" If FileEsistente(filerisultato) Then Call EliminaFile(filerisultato) End If For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite) If coltotruoteunite > 0 Then Do While GetCombSviluppo(acolruoteunite) = True StringaRuoteUnite = StringaNumeri(acolruoteunite) contarighe = contarighe + 1 ScriviFile filerisultato,StringaRuoteUnite If ScriptInterrotto Then Exit Do Loop End If CloseFileHandle(filerisultato) Call LeggiRigheFileDiTesto(filerisultato,arighefile) ReDim arigaruote(numeroruoteunite) Dim crr For crr = 0 To UBound(arighefile) 'righesviluppate = InitSviluppoIntegrale(anumeri,classe) righesviluppate = csvil.InitSviluppo(anumeri,classe) Dim vettoreruoteunite Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite) Dim cvru ReDim arigaruote(UBound(vettoreruoteunite)) For cvru = 0 To UBound(vettoreruoteunite) If righesviluppate > 0 Then ' Do While GetCombSviluppo(rigasviluppata) = True Do While cSvil.GetComb(rigasviluppata) contarighesviluppate = contarighesviluppate + 1 Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine) 'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice 'Messaggio "n" & StringaNumeri(rigasviluppata) & "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice Messaggio "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice diff = ritmax - rit matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata) matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite) matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte) matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit) matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax) matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax) matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq) contatorexmatrice = contatorexmatrice + 1 righeoccupatenellamatrice = righeoccupatenellamatrice + 1 If rit = ritardomassimorilevato Then contacasimultiplixrit = contacasimultiplixrit + 1 End If If rit > ritardomassimorilevato Then ritardomassimorilevato = rit stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixrit = 0 End If If ritmax = ritardomassimostoricorilevato Then contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1 End If If ritmax > ritardomassimostoricorilevato Then ritardomassimostoricorilevato = ritmax stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixrsmaxgenerale = 0 End If If ritmax > ritardomassimoxgrupporuoteunite Then ritardomassimoxgrupporuoteunite = ritmax 'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice End If If rit < ritardominimorilevato Then ritardominimorilevato = rit stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixritmin = 0 End If If rit = ritardominimorilevato Then contacasimultiplixritmin = contacasimultiplixritmin + 1 End If If ritmax = ritardominimostoricorilevato Then contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1 End If If ritmax < ritardominimostoricorilevato Then ritardominimostoricorilevato = ritmax stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixrsmingenerale = 0 End If If freq > freqmassimarilevata Then freqmassimarilevata = freq stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixfqmax = 0 End If If freq = freqmassimarilevata Then contacasimultiplixfqmax = contacasimultiplixfqmax + 1 End If If freq < freqminimarilevata Then freqminimarilevata = freq stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixfqmin = 0 End If If freq = freqminimarilevata Then contacasimultiplixfqmin = contacasimultiplixfqmin + 1 End If If Incmax > Incmaxmassimorilevato Then Incmaxmassimorilevato = Incmax stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixincmaxmax = 0 End If If Incmax = Incmaxmassimorilevato Then contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1 End If If Incmax = Incmaxminimorilevato Then contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1 End If If Incmax < Incmaxminimorilevato Then Incmaxminimorilevato = Incmax stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixincmaxmin = 0 End If If diff = diffmassimarilevata Then contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1 End If If diff > diffmassimarilevata Then diffmassimarilevata = diff stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixdiffmax = 0 End If If diff = diffminimarilevata Then contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1 End If If diff < diffminimarilevata Then diffminimarilevata = diff stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixdiffmin = 0 End If 'se diff=0 scrivi risultati nel file txt apposito ' End If If diff = 0 Then Dim stringarisultatoxdiff0rilevata stringarisultatoxdiff0rilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice ScriviFile filexdiff0rilevate,stringarisultatoxdiff0rilevata CloseFileHandle(filexdiff0rilevate) ScriviFile filexdiff0rilevatesolonumeri,StringaNumeri(rigasviluppata) CloseFileHandle(filexdiff0rilevatesolonumeri) contadiff0 = contadiff0 + 1 End If '---------------------------------------------------------- If ScriptInterrotto Then Exit Do Loop End If If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . " End If ritardomassimoxgrupporuoteunite = 0 If ScriptInterrotto Then Exit For Next ' cvru If ScriptInterrotto Then Exit For Messaggio "thread elaborazionale n. " & contatorexmatrice Next If ScriptInterrotto Then Exit For Call AvanzamentoElab(1,ruoteunitemassimo,crr) Next 'x numero ruote unite Dim Valorediordinamentovoluto Dim Valorecriteriodiordinamento Dim quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3)) Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1)) 'quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100)) quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100) quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = Int(quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice) Scrivi ' Scrivi "visualizzazione del contenuto della matrice non ordinata..." ' Scrivi ' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupateinmatrice 'UBound(matriceordinabilemultidimensionale) ' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice ' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice ' Next 'Scrivi Scrivi "visualizzazione del contenuto dell matrice ordinata..." Scrivi Scrivi "num-ruota-sorte-rit-ritmax-incmax-freq" Scrivi Dim sortFREQ Dim MassimoFreq Dim MinimoFreq Dim sortRITMAX Dim MassimoRITMAX Dim MinimoRITMAX Dim sortINCMAX Dim MassimoINCMAX Dim MinimoINCMAX Dim sortRIT Dim MassimoRIT Dim MinimoRIT MassimoFreq = freqmassimarilevata 'EstrazioneFin MinimoFreq = freqminimarilevata '0 MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin MinimoRITMAX = ritardominimostoricorilevato '0 MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin MinimoINCMAX = Incmaxminimorilevato '0 MassimoRIT = ritardomassimorilevato 'EstrazioneFin MinimoRIT = ritardominimorilevato '0 Dim cmom Dim k Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto) For k = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6) Next Scrivi Scrivi Scrivi "Elaborazione terminata con successo!" Scrivi Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin) Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1 Scrivi "Input numeri scelti da tabella" Scrivi "gruppo base numerico analizzato " & StringaNumeri(anumeri) Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri) Scrivi "numero complessivo di ruote a girare " & UBound(aruote) Scrivi "ruote analizzate " & StringaRuote(aruote) Scrivi "ruote unite minimo " & ruoteuniteminimo Scrivi "ruote unite massimo " & ruoteunitemassimo Scrivi "classe di sviluppo " & classe Scrivi "sorte di ricerca " & sorte Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento Scrivi "righe (x mix di ruote) sviluppate " & contarighe Scrivi "righe totali di sviluppo generate " & contarighesviluppate Scrivi Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate Scrivi Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice Scrivi Scrivi "report sui valori estremi rilevati" Scrivi Scrivi "rit max generale " & ritardomassimorilevato Scrivi "formazione : " & stringarisultatoxritardomassimorilevato Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit Scrivi "rs max generale " & ritardomassimostoricorilevato Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato Scrivi "n. casi multipli di rit sto max generale " & Int(contacasimultiplixrsmaxgenerale) - 1 Scrivi "ra min generale " & ritardominimorilevato Scrivi "formazione : " & stringarisultatoxritardominimorilevato Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) - 1 Scrivi "rs min generale " & ritardominimostoricorilevato Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato Scrivi "n. casi multipli di rit sto min generale " & Int(contacasimultiplixrsmingenerale) - 1 Scrivi "fq max generale " & freqmassimarilevata Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax) - 1 Scrivi "fq min generale " & freqminimarilevata Scrivi "formazione : " & stringarisultatoxfreqminimarilevata Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) - 1 Scrivi "incmax max generale " & Incmaxmassimorilevato Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) - 1 Scrivi "incmax min generale " & Incmaxminimorilevato Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato Scrivi "n. casi multipli di incmax min generale " & Int(contacasimultiplixincmaxmin) - 1 Scrivi "diff max generale " & diffmassimarilevata Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata Scrivi "n. casi multipli di diff max generale " & Int(contacasimultiplixdiffmax) - 1 Scrivi "diff min generale " & diffminimarilevata Scrivi "formazione : " & stringarisultatoxdiffminimarilevata Scrivi "n. casi multipli di diff min generale " & Int(contacasimultiplixdiffmin) - 1 Scrivi "n di casi diff 0 rilevati " & contadiff0 Scrivi Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite Scrivi Scrivi "Tt : " & TempoTrascorso Else ' ANALISI DA FILE TXT... Dim rigasviluppataxritmaxsolonumeri Dim StringaRuotexritmaxsolonumeri Dim rigasviluppataxfqmaxsolonumeri Dim StringaRuotexfqmaxsolonumeri MsgBox "hai scelto analisi da file" MsgBox "scegli file da analizzare" Dim filedaelaborare filedaelaborare = ScegliFile(".\",".txt","filetxtdasviluppareeanalizzare.txt") MsgBox "hai scelto di analizzare il seguente file: " & filedaelaborare MsgBox "scegli classe da sviluppare" classe = CInt(InputBox("classe",,18)) '2)) filerisultato = ".\gruppipossibilidiruoteunite.txt" If FileEsistente(filerisultato) Then Call EliminaFile(filerisultato) End If For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite) If coltotruoteunite > 0 Then Do While GetCombSviluppo(acolruoteunite) = True StringaRuoteUnite = StringaNumeri(acolruoteunite) contarighe = contarighe + 1 ScriviFile filerisultato,StringaRuoteUnite If ScriptInterrotto Then Exit Do Loop End If CloseFileHandle(filerisultato) Dim arighefiledaelaborare Dim crfde Dim vettorestringhenumerifile Dim vettoreinterinumerifile Call LeggiRigheFileDiTesto(filedaelaborare,arighefiledaelaborare) For crfde = 0 To UBound(arighefiledaelaborare) 'Scrivi "|" & arighefiledaelaborare(crfde) & "|" Call SplitByChar(arighefiledaelaborare(crfde),".",vettorestringhenumerifile) Dim cevns ReDim vettoreinterinumerifile(UBound(vettorestringhenumerifile)) For cevns = 0 To UBound(vettorestringhenumerifile) vettoreinterinumerifile(cevns) = Int(vettorestringhenumerifile(cevns)) Dim cvi Next ' x vettore stringhe numeri file ' Scrivi Call LeggiRigheFileDiTesto(filerisultato,arighefile) ReDim arigaruote(numeroruoteunite) For crr = 0 To UBound(arighefile) 'righesviluppate = InitSviluppoIntegrale(vettoreinterinumerifile,classe) righesviluppate = csvil.InitSviluppo(vettoreinterinumerifile,classe) Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite) ReDim arigaruote(UBound(vettoreruoteunite)) For cvru = 0 To UBound(vettoreruoteunite) If righesviluppate > 0 Then ' Do While GetCombSviluppo(rigasviluppata) = True Do While cSvil.GetComb(rigasviluppata) contarighesviluppate = contarighesviluppate + 1 Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine) 'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice diff = ritmax - rit matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata) matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite) matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte) matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit) matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax) matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax) matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq) contatorexmatrice = contatorexmatrice + 1 righeoccupatenellamatrice = righeoccupatenellamatrice + 1 If rit = ritardomassimorilevato Then contacasimultiplixrit = contacasimultiplixrit + 1 End If If rit > ritardomassimorilevato Then ritardomassimorilevato = rit stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice rigasviluppataxritmaxsolonumeri = StringaNumeri(rigasviluppata) StringaRuotexritmaxsolonumeri = StringaNumeri(vettoreruoteunite) contacasimultiplixrit = 0 End If If ritmax = ritardomassimostoricorilevato Then contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1 End If If ritmax > ritardomassimostoricorilevato Then ritardomassimostoricorilevato = ritmax stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixrsmaxgenerale = 0 End If If ritmax > ritardomassimoxgrupporuoteunite Then ritardomassimoxgrupporuoteunite = ritmax 'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice End If If rit = ritardominimorilevato Then contacasimultiplixritmin = contacasimultiplixritmin + 1 End If If rit < ritardominimorilevato Then ritardominimorilevato = rit stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixritmin = 0 End If If ritmax = ritardominimostoricorilevato Then contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1 End If If ritmax < ritardominimostoricorilevato Then ritardominimostoricorilevato = ritmax stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixrsmingenerale = 0 End If If freq = freqmassimarilevata Then contacasimultiplixfqmax = contacasimultiplixfqmax + 1 End If If freq > freqmassimarilevata Then freqmassimarilevata = freq stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice rigasviluppataxfqmaxsolonumeri = StringaNumeri(rigasviluppata) StringaRuotexfqmaxsolonumeri = StringaNumeri(vettoreruoteunite) contacasimultiplixfqmax = 0 End If If freq = freqminimarilevata Then contacasimultiplixfqmin = contacasimultiplixfqmin + 1 End If If freq < freqminimarilevata Then freqminimarilevata = freq stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixfqmin = 0 End If If Incmax = Incmaxmassimorilevato Then contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1 End If If Incmax > Incmaxmassimorilevato Then Incmaxmassimorilevato = Incmax stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixincmaxmax = 0 End If If Incmax = Incmaxminimorilevato Then contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1 End If If Incmax < Incmaxminimorilevato Then Incmaxminimorilevato = Incmax stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixincmaxmin = 0 End If If diff = diffmassimarilevata Then contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1 End If If diff > diffmassimarilevata Then diffmassimarilevata = diff stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixdiffmax = 0 End If If diff = diffminimarilevata Then contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1 End If If diff < diffminimarilevata Then diffminimarilevata = diff stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice contacasimultiplixdiffmin = 0 End If 'se diff=0 scrivi risultati nel file txt apposito ' End If If diff = 0 Then 'Dim stringarisultatoxdiff0rilevata stringarisultatoxdiff0rilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice ScriviFile filexdiff0rilevate,stringarisultatoxdiff0rilevata CloseFileHandle(filexdiff0rilevate) ScriviFile filexdiff0rilevatesolonumeri,StringaNumeri(rigasviluppata) CloseFileHandle(filexdiff0rilevatesolonumeri) contadiff0 = contadiff0 + 1 End If '---------------------------------------------------------- If ScriptInterrotto Then Exit Do Loop End If If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . " End If ritardomassimoxgrupporuoteunite = 0 If ScriptInterrotto Then Exit For Next ' cvru If ScriptInterrotto Then Exit For Messaggio "thread elaborazionale n. " & contatorexmatrice Next If ScriptInterrotto Then Exit For Call AvanzamentoElab(1,ruoteunitemassimo,crr) Next ' x vettore righe file txt da elaborare If ScriptInterrotto Then Exit For Next 'x numero ruote unite... Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3)) Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1)) quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100)) 'Scrivi ' Scrivi "visualizzazione del contenuto della matrice non ordinata..." ' Scrivi ' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice 'UBound(matriceordinabilemultidimensionale) ' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice ' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice ' Next 'Scrivi Scrivi "visualizzazione del contenuto della matrice ordinata..." Scrivi MassimoFreq = freqmassimarilevata 'EstrazioneFin MinimoFreq = freqminimarilevata '0 MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin MinimoRITMAX = ritardominimostoricorilevato '0 MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin MinimoINCMAX = Incmaxminimorilevato '0 MassimoRIT = ritardomassimorilevato 'EstrazioneFin MinimoRIT = ritardominimorilevato '0 Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto) For k = 1 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6) Next Scrivi Scrivi Scrivi "Elaborazione terminata con successo!" Scrivi Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin) Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1 Scrivi "Input numeri scelti da file" Scrivi "file scelto per l'elaborazione " & filedaelaborare Scrivi "numero complessivo di ruote a girare " & UBound(aruote) Scrivi "ruote analizzate " & StringaRuote(aruote) Scrivi "ruote unite minimo " & ruoteuniteminimo Scrivi "ruote unite massimo " & ruoteunitemassimo Scrivi "classe di sviluppo " & classe Scrivi "sorte di ricerca " & sorte Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento Scrivi "righe (x mix di ruote) sviluppate " & contarighe Scrivi "righe totali di sviluppo generate " & contarighesviluppate Scrivi 'Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice Scrivi Scrivi "report sui valori estremi rilevati" Dim vettoreformazioneritmaxunico Dim vettoreruoteformazioneritmaxunico Dim vettoreformazioneritrsmaxunico Dim vettoreformazioneritminunico Dim vettoreformazioneritrsminunico Dim vettoreformazionefqmaxunica Dim vettoreruoteformazionefqmaxunica Dim vettoreformazionefqminunica Dim vettoreformazioneincmaxmaxunico Dim vettoreformazioneincmaxminunico Dim vettoreformazionediffmaxunica Dim vettoreformazionediffminunica Dim Inizioverificaxrisultanzaunica Inizioverificaxrisultanzaunica = EstrazioneFin Dim sortediverificaxrisultanzaunica sortediverificaxrisultanzaunica = 2 Dim colpiverifica,esito,estratti,idesdiuscita colpiverifica = 1 Dim casipositivi casipositivi = 0 Scrivi Scrivi "rit max generale " & ritardomassimorilevato Scrivi "formazione : " & stringarisultatoxritardomassimorilevato Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit ' modulo di verifica... x rit max If contacasimultiplixrit = - 1 Or contacasimultiplixrit = 0 Then Call SplitByChar(rigasviluppataxritmaxsolonumeri,".",vettoreformazioneritmaxunico) Call SplitByChar(StringaRuotexritmaxsolonumeri,".",vettoreruoteformazioneritmaxunico) 'verifica se ha sfaldato colpo Call VerificaEsitoTurbo(vettoreformazioneritmaxunico,vettoreruoteformazioneritmaxunico,Inizioverificaxrisultanzaunica + 1,sortediverificaxrisultanzaunica,colpiverifica,,esito,,estratti,idesdiuscita) If esito <> "" Then Scrivi "OK rit max unico ha sfaldato",True,,,vbGreen Scrivi "estratti a colpo " & estratti & " - " & GetInfoEstrazione(idesdiuscita),True,,,vbGreen casipositivi = casipositivi + 1 Else Scrivi "NO rit max unico non ha sfaldato",True,,,vbRed End If End If '----------------------------------------- Scrivi "rs max generale " & ritardomassimostoricorilevato Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato Scrivi "n. casi multipli di rit sto max generale " & Int(contacasimultiplixrsmaxgenerale)' - 1 Scrivi "ra min generale " & ritardominimorilevato Scrivi "formazione : " & stringarisultatoxritardominimorilevato Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) '- 1 Scrivi "rs min generale " & ritardominimostoricorilevato Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato Scrivi "n. casi multipli di rit sto min generale " & Int(contacasimultiplixrsmingenerale) '- 1 Scrivi "fq max generale " & freqmassimarilevata Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax)' - 1 ' modulo di verifica... x fq max If contacasimultiplixfqmax = - 1 Or contacasimultiplixfqmax = 0 Then Call SplitByChar(rigasviluppataxfqmaxsolonumeri,".",vettoreformazionefqmaxunica) Call SplitByChar(StringaRuotexfqmaxsolonumeri,".",vettoreruoteformazionefqmaxunica) 'verifica se ha sfaldato colpo Call VerificaEsitoTurbo(vettoreformazionefqmaxunica,vettoreruoteformazionefqmaxunica,Inizioverificaxrisultanzaunica + 1,sortediverificaxrisultanzaunica,colpiverifica,,esito,,estratti,idesdiuscita) If esito <> "" Then Scrivi "OK fq max unico ha sfaldato",True,,,vbGreen Scrivi "estratti a colpo " & estratti & " - " & GetInfoEstrazione(idesdiuscita),True,,,vbGreen casipositivi = casipositivi + 1 Else Scrivi "NO fq max unico non ha sfaldato",True,,,vbRed End If End If '----------------------------------------- Scrivi "fq min generale " & freqminimarilevata Scrivi "formazione : " & stringarisultatoxfreqminimarilevata Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) '- 1 Scrivi "incmax max generale " & Incmaxmassimorilevato Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) '- 1 Scrivi "incmax min generale " & Incmaxminimorilevato Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato Scrivi "n. casi multipli di incmax min generale " & Int(contacasimultiplixincmaxmin) '- 1 Scrivi "diff max generale " & diffmassimarilevata Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata Scrivi "n. casi multipli di diff max generale " & Int(contacasimultiplixdiffmax)' - 1 Scrivi "diff min generale " & diffminimarilevata Scrivi "formazione : " & stringarisultatoxdiffminimarilevata Scrivi "n. casi multipli di diff min generale " & Int(contacasimultiplixdiffmin) '- 1 Scrivi "n di casi diff 0 rilevati " & contadiff0 Scrivi Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite Scrivi Scrivi "Tt : " & TempoTrascorso End If 'mostra formazioni diff 0 rilevate... leggendole dal relativo file... txt Scrivi Scrivi Scrivi "formazioni diff 0 rilevate con relativa ruota(e)" Scrivi Scrivi ReDim arighefilediff0(0) Dim crfdz Call LeggiRigheFileDiTesto(filexdiff0rilevate,arighefilediff0) For crfdz = 0 To UBound(arighefilediff0) Scrivi arighefilediff0(crfdz) If ScriptInterrotto Then Exit For Next '-------------------------------------------------------------------------------------------- End Sub
Buone analisi..
usa lo script allegato del grande Beppignello o quello spettacolare di lottotom e risolvi alla grandePer farvi capire.
Questo mi restituisce i 5 numeri più ritardati per ambo su 2 ruote. Cioè analizza tutte le coppie di ruote, e guarda quali numeri sono più in rit per ambo in entrambe.
Nella seconda immagine il risultato. Cioè nelle ruote di CA-TO ci sono questi 5 numeri in ritardo per ambo e questo è il ritardo massimo fra i vari ritardi in tutte le coppie di ruote.